Skip to content

Commit

Permalink
fix: deploy preview match main
Browse files Browse the repository at this point in the history
  • Loading branch information
kevbarns committed Dec 12, 2024
1 parent 0143bfd commit 44987f6
Showing 1 changed file with 148 additions and 144 deletions.
292 changes: 148 additions & 144 deletions .github/workflows/deploy_preview.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,159 +4,163 @@ on:
types: [created]

jobs:
debug:
runs-on: ubuntu-latest
steps:
- uses: hmarr/debug-action@v2

deploy_preview:
if: (startsWith(github.event.comment.body, '🚀') || startsWith(github.event.comment.body, ':rocket:')) && github.event.issue.pull_request
concurrency:
group: ${{ github.workflow }}-${{ github.event.issue.id }}
cancel-in-progress: true
name: Deploy Preview ${{ github.event.issue.number }}
runs-on: ubuntu-latest
steps:
- name: Get Run URL
id: run_url
run: echo "url=${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID}" >> "$GITHUB_OUTPUT"

- name: Comment PR Preview
if: github.event.issue.state != 'closed'
uses: thollander/actions-comment-pull-request@v2
with:
message: |
### :rocket: Prévisualisation
Deploying a new preview, follow progress in ${{ steps.run_url.outputs.url }}
message: "Preview environment is decomissioned."
comment_tag: deployment
mode: recreate
pr_number: ${{ github.event.issue.number }}

- name: React to comment
uses: dkershner6/reaction-action@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
commentId: ${{ github.event.comment.id }}
reaction: "+1"

- id: "get-branch"
run: echo "branch=$(gh pr view $PR_NO --repo $REPO --json headRefName --jq '.headRefName')" >> $GITHUB_OUTPUT
env:
REPO: ${{ github.repository }}
PR_NO: ${{ github.event.issue.number }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Checkout
uses: actions/checkout@v4
with:
ref: ${{ steps.get-branch.outputs.branch }}

- name: Create LFS file list
run: git lfs ls-files --long | cut -d ' ' -f1 | sort > .lfs-assets-id

- name: LFS Cache
uses: actions/cache@v3
with:
path: .git/lfs/objects
key: ${{ runner.os }}-lfs-${{ hashFiles('.lfs-assets-id') }}
restore-keys: |
${{ runner.os }}-lfs-
- name: Git LFS Pull
run: git lfs pull

- name: Install SSH key
uses: shimataro/ssh-key-action@v2
with:
name: github_actions
key: ${{ secrets.DEPLOY_SSH_PRIVATE_KEY }}
known_hosts: ${{ vars.SSH_KNOWN_HOSTS }}
config: |
Host *
IdentityFile ~/.ssh/github_actions
- name: Create vault pwd file
run: echo ${{ secrets.VAULT_PWD }} > .infra/.vault_pwd.txt

- name: Install jmespath
run: |
sudo pipx inject ansible-core jmespath
- name: Run playbook
run: .bin/mna-bal deploy preview "${{ github.event.issue.number }}"
env:
ANSIBLE_VAULT_PASSWORD_FILE: .infra/.vault_pwd.txt
ANSIBLE_REMOTE_USER: deploy
ANSIBLE_BECOME_PASS: ${{ secrets.DEPLOY_PASS }}

- name: Encrypt logs
run: .bin/mna-bal deploy:log:encrypt
if: always()
env:
ANSIBLE_VAULT_PASSWORD_FILE: .infra/.vault_pwd.txt

- name: Upload log artifacts
if: always()
uses: actions/upload-artifact@v3
with:
name: logs-${{ github.event.issue.number }}
path: /tmp/deploy.log.gpg

- name: Add Job summary
if: always()
run: echo 'You can get logs using `.bin/mna deploy:log:decrypt ${{ github.run_id }} ${{ github.event.issue.number }}`' >> $GITHUB_STEP_SUMMARY

- name: Preview Summary when failed
if: failure()
run: echo 'You can get error logs using `.bin/mna-bal deploy:log:decrypt ${{ github.run_id }}`' >> $GITHUB_STEP_SUMMARY

- name: Preview Summary
run: echo 'https://${{ github.event.issue.number }}.bal-preview.apprentissage.beta.gouv.fr/ 🚀' >> $GITHUB_STEP_SUMMARY

- name: Comment PR Preview
if: github.event.issue.state != 'closed'
uses: thollander/actions-comment-pull-request@v2
with:
message: |
### :rocket: Prévisualisation
https://${{ github.event.issue.number }}.bal-preview.apprentissage.beta.gouv.fr/
You can access runner logs in ${{ steps.run_url.outputs.url }}
To re-deploy just add a comment with :rocket:
comment_tag: deployment
mode: recreate
pr_number: ${{ github.event.issue.number }}

- name: Comment PR Preview when failed
if: failure() && github.event.issue.state != 'closed'
uses: thollander/actions-comment-pull-request@v2
with:
message: |
### :ambulance: Prévisualisation failed
https://${{ github.event.issue.number }}.bal-preview.apprentissage.beta.gouv.fr/
You can get error logs using `.bin/mna-bal deploy:log:decrypt ${{ github.run_id }}`
You can access runner logs in ${{ steps.run_url.outputs.url }}
To re-deploy just add a comment with :rocket:
comment_tag: deployment
mode: recreate
pr_number: ${{ github.event.issue.number }}

- name: Comment PR Preview when cancelled
if: cancelled() && github.event.issue.state != 'closed'
uses: thollander/actions-comment-pull-request@v2
with:
message: |
### :ambulance: Prévisualisation cancelled
https://${{ github.event.issue.number }}.bal-preview.apprentissage.beta.gouv.fr/
You can access runner logs in ${{ steps.run_url.outputs.url }}
To re-deploy just add a comment with :rocket:
comment_tag: deployment
mode: recreate
pr_number: ${{ github.event.issue.number }}
# deploy_preview:
# if: (startsWith(github.event.comment.body, '🚀') || startsWith(github.event.comment.body, ':rocket:')) && github.event.issue.pull_request
# concurrency:
# group: ${{ github.workflow }}-${{ github.event.issue.id }}
# cancel-in-progress: true
# name: Deploy Preview ${{ github.event.issue.number }}
# runs-on: ubuntu-latest
# steps:
# - name: Get Run URL
# id: run_url
# run: echo "url=${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID}" >> "$GITHUB_OUTPUT"

# - name: Comment PR Preview
# if: github.event.issue.state != 'closed'
# uses: thollander/actions-comment-pull-request@v2
# with:
# message: |
# ### :rocket: Prévisualisation
# Deploying a new preview, follow progress in ${{ steps.run_url.outputs.url }}
# comment_tag: deployment
# mode: recreate
# pr_number: ${{ github.event.issue.number }}

# - name: React to comment
# uses: dkershner6/reaction-action@v1
# with:
# token: ${{ secrets.GITHUB_TOKEN }}
# commentId: ${{ github.event.comment.id }}
# reaction: "+1"

# - id: "get-branch"
# run: echo "branch=$(gh pr view $PR_NO --repo $REPO --json headRefName --jq '.headRefName')" >> $GITHUB_OUTPUT
# env:
# REPO: ${{ github.repository }}
# PR_NO: ${{ github.event.issue.number }}
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

# - name: Checkout
# uses: actions/checkout@v4
# with:
# ref: ${{ steps.get-branch.outputs.branch }}

# - name: Create LFS file list
# run: git lfs ls-files --long | cut -d ' ' -f1 | sort > .lfs-assets-id

# - name: LFS Cache
# uses: actions/cache@v3
# with:
# path: .git/lfs/objects
# key: ${{ runner.os }}-lfs-${{ hashFiles('.lfs-assets-id') }}
# restore-keys: |
# ${{ runner.os }}-lfs-

# - name: Git LFS Pull
# run: git lfs pull

# - name: Install SSH key
# uses: shimataro/ssh-key-action@v2
# with:
# name: github_actions
# key: ${{ secrets.DEPLOY_SSH_PRIVATE_KEY }}
# known_hosts: ${{ vars.SSH_KNOWN_HOSTS }}
# config: |
# Host *
# IdentityFile ~/.ssh/github_actions

# - name: Create vault pwd file
# run: echo ${{ secrets.VAULT_PWD }} > .infra/.vault_pwd.txt

# - name: Install jmespath
# run: |
# sudo pipx inject ansible-core jmespath

# - name: Run playbook
# run: .bin/mna-bal deploy preview "${{ github.event.issue.number }}"
# env:
# ANSIBLE_VAULT_PASSWORD_FILE: .infra/.vault_pwd.txt
# ANSIBLE_REMOTE_USER: deploy
# ANSIBLE_BECOME_PASS: ${{ secrets.DEPLOY_PASS }}

# - name: Encrypt Error log on failure
# run: .bin/mna-bal deploy:log:encrypt
# if: failure()
# env:
# ANSIBLE_VAULT_PASSWORD_FILE: .infra/.vault_pwd.txt

# - name: Upload failure artifacts on failure
# if: failure()
# uses: actions/upload-artifact@v3
# with:
# name: error-logs
# path: /tmp/deploy_error.log.gpg

# - name: Preview Summary when failed
# if: failure()
# run: echo 'You can get error logs using `.bin/mna-bal deploy:log:decrypt ${{ github.run_id }}`' >> $GITHUB_STEP_SUMMARY

# - name: Preview Summary
# run: echo 'https://${{ github.event.issue.number }}.bal-preview.apprentissage.beta.gouv.fr/ 🚀' >> $GITHUB_STEP_SUMMARY

# - name: Comment PR Preview
# if: github.event.issue.state != 'closed'
# uses: thollander/actions-comment-pull-request@v2
# with:
# message: |
# ### :rocket: Prévisualisation
# https://${{ github.event.issue.number }}.bal-preview.apprentissage.beta.gouv.fr/

# You can access runner logs in ${{ steps.run_url.outputs.url }}

# To re-deploy just add a comment with :rocket:
# comment_tag: deployment
# mode: recreate
# pr_number: ${{ github.event.issue.number }}

# - name: Comment PR Preview when failed
# if: failure() && github.event.issue.state != 'closed'
# uses: thollander/actions-comment-pull-request@v2
# with:
# message: |
# ### :ambulance: Prévisualisation failed

# https://${{ github.event.issue.number }}.bal-preview.apprentissage.beta.gouv.fr/

# You can get error logs using `.bin/mna-bal deploy:log:decrypt ${{ github.run_id }}`
# You can access runner logs in ${{ steps.run_url.outputs.url }}

# To re-deploy just add a comment with :rocket:
# comment_tag: deployment
# mode: recreate
# pr_number: ${{ github.event.issue.number }}

# - name: Comment PR Preview when cancelled
# if: cancelled() && github.event.issue.state != 'closed'
# uses: thollander/actions-comment-pull-request@v2
# with:
# message: |
# ### :ambulance: Prévisualisation cancelled

# https://${{ github.event.issue.number }}.bal-preview.apprentissage.beta.gouv.fr/

# You can access runner logs in ${{ steps.run_url.outputs.url }}

# To re-deploy just add a comment with :rocket:
# comment_tag: deployment
# mode: recreate
# pr_number: ${{ github.event.issue.number }}

0 comments on commit 44987f6

Please sign in to comment.