mirror of
https://github.com/emilk/egui.git
synced 2026-06-27 07:03:14 -04:00
- I broke this in #7577 `pull_request` workflows don't have permission to comment, so we have to do this via a `pull_request_target` workflow. The point of this early comment is that the kitdiff link appears as soon as possible and isn't dependent on the preview build suceeding.
62 lines
2.0 KiB
YAML
62 lines
2.0 KiB
YAML
# This action builds and deploys egui_demo_app on each pull request created
|
|
# Security notes:
|
|
# The preview deployment is split in two workflows, preview_build and preview_deploy.
|
|
# `preview_build` runs on pull_request, so it won't have any access to the repositories secrets, so it is safe to
|
|
# build / execute untrusted code.
|
|
# `preview_deploy` has access to the repositories secrets (so it can push to the pr preview repo) but won't run
|
|
# any untrusted code (it will just extract the build artifact and push it to the pages branch where it will
|
|
# automatically be deployed).
|
|
|
|
name: Preview Build
|
|
|
|
on:
|
|
- pull_request
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 60
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: dtolnay/rust-toolchain@stable
|
|
with:
|
|
toolchain: 1.88.0
|
|
targets: wasm32-unknown-unknown
|
|
- uses: Swatinem/rust-cache@v2
|
|
with:
|
|
prefix-key: "pr-preview-"
|
|
|
|
- name: Install wasm-opt
|
|
uses: sigoden/install-binary@v1
|
|
with:
|
|
repo: WebAssembly/binaryen
|
|
tag: version_123
|
|
name: wasm-opt
|
|
|
|
- run: |
|
|
scripts/build_demo_web.sh --release
|
|
|
|
- name: Remove gitignore file
|
|
# We need to remove the .gitignore, otherwise the deploy via git will not include the js and wasm files
|
|
run: |
|
|
rm -rf web_demo/.gitignore
|
|
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: web_demo
|
|
path: web_demo
|
|
|
|
- name: Generate meta.json
|
|
env:
|
|
PR_NUMBER: ${{ github.event.number }}
|
|
URL_SLUG: ${{ github.event.number }}-${{ github.head_ref }}
|
|
run: |
|
|
# Sanitize the URL_SLUG to only contain alphanumeric characters and dashes
|
|
URL_SLUG=$(echo $URL_SLUG | tr -cd '[:alnum:]-')
|
|
echo "{\"pr_number\": \"$PR_NUMBER\", \"url_slug\": \"$URL_SLUG\"}" > meta.json
|
|
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: meta.json
|
|
path: meta.json
|