Skip to content

Commit ea2a82c

Browse files
Make Suno v6 generation, downloads, and agent workflows reliable
1 parent f0dea4d commit ea2a82c

56 files changed

Lines changed: 5947 additions & 2325 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.github/workflows/ci.yml‎

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,19 @@ jobs:
1515
with:
1616
components: clippy, rustfmt
1717
- run: cargo fmt --check
18-
- run: cargo clippy --all-targets -- -D warnings
19-
- run: cargo test
20-
- run: cargo build --release
18+
- run: cargo clippy --locked --all-targets -- -D warnings
19+
- run: cargo test --locked
20+
- run: cargo build --locked --release
2121
# Vendored framework contract probe (conformance/ tracks
2222
# paperfoot/agent-cli-framework) — the release binary must conform.
2323
- run: ./conformance/conformance.sh target/release/suno
24+
- uses: actions/setup-python@v5
25+
with:
26+
python-version: "3.13"
27+
- run: python -m pip install -r conformance/requirements.txt
28+
- run: python conformance/validate.py target/release/suno
2429

25-
# release.yml ships Windows + macOS binaries; the guard's platform-specific
26-
# process-liveness (libc::kill vs OpenProcess) only compiles here, so build +
27-
# test on those runners to stop a windows-msvc regression reaching a release.
30+
# Exercise filesystem locks, archive extraction, and paths on each desktop OS.
2831
cross-platform:
2932
strategy:
3033
fail-fast: false
@@ -34,5 +37,5 @@ jobs:
3437
steps:
3538
- uses: actions/checkout@v4
3639
- uses: dtolnay/rust-toolchain@stable
37-
- run: cargo build --all-targets
38-
- run: cargo test
40+
- run: cargo build --locked --all-targets
41+
- run: cargo test --locked

‎.github/workflows/release.yml‎

Lines changed: 34 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,26 @@ permissions:
99
contents: write
1010

1111
jobs:
12+
verify:
13+
runs-on: ubuntu-latest
14+
steps:
15+
- uses: actions/checkout@v4
16+
- uses: dtolnay/rust-toolchain@stable
17+
with:
18+
components: clippy, rustfmt
19+
- run: cargo fmt --check
20+
- run: cargo clippy --locked --all-targets -- -D warnings
21+
- run: cargo test --locked
22+
- run: cargo build --locked --release
23+
- run: ./conformance/conformance.sh target/release/suno
24+
- uses: actions/setup-python@v5
25+
with:
26+
python-version: "3.13"
27+
- run: python -m pip install -r conformance/requirements.txt
28+
- run: python conformance/validate.py target/release/suno
29+
1230
build:
31+
needs: verify
1332
strategy:
1433
matrix:
1534
include:
@@ -45,7 +64,7 @@ jobs:
4564
sudo apt-get install -y gcc-aarch64-linux-gnu
4665
4766
- name: Build
48-
run: cargo build --release --target ${{ matrix.target }}
67+
run: cargo build --locked --release --target ${{ matrix.target }}
4968
env:
5069
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER: aarch64-linux-gnu-gcc
5170

@@ -79,12 +98,22 @@ jobs:
7998
uses: actions/download-artifact@v4
8099
with:
81100
path: artifacts
101+
merge-multiple: true
102+
103+
- name: Publish archive checksums
104+
run: |
105+
cd artifacts
106+
sha256sum *.tar.gz *.zip > checksums.txt
107+
108+
- name: Prepare release notes
109+
run: python -c "from pathlib import Path; s=Path('CHANGELOG.md').read_text(); Path('release-notes.md').write_text(s.split('\n## ',2)[1])"
82110

83111
- name: Create release
84112
uses: softprops/action-gh-release@v2
85113
with:
114+
body_path: release-notes.md
86115
generate_release_notes: true
87-
files: artifacts/**/*
116+
files: artifacts/*
88117
env:
89118
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
90119

@@ -95,5 +124,6 @@ jobs:
95124
- uses: actions/checkout@v4
96125
- uses: dtolnay/rust-toolchain@stable
97126
- name: Publish to crates.io
98-
run: cargo publish --token ${{ secrets.CARGO_REGISTRY_TOKEN }}
99-
continue-on-error: true
127+
run: cargo publish --locked
128+
env:
129+
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}

0 commit comments

Comments
 (0)