This repository has been archived by the owner on Apr 25, 2024. It is now read-only.
Bump rubocop from 1.49.0 to 1.53.1 #19
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# https://docs.github.com/en/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-docker-to-azure-app-service | |
# Note: github.repository must be all lowercase | |
name: branch deploy | |
# The workflow to execute on is comments that are newly created | |
on: | |
issue_comment: | |
types: [ created ] | |
# Permissions needed for reacting and adding comments for IssueOps commands | |
permissions: | |
pull-requests: write | |
deployments: write | |
contents: write | |
checks: read | |
id-token: write | |
packages: write | |
env: | |
AZURE_WEBAPP_NAME: runwayapp | |
DOMAIN: https://app.runwayapp.one | |
jobs: | |
# branch-deploy trigger job | |
trigger: | |
if: # only run on pull request comments and very specific comment body string as defined in our branch-deploy settings | |
${{ github.event.issue.pull_request && | |
(contains(github.event.comment.body, '.deploy') || | |
contains(github.event.comment.body, '.lock') || | |
contains(github.event.comment.body, '.wcid') || | |
contains(github.event.comment.body, '.unlock')) }} | |
runs-on: ubuntu-latest | |
outputs: # set outputs for use in downstream jobs | |
continue: ${{ steps.branch-deploy.outputs.continue }} | |
noop: ${{ steps.branch-deploy.outputs.noop }} | |
deployment_id: ${{ steps.branch-deploy.outputs.deployment_id }} | |
environment: ${{ steps.branch-deploy.outputs.environment }} | |
ref: ${{ steps.branch-deploy.outputs.ref }} | |
sha: ${{ steps.branch-deploy.outputs.sha }} | |
comment_id: ${{ steps.branch-deploy.outputs.comment_id }} | |
initial_reaction_id: ${{ steps.branch-deploy.outputs.initial_reaction_id }} | |
actor_handle: ${{ steps.branch-deploy.outputs.actor_handle }} | |
steps: | |
# execute the branch-deploy action | |
- uses: github/[email protected] | |
id: branch-deploy | |
with: | |
trigger: ".deploy" | |
environment: "production" | |
production_environment: "production" | |
environment_targets: "production" | |
skip_completing: "true" # we will complete the deployment manually in the 'result' job | |
admins: "GrantBirki" | |
build: | |
needs: trigger | |
if: ${{ needs.trigger.outputs.continue == 'true' }} # only run if the trigger job set continue to true | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
ref: ${{ needs.trigger.outputs.ref }} | |
- name: ghcr.io login | |
uses: docker/login-action@v2 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: build | |
run: docker build -t ghcr.io/${{ github.repository }}:${{ needs.trigger.outputs.sha }} . | |
- name: push | |
run: docker push ghcr.io/${{ github.repository }}:${{ needs.trigger.outputs.sha }} | |
deploy: | |
needs: [ trigger, build ] | |
if: ${{ needs.trigger.outputs.continue == 'true' }} # only run if the trigger job set continue to true | |
runs-on: ubuntu-latest | |
steps: | |
- name: Deploy to Azure Web App | |
id: deploy-to-webapp | |
uses: azure/webapps-deploy@v2 | |
with: | |
app-name: ${{ env.AZURE_WEBAPP_NAME }} | |
publish-profile: ${{ secrets.AZURE_PUBLISH_PROFILE }} | |
images: "ghcr.io/${{ github.repository }}:${{ needs.trigger.outputs.sha }}" | |
# update the deployment result - manually complete the deployment that was created by the branch-deploy action | |
result: | |
needs: [ trigger, build, deploy ] | |
runs-on: ubuntu-latest | |
# run even on failures but only if the trigger job set continue to true | |
if: ${{ always() && needs.trigger.outputs.continue == 'true' }} | |
steps: | |
# if a previous step failed, set a variable to use as the deployment status | |
- name: set deployment status | |
id: deploy-status | |
if: ${{ needs.trigger.result == 'failure' || needs.build.result == 'failure' || | |
needs.deploy.result == 'failure' }} | |
run: | | |
echo "DEPLOY_STATUS=failure" >> $GITHUB_OUTPUT | |
# use the GitHub CLI to update the deployment status that was initiated by the branch-deploy action | |
- name: Create a deployment status | |
env: | |
GH_REPO: ${{ github.repository }} | |
GH_TOKEN: ${{ github.token }} | |
DEPLOY_STATUS: ${{ steps.deploy-status.outputs.DEPLOY_STATUS }} | |
run: | | |
if [ -z "${DEPLOY_STATUS}" ]; then | |
DEPLOY_STATUS="success" | |
fi | |
gh api \ | |
--method POST \ | |
repos/{owner}/{repo}/deployments/${{ needs.trigger.outputs.deployment_id }}/statuses \ | |
-f environment='${{ needs.trigger.outputs.environment }}' \ | |
-f state=${DEPLOY_STATUS} | |
# use the GitHub CLI to remove the non-sticky lock that was created by the branch-deploy action | |
- name: Remove a non-sticky lock | |
env: | |
GH_REPO: ${{ github.repository }} | |
GH_TOKEN: ${{ github.token }} | |
run: | | |
gh api \ | |
--method DELETE \ | |
repos/{owner}/{repo}/git/refs/heads/${{ needs.trigger.outputs.environment }}-branch-deploy-lock | |
# remove the default 'eyes' reaction from the comment that triggered the deployment | |
# this reaction is added by the branch-deploy action by default | |
- name: remove eyes reaction | |
env: | |
GH_REPO: ${{ github.repository }} | |
GH_TOKEN: ${{ github.token }} | |
run: | | |
gh api \ | |
--method DELETE \ | |
repos/{owner}/{repo}/issues/comments/${{ needs.trigger.outputs.comment_id }}/reactions/${{ needs.trigger.outputs.initial_reaction_id }} | |
# if the deployment was successful, add a 'rocket' reaction to the comment that triggered the deployment | |
- name: rocket reaction | |
if: ${{ steps.deploy-status.outputs.DEPLOY_STATUS != 'failure' }} | |
uses: GrantBirki/comment@1e9986de26cf23e6c4350276234c91705c540fef # [email protected] | |
with: | |
comment-id: ${{ needs.trigger.outputs.comment_id }} | |
reactions: rocket | |
# if the deployment failed, add a '-1' (thumbs down) reaction to the comment that triggered the deployment | |
- name: failure reaction | |
if: ${{ steps.deploy-status.outputs.DEPLOY_STATUS == 'failure' }} | |
uses: GrantBirki/comment@1e9986de26cf23e6c4350276234c91705c540fef # [email protected] | |
with: | |
comment-id: ${{ needs.trigger.outputs.comment_id }} | |
reactions: "-1" | |
# if the deployment was successful, add a 'success' comment | |
- name: success comment | |
if: ${{ steps.deploy-status.outputs.DEPLOY_STATUS != 'failure' }} | |
uses: peter-evans/create-or-update-comment@67dcc547d311b736a8e6c5c236542148a47adc3d # [email protected] | |
with: | |
issue-number: ${{ github.event.issue.number }} | |
body: | | |
### Deployment Results ✅ | |
**${{ needs.trigger.outputs.actor_handle }}** successfully deployed branch `${{ needs.trigger.outputs.ref }}` to **${{ needs.trigger.outputs.environment }}** | |
> [View Live Deployment](${{ env.DOMAIN }}) :link: | |
# if the deployment was not successful, add a 'failure' comment | |
- name: failure comment | |
if: ${{ steps.deploy-status.outputs.DEPLOY_STATUS == 'failure' }} | |
uses: peter-evans/create-or-update-comment@67dcc547d311b736a8e6c5c236542148a47adc3d # [email protected] | |
with: | |
issue-number: ${{ github.event.issue.number }} | |
body: | | |
### Deployment Results ❌ | |
**${{ needs.trigger.outputs.actor_handle }}** had a failure when deploying `${{ needs.trigger.outputs.ref }}` to **${{ needs.trigger.outputs.environment }}** |