mirror of
https://github.com/lightpanda-io/browser.git
synced 2026-07-31 09:46:05 -04:00
Mutable tags like @v6 can be re-pointed by whoever controls the action, so the next run executes code nobody here reviewed, with the job's token and secrets. Pinning to the full commit sha freezes what runs. Version tags are kept as comments so renovate or dependabot can still track updates. dtolnay/rust-toolchain is pinned to a master commit with the toolchain moved to an explicit input, as its readme recommends for sha pinning.
131 lines
3.4 KiB
YAML
131 lines
3.4 KiB
YAML
name: zig-test
|
|
|
|
env:
|
|
AWS_ACCESS_KEY_ID: ${{ vars.LPD_PERF_AWS_ACCESS_KEY_ID }}
|
|
AWS_SECRET_ACCESS_KEY: ${{ secrets.LPD_PERF_AWS_SECRET_ACCESS_KEY }}
|
|
AWS_BUCKET: ${{ vars.LPD_PERF_AWS_BUCKET }}
|
|
AWS_REGION: ${{ vars.LPD_PERF_AWS_REGION }}
|
|
LIGHTPANDA_DISABLE_TELEMETRY: true
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
paths:
|
|
- ".github/**"
|
|
- "src/**"
|
|
- "build.zig"
|
|
- "build.zig.zon"
|
|
|
|
pull_request:
|
|
# By default GH trigger on types opened, synchronize and reopened.
|
|
# see https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#pull_request
|
|
# Since we skip the job when the PR is in draft state, we want to force CI
|
|
# running when the PR is marked ready_for_review w/o other change.
|
|
# see https://github.com/orgs/community/discussions/25722#discussioncomment-3248917
|
|
types: [opened, synchronize, reopened, ready_for_review]
|
|
|
|
paths:
|
|
- ".github/**"
|
|
- "src/**"
|
|
- "build.zig"
|
|
- "build.zig.zon"
|
|
|
|
# Allows you to run this workflow manually from the Actions tab
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
zig-fmt:
|
|
name: zig fmt
|
|
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 15
|
|
|
|
if: github.event.pull_request.draft == false
|
|
|
|
steps:
|
|
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
|
|
|
# Zig version used from the `minimum_zig_version` field in build.zig.zon
|
|
- uses: mlugg/setup-zig@d1434d08867e3ee9daa34448df10607b98908d29 # v2.2.1
|
|
|
|
- name: Run zig fmt
|
|
id: fmt
|
|
run: zig fmt --check ./
|
|
|
|
zig-test-debug:
|
|
name: zig test using v8 in debug mode
|
|
needs: zig-fmt
|
|
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 15
|
|
|
|
if: github.event.pull_request.draft == false
|
|
|
|
steps:
|
|
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- uses: ./.github/actions/install
|
|
with:
|
|
debug: true
|
|
|
|
- name: zig build test
|
|
run: zig build -Dprebuilt_v8_path=v8/libc_v8_debug.a -Dtsan=true test
|
|
|
|
zig-test-release:
|
|
name: zig test
|
|
needs: zig-fmt
|
|
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 15
|
|
|
|
if: github.event.pull_request.draft == false
|
|
|
|
steps:
|
|
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- uses: ./.github/actions/install
|
|
|
|
- name: zig build test
|
|
run: METRICS=true zig build -Dprebuilt_v8_path=v8/libc_v8.a test > bench.json
|
|
|
|
- name: write commit
|
|
run: |
|
|
echo "${{github.sha}}" > commit.txt
|
|
|
|
- name: upload artifact
|
|
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
|
with:
|
|
name: bench-results
|
|
path: |
|
|
bench.json
|
|
commit.txt
|
|
retention-days: 10
|
|
|
|
bench-fmt:
|
|
name: perf-fmt
|
|
needs: zig-test-release
|
|
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 15
|
|
|
|
if: github.event_name != 'pull_request'
|
|
|
|
container:
|
|
image: ghcr.io/lightpanda-io/perf-fmt:latest
|
|
credentials:
|
|
username: ${{ github.actor }}
|
|
password: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
steps:
|
|
- name: download artifact
|
|
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
|
|
with:
|
|
name: bench-results
|
|
|
|
- name: format and send json result
|
|
run: /perf-fmt bench-browser ${{ github.sha }} bench.json
|