This repository has been archived on 2023-04-11. You can view files and clone it, but cannot push or open issues or pull requests.
defend-together/.github/workflows/release.yml
2020-05-20 14:40:55 -04:00

147 lines
5.0 KiB
YAML

name: Publish Release
on:
release:
types:
- created
jobs:
godot:
runs-on: ubuntu-latest
strategy:
matrix:
platform: [linux, win32, win64]
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Download Export Template
env:
PLATFORM: ${{ matrix.platform }}
run: |
mkdir -p client/templates
wget http://godot-enet.cloudsumu.com.s3-website-us-east-1.amazonaws.com/export-templates/release/$PLATFORM -O client/templates/$PLATFORM
- name: Configure
env:
PLATFORM: ${{ matrix.platform }}
run: |
if [ "$PLATFORM" = "win32" ] || [ "$PLATFORM" = "win64" ] ; then
echo "::set-env name=EXPORT_SUFFIX::.exe"
fi
- name: Build
id: build
uses: josephbmanley/build-godot-action@v1.4.0
with:
name: defend-together${{ env.EXPORT_SUFFIX }}
preset: ${{ matrix.platform }}
projectDir: client
- id: get_tag
name: Get Tag
env:
GITHUB_HEAD_REF: $${{ github.head_ref }}
GITHUB_BASE_REF: ${{ github.base_ref }}
run: |
TAG=$(jq --raw-output '.release.tag_name' $GITHUB_EVENT_PATH)
echo ::set-output name=TAG::$TAG
- name: Push to Itch
uses: josephbmanley/butler-publish-itchio-action@v1.0.1
env:
BUTLER_CREDENTIALS: ${{ secrets.BUTLER_CREDENTIALS }}
CHANNEL: ${{ matrix.platform }}
ITCH_GAME: defend-together
ITCH_USER: josephbmanley
PACKAGE: ${{ github.workspace }}/${{ steps.build.outputs.build }}
VERSION: ${{ steps.get_tag.outputs.TAG }}
docker:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v1
- id: get_tag
name: Get Tag
env:
GITHUB_HEAD_REF: $${{ github.head_ref }}
GITHUB_BASE_REF: ${{ github.base_ref }}
run: |
TAG=$(jq --raw-output '.release.tag_name' $GITHUB_EVENT_PATH)
echo ::set-output name=TAG::$TAG
- name: Push Tag to Docker Hub
uses: opspresso/action-docker@master
with:
args: --docker
env:
USERNAME: ${{ secrets.DOCKER_USERNAME }}
PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
BUILD_PATH: "server"
DOCKERFILE: "server/Dockerfile"
IMAGE_NAME: "josephbmanley/defend-together"
TAG_NAME: ${{ steps.get_tag.outputs.TAG }}
LATEST: "false"
- name: Push Latest to Docker Hub
uses: opspresso/action-docker@master
with:
args: --docker
env:
USERNAME: ${{ secrets.DOCKER_USERNAME }}
PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
BUILD_PATH: "server"
DOCKERFILE: "server/Dockerfile"
IMAGE_NAME: "josephbmanley/defend-together"
TAG_NAME: ${{ steps.get_tag.outputs.TAG }}
LATEST: "true"
- name: Push Tag to GitHub Package
uses: opspresso/action-docker@master
with:
args: --docker
env:
USERNAME: ${{ github.actor }}
PASSWORD: ${{ secrets.GITHUB_TOKEN }}
REGISTRY: "docker.pkg.github.com"
BUILD_PATH: "server"
DOCKERFILE: "server/Dockerfile"
IMAGE_NAME: "defend-together"
TAG_NAME: ${{ steps.get_tag.outputs.TAG }}
LATEST: "false"
- name: Push Latest to GitHub Package
uses: opspresso/action-docker@master
with:
args: --docker
env:
USERNAME: ${{ github.actor }}
PASSWORD: ${{ secrets.GITHUB_TOKEN }}
REGISTRY: "docker.pkg.github.com"
BUILD_PATH: "server"
DOCKERFILE: "server/Dockerfile"
IMAGE_NAME: "defend-together"
TAG_NAME: ${{ steps.get_tag.outputs.TAG }}
LATEST: "true"
cloudformation:
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@v2.1.0
with:
submodules: 'true'
- name: Ship to S3
uses: jakejarvis/s3-sync-action@master
with:
args: --follow-symlinks --delete
env:
SOURCE_DIR: infrastructure/cloudformation
AWS_REGION: "us-east-2"
DEST_DIR: production/cloudformation
AWS_S3_BUCKET: dt-deployment-bucket
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-2
- name: Deploy to AWS CloudFormation
uses: aws-actions/aws-cloudformation-github-deploy@v1
with:
name: dt-infrastructure
template: infrastructure/cloudformation/dt/top.yaml
capabilities: "CAPABILITY_NAMED_IAM,CAPABILITY_IAM"
parameter-overrides: VpcId=${{ secrets.VPC_ID }},Domain=${{ secrets.DOMAIN }},PublicSubnets=${{ secrets.SUBNET_IDS }}