One note tracker reads the input and Lathe, Temper and Knurl follow it as modules, in any of six orders, each on or off. Every module gets the tracker's events delayed by the latency of the modules in front of it. - One module alone matches its standalone plugin sample for sample in every order. - With Knurl's sub-octave pattern in front, Lathe in Forge follows the played note; a standalone Lathe after Knurl reads it an octave low. - About 72 ms latency against about 206 ms for the three in a row. The module pages reuse the standalone editors. Register Forge in the catalog, CI, README, docs and website, and drop the built Ballast from the site's idea list.
89 lines
3.2 KiB
YAML
89 lines
3.2 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*", "planish-v*", "braze-v*", "quench-v*", "ballast-v*", "forge-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"
|