chadtmiller.com/knotless
git that lives in your Atmosphere account
1
10
Steps that run at main alone say so with on
.knotless/workflows/publish-lexicons.yml+6−6
| @@ -19,10 +19,8 @@ | ||
# record to make. | ||
# | ||
# Asked for on any other branch, `knotless rerun <repo> --ref | ||
# refs/heads/<branch> --workflow publish-lexicons`, it plans and skips the | ||
# wait for checks. It is given no secrets there, so its write passes only | ||
# when there is nothing to change, and otherwise fails having written | ||
# nothing. | ||
# refs/heads/<branch> --workflow publish-lexicons`, it plans, and the wait | ||
# for checks and the publish, which run at main alone, are skipped. | ||
on: | ||
push: {refs: [refs/heads/main], paths: [lexicons/**, .knotless/workflows/publish-lexicons.yml]} | ||
asked: {refs: [refs/heads/*]} | ||
| @@ -37,10 +35,12 @@ steps: | ||
- uses: chadtmiller.com/steps/publish-lexicons@1 | ||
name: plan | ||
with: {did: "did:plc:yqsg7znbbhfmj3a2nrpnaerk", zone: knotless.dev} | ||
- uses: chadtmiller.com/steps/wait-for-checks@1 | ||
- uses: chadtmiller.com/steps/wait-for-checks@2 | ||
name: checks pass | ||
with: {workflows: check test web lexicons shots docs e2e, only-on: refs/heads/main} | ||
on: {refs: [refs/heads/main]} | ||
with: {workflows: check test web lexicons shots docs e2e} | ||
- uses: chadtmiller.com/steps/publish-lexicons@1 | ||
name: publish | ||
on: {refs: [refs/heads/main]} | ||
with: {did: "did:plc:yqsg7znbbhfmj3a2nrpnaerk", zone: knotless.dev, write: "true"} | ||
secrets: [LEX_PASSWORD, CLOUDFLARE_API_TOKEN] | ||
.knotless/workflows/release.yml+9−6
| @@ -36,12 +36,14 @@ steps: | ||
elif [ "$KNOTLESS_RUN_REF" != refs/heads/main ]; then | ||
echo "on $KNOTLESS_RUN_REF: building $version, publishing nothing" | ||
fi | ||
# All seven, over 25 minutes, with the knotless just built. On main | ||
# only, and even when the version is published already, as the step | ||
# cannot see ~/.done: it then waits for checks it does not need. | ||
- uses: chadtmiller.com/steps/wait-for-checks@1 | ||
# All seven, over 25 minutes, with the knotless just built. At main | ||
# alone, as publish is, and even when the version is published already, | ||
# as the step cannot see ~/.done: it then waits for checks it does not | ||
# need. | ||
- uses: chadtmiller.com/steps/wait-for-checks@2 | ||
name: checks pass | ||
with: {workflows: check test web lexicons shots docs e2e, only-on: refs/heads/main} | ||
on: {refs: [refs/heads/main]} | ||
with: {workflows: check test web lexicons shots docs e2e} | ||
- name: tools | ||
run: | | ||
[ ! -e ~/.done ] || exit 0 | ||
| @@ -61,8 +63,9 @@ steps: | ||
TOOLCHAIN= deploy/build-client.sh target/client | ||
ls -l target/client | ||
- name: publish | ||
on: {refs: [refs/heads/main]} | ||
run: | | ||
[ ! -e ~/.done ] && [ "$KNOTLESS_RUN_REF" = refs/heads/main ] || exit 0 | ||
[ ! -e ~/.done ] || exit 0 | ||
version=$(cat ~/.version) | ||
# The version's section of the changelog, less its heading. | ||
awk -v v="$version" '/^## / { on = ($2 == v); next } on' CHANGELOG.md > ~/.notes | ||
.knotless/uses.lock+4−4
| @@ -19,7 +19,7 @@ chadtmiller.com/steps/rust-lint@1: | ||
version: 1.0.0 | ||
commit: 686cdbb38978730bb1ba5d1c999967e48497ce15 | ||
release: at://did:plc:bcgltzqazw5tb6k2g3ttenbj/dev.knotless.release/3mza7iq7tundv.zvxvlxa6fe7s4pnwsnmgmm63aj.sjjb7q6l3fsl3spvqsuzdoe73w | ||
chadtmiller.com/steps/wait-for-checks@1: | ||
version: 1.0.0 | ||
commit: 686cdbb38978730bb1ba5d1c999967e48497ce15 | ||
release: at://did:plc:bcgltzqazw5tb6k2g3ttenbj/dev.knotless.release/3mza7iq7tundv.nglt7rswdf5dzx2tmob2gquhpu.sjjb7q6l3fsl3spvqsuzdoe73w | ||
chadtmiller.com/steps/wait-for-checks@2: | ||
version: 2.0.0 | ||
commit: d5b057a2314833fdee9f600c7872db2916b0d0aa | ||
release: at://did:plc:bcgltzqazw5tb6k2g3ttenbj/dev.knotless.release/3mza7iq7tundv.nglt7rswdf5dzx2tmob2gquhpu.6ivl2z3tvmrsq2jsdlkldzd2yd | ||
docs/design/reusable-workflows.md+2−2
| @@ -24,14 +24,14 @@ secrets it may be given, and its own steps, each a shell script: | ||
description: Wait for this commit's checks to pass | ||
inputs: | ||
workflows: {description: The workflows to wait for, required: true} | ||
only-on: {default: refs/heads/main} | ||
minutes: {default: "25"} | ||
needs: [curl] | ||
secrets: [TOKEN] | ||
steps: | ||
- name: wait | ||
run: | | ||
for wf in $INPUT_WORKFLOWS; do | ||
echo "waiting for $wf on $INPUT_ONLY_ON" | ||
echo "waiting $INPUT_MINUTES minutes for $wf" | ||
# poll this commit's checks with curl and $TOKEN | ||
done | ||
timeout: 30 | ||