Files
bass-foundry/.gitea/workflows/release.yml
T
nvrl 5cc3770737
Check and Windows preview / check (anvil) (push) Successful in 2m1s
Check and Windows preview / check (crucible) (push) Successful in 1m31s
Check and Windows preview / check (knurl) (push) Successful in 2m4s
Check and Windows preview / check (lathe) (push) Successful in 1m27s
Check and Windows preview / check (patina) (push) Successful in 1m54s
Check and Windows preview / check (rivet) (push) Successful in 1m30s
Check and Windows preview / check (temper) (push) Successful in 1m31s
Check and Windows preview / check (weld) (push) Successful in 2m31s
Check and Windows preview / previews (push) Successful in 1m26s
Independent plugin release / plan (push) Successful in 7s
Check and Windows preview / windows (push) Successful in 2m26s
Independent plugin release / build (push) Successful in 3m0s
Independent plugin release / publish (push) Successful in 8s
feat(knurl): add Knurl cycle texture
Knurl follows the played note and treats every cycle of the wave on its
own: a repeating level pattern over 1-16 cycles makes subharmonics in tune
with every note, random level and timing per cycle add rattle, and a noise
burst per cycle, highpassed at a multiple of f0, adds grit. Amounts are
counted in cycles, so the texture is the same on F1 and on C2.

- Cycle clock from the shared note tracker, restarted at each note; the
  audio is delayed by the lookahead plus 4.2 ms of timing-jitter headroom.
- Per-cycle randomness from a hash of the cycle number: Same every note
  or Free.
- Patterns Off, Double, Triple, Fry (default), Gallop, Stutter or drawn;
  grit switchable per step. Pattern persisted as knurl-pattern.
- Editor: last eight cycles overlaid, pattern bars with the playing step.
- Tests match the prototype: Double gives f0/2 at -8.19 dB, Triple f0/3
  at -10.68 dB, equal on F1 and C2, no added clicks, bit-exact when off,
  no allocation on the audio thread.
2026-11-06 08:49:11 +01:00

89 lines
3.1 KiB
YAML

name: Independent plugin release
on:
push:
tags: ["rivet-v*", "patina-v*", "anvil-v*", "crucible-v*", "lathe-v*", "temper-v*", "weld-v*", "knurl-v*"]
permissions:
contents: read
env:
CARGO_HOME: ${{ gitea.workspace }}/.cargo-ci
RUSTUP_HOME: ${{ gitea.workspace }}/.rustup-ci
CARGO_TERM_COLOR: always
CARGO_INCREMENTAL: "0"
RELEASE_REF: ${{ gitea.ref }}
jobs:
plan:
runs-on: ubuntu-latest
container: node:22-bookworm
outputs:
plugin: ${{ steps.metadata.outputs.plugin }}
version: ${{ steps.metadata.outputs.version }}
tag: ${{ steps.metadata.outputs.tag }}
archive: ${{ steps.metadata.outputs.archive }}
steps:
- uses: https://github.com/actions/checkout@v4
with:
token: ${{ secrets.GITEA_TOKEN }}
persist-credentials: false
- run: apt-get update && apt-get install -y --no-install-recommends python3
- id: metadata
run: python3 scripts/release.py plan --tag "$RELEASE_REF"
build:
needs: plan
runs-on: ubuntu-latest
container: node:22-bookworm
env:
PLUGIN: ${{ needs.plan.outputs.plugin }}
CARGO_TARGET_DIR: ${{ gitea.workspace }}/target/windows
steps:
- uses: https://github.com/actions/checkout@v4
with:
token: ${{ secrets.GITEA_TOKEN }}
persist-credentials: false
- uses: ./.gitea/actions/setup
with:
windows: "true"
# CARGO_TARGET_DIR holds both the native checks and the Windows build.
# Kept apart from branch builds; a release never reuses preview output.
cache-name: release-${{ needs.plan.outputs.plugin }}
target-paths: target/windows
- run: |
python3 -m unittest discover -s scripts/tests -v
python3 scripts/check-plugin.py --plugin "$PLUGIN"
python3 scripts/build-plugin.py --plugin "$PLUGIN" --target x86_64-pc-windows-gnu
python3 scripts/package-windows.py --plugin "$PLUGIN"
- uses: https://github.com/actions/upload-artifact@v3-node20
with:
name: ${{ needs.plan.outputs.plugin }}-windows-${{ needs.plan.outputs.version }}
path: |
dist/${{ needs.plan.outputs.archive }}
dist/${{ needs.plan.outputs.archive }}.sha256
retention-days: 30
publish:
needs: [plan, build]
runs-on: ubuntu-latest
container: node:22-bookworm
permissions:
contents: write
steps:
- uses: https://github.com/actions/checkout@v4
with:
token: ${{ secrets.GITEA_TOKEN }}
persist-credentials: false
- run: apt-get update && apt-get install -y --no-install-recommends python3 ca-certificates
- uses: https://github.com/actions/download-artifact@v3
with:
name: ${{ needs.plan.outputs.plugin }}-windows-${{ needs.plan.outputs.version }}
path: dist
- name: Publish Gitea release and attachments
env:
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
GITEA_SERVER_URL: ${{ gitea.server_url }}
GITEA_REPOSITORY: ${{ gitea.repository }}
GITEA_REF: ${{ gitea.ref }}
run: python3 scripts/release.py publish --tag "$RELEASE_REF"