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 }}