69 lines
2.2 KiB
YAML
69 lines
2.2 KiB
YAML
name: Preview Deploy
|
|
|
|
permissions:
|
|
contents: write
|
|
pull-requests: write
|
|
|
|
on:
|
|
workflow_run:
|
|
workflows:
|
|
- "Preview Build"
|
|
types:
|
|
- completed
|
|
|
|
# Since we use single_commit and force on the deploy action, only one deploy action can run at a time.
|
|
# Should this create a bottleneck we might have to set single_commit and force to false which should allow
|
|
# for the deployments to run in parallel.
|
|
concurrency:
|
|
group: preview_deploy
|
|
|
|
jobs:
|
|
deploy:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
- name: 'Download build artifact'
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: web_demo
|
|
path: web_demo_artifact
|
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
run-id: ${{ github.event.workflow_run.id }}
|
|
- name: 'Download build meta'
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: meta.json
|
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
run-id: ${{ github.event.workflow_run.id }}
|
|
|
|
- name: Parse meta.json
|
|
run: |
|
|
echo "PR_NUMBER=$(jq -r .pr_number meta.json)" >> $GITHUB_ENV
|
|
echo "PR_BRANCH=$(jq -r .pr_branch meta.json)" >> $GITHUB_ENV
|
|
|
|
- name: Url slug variable
|
|
run: |
|
|
echo "URL_SLUG=${{ env.PR_NUMBER }}-${{ env.PR_BRANCH }}" >> $GITHUB_ENV
|
|
|
|
- name: Deploy
|
|
uses: JamesIves/github-pages-deploy-action@v4
|
|
with:
|
|
folder: web_demo_artifact
|
|
repository-name: egui-pr-preview/pr
|
|
branch: 'main'
|
|
clean: true
|
|
target-folder: ${{ env.URL_SLUG }}
|
|
ssh-key: ${{ secrets.DEPLOY_KEY }}
|
|
commit-message: "Update preview for PR ${{ env.URL_SLUG }}"
|
|
single-commit: true
|
|
|
|
- name: Comment PR
|
|
uses: thollander/actions-comment-pull-request@v2
|
|
with:
|
|
message: |
|
|
Preview available at https://egui-pr-preview.github.io/pr/${{ env.URL_SLUG }}
|
|
Note that it might take a couple seconds for the update to show up after the preview_build workflow has completed.
|
|
pr_number: ${{ env.PR_NUMBER }}
|
|
comment_tag: 'egui-preview'
|