feat: LBA-2311 amélioration cosmétique des éléments de loading #817
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
name: Deploy Preview | |
on: | |
issue_comment: | |
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 }} | |
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-lba 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-lba deploy:log:encrypt | |
if: always() | |
env: | |
ANSIBLE_VAULT_PASSWORD_FILE: .infra/.vault_pwd.txt | |
- name: Upload logs 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-lba deploy:log:decrypt ${{ github.run_id }}`' >> $GITHUB_STEP_SUMMARY | |
- name: Preview Summary | |
run: echo 'https://${{ github.event.issue.number }}.labonnealternance-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 }}.labonnealternance-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 }}.labonnealternance-preview.apprentissage.beta.gouv.fr/ | |
You can get error logs using `.bin/mna-lba 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 }}.labonnealternance-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 }} | |
cypress: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.issue.id }}-cypress | |
cancel-in-progress: true | |
needs: ["deploy_preview"] | |
uses: "./.github/workflows/cypress.yml" | |
with: | |
cypress_host: "https://${{ github.event.issue.number }}.labonnealternance-preview.apprentissage.beta.gouv.fr" | |
smtp_host: "https://smtp.labonnealternance-preview.apprentissage.beta.gouv.fr" | |
environment: preview | |
secrets: | |
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | |
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }} | |
VAULT_PWD: ${{ secrets.VAULT_PWD }} |