Release: dev → main (first public release) #258
@@ -189,6 +189,15 @@ concurrency:
|
|||||||
env:
|
env:
|
||||||
IS_REFRESH: ${{ (github.event_name == 'schedule' || format('{0}', github.event.inputs.refresh) == 'true') && 'true' || 'false' }}
|
IS_REFRESH: ${{ (github.event_name == 'schedule' || format('{0}', github.event.inputs.refresh) == 'true') && 'true' || 'false' }}
|
||||||
BUILD_REF: ${{ (github.event_name == 'schedule' || format('{0}', github.event.inputs.refresh) == 'true') && 'main' || github.sha }}
|
BUILD_REF: ${{ (github.event_name == 'schedule' || format('{0}', github.event.inputs.refresh) == 'true') && 'main' || github.sha }}
|
||||||
|
# What the six LANES check out. Empty — the checkout default, the triggering
|
||||||
|
# commit (or a PR's merge ref) — on every trigger but the refresh, where it is
|
||||||
|
# `main`: the refresh publishes main, so the gate has to test main (#4430). It
|
||||||
|
# is not BUILD_REF itself because a pull_request run's `github.sha` is a merge
|
||||||
|
# commit the default checkout reaches through its ref, not by sha. Each job
|
||||||
|
# still resolves `main` when it starts, so a merge to main during the ~5 min of
|
||||||
|
# a Sunday-06:00 refresh could put the lanes and the build one commit apart;
|
||||||
|
# the build jobs' own guards assert the branch, not the commit.
|
||||||
|
LANE_REF: ${{ (github.event_name == 'schedule' || format('{0}', github.event.inputs.refresh) == 'true') && 'main' || '' }}
|
||||||
|
|
||||||
# Requires repo secret RELEASE_TOKEN — a Forgejo PAT with scopes:
|
# Requires repo secret RELEASE_TOKEN — a Forgejo PAT with scopes:
|
||||||
# - write:package, read:package (for docker push to git.fabledsword.com)
|
# - write:package, read:package (for docker push to git.fabledsword.com)
|
||||||
@@ -229,6 +238,8 @@ jobs:
|
|||||||
image: git.fabledsword.com/bvandeusen/ci-python:3.14
|
image: git.fabledsword.com/bvandeusen/ci-python:3.14
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
ref: ${{ env.LANE_REF }}
|
||||||
- name: Ruff lint
|
- name: Ruff lint
|
||||||
# agent/ included so the GPU-agent is linted before its image is built
|
# agent/ included so the GPU-agent is linted before its image is built
|
||||||
# (build.yml only `docker build`s it — this is where it gets checked).
|
# (build.yml only `docker build`s it — this is where it gets checked).
|
||||||
@@ -275,6 +286,7 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
|
ref: ${{ env.LANE_REF }}
|
||||||
# The derivation needs real history: a depth-1 clone sees one commit
|
# The derivation needs real history: a depth-1 clone sees one commit
|
||||||
# and produces a wrong, too-low value RATHER THAN FAILING. Checking
|
# and produces a wrong, too-low value RATHER THAN FAILING. Checking
|
||||||
# that here is half the point of the lane.
|
# that here is half the point of the lane.
|
||||||
@@ -330,6 +342,7 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
|
ref: ${{ env.LANE_REF }}
|
||||||
# Full history for tests/test_artifact_identity.py, which derives
|
# Full history for tests/test_artifact_identity.py, which derives
|
||||||
# each artifact's revision to check the identity scheme. On a
|
# each artifact's revision to check the identity scheme. On a
|
||||||
# depth-1 clone that derivation either fails or returns the tip sha
|
# depth-1 clone that derivation either fails or returns the tip sha
|
||||||
@@ -376,6 +389,8 @@ jobs:
|
|||||||
working-directory: frontend
|
working-directory: frontend
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
ref: ${{ env.LANE_REF }}
|
||||||
# No package-lock.json is tracked yet (we don't run npm locally per
|
# No package-lock.json is tracked yet (we don't run npm locally per
|
||||||
# feedback-no-local-runs). Using `npm install` instead of `npm ci`.
|
# feedback-no-local-runs). Using `npm install` instead of `npm ci`.
|
||||||
# If we want strict lockfile-based reproducibility later, commit a
|
# If we want strict lockfile-based reproducibility later, commit a
|
||||||
@@ -405,6 +420,8 @@ jobs:
|
|||||||
image: node:24-bookworm-slim
|
image: node:24-bookworm-slim
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
ref: ${{ env.LANE_REF }}
|
||||||
# Not --no-save: vitest and web-ext are both real devDependencies now,
|
# Not --no-save: vitest and web-ext are both real devDependencies now,
|
||||||
# and the suite needs vitest resolvable from node_modules.
|
# and the suite needs vitest resolvable from node_modules.
|
||||||
- name: Install dev dependencies
|
- name: Install dev dependencies
|
||||||
@@ -507,6 +524,8 @@ jobs:
|
|||||||
--health-retries 10
|
--health-retries 10
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
ref: ${{ env.LANE_REF }}
|
||||||
- name: Integration suite (resolve service IPs, migrate, test)
|
- name: Integration suite (resolve service IPs, migrate, test)
|
||||||
run: |
|
run: |
|
||||||
set -eux
|
set -eux
|
||||||
|
|||||||
Reference in New Issue
Block a user