name: release on: push: branches: - master env: DISCORD_HOOK_URL: ${{ secrets.DISCORD_HOOK_URL }} GITHUB_SHA: ${{ github.sha }} jobs: release: name: Build Release runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Retrieve Certs run: | ./script/retrieve_certs env: GIT_USER: ${{ secrets.GIT_USER }} GIT_AUTH: ${{ secrets.GIT_AUTH }} GIT_URL: ${{ secrets.GIT_URL }} CERTS_KEY: ${{ secrets.CERTS_KEY }} - name: Set Release Tag id: release run: echo "::set-output name=release_tag::$(cat version.txt)" - name: Build release run: | ./script/build_release release - 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: ${{ secrets.AWS_ACCESS_REGION }} - name: Deploy master to release bucket run: | aws s3 sync --no-progress --acl public-read s3out s3://${{ secrets.AWS_S3_BUCKET_PROD }}/${{ steps.release.outputs.release_tag }} - name: Deploy master to rolling bucket run: | aws s3 sync --no-progress --acl public-read s3out-latest s3://${{ secrets.AWS_S3_BUCKET_PROD }} - name: Invalidate Cloudfront run: | aws cloudfront create-invalidation --distribution-id ${{ secrets.CLOUDFRONT_DIST_ID_PROD }} --paths "/*" "/ipxe/*" - name: Tag Release run: | ./script/tag ${{ steps.release.outputs.release_tag }} - name: Create Release and Upload Assets uses: svenstaro/upload-release-action@v2 with: file: githubout/* file_glob: true overwrite: true prerelease: false release_name: ${{ steps.release.outputs.release_tag }} repo_token: ${{ secrets.GITHUB_TOKEN }} tag: ${{ steps.release.outputs.release_tag }} - name: Notify Discord on failure if: failure() run: | ./script/message failure - name: Notify Discord on completion if: success() run: | ./script/message live-push