Some checks failed
CI / Lint (bash) (push) Has been cancelled
CI / Lint (markdown) (push) Has been cancelled
CI / Lint (nickel) (push) Has been cancelled
CI / Lint (nushell) (push) Has been cancelled
CI / Lint (rust) (push) Has been cancelled
CI / Code Coverage (push) Has been cancelled
CI / Test (macos-latest) (push) Has been cancelled
CI / Test (ubuntu-latest) (push) Has been cancelled
CI / Test (windows-latest) (push) Has been cancelled
CI / Build (macos-latest) (push) Has been cancelled
CI / Build (ubuntu-latest) (push) Has been cancelled
CI / Build (windows-latest) (push) Has been cancelled
CI / Benchmark (push) Has been cancelled
CI / Security Audit (push) Has been cancelled
CI / License Compliance (push) Has been cancelled
54 lines
1.8 KiB
YAML
54 lines
1.8 KiB
YAML
# Woodpecker CI Release Pipeline
|
|
# Equivalent to .github/workflows/release.yml
|
|
# Triggered on git tags (v*)
|
|
|
|
when:
|
|
event: tag
|
|
tag: v*
|
|
|
|
steps:
|
|
# === BUILD RELEASE ===
|
|
|
|
build-release:
|
|
image: rust:latest
|
|
commands:
|
|
- curl --proto '=https' --tlsv1.2 -sSf https://just.systems/install.sh | bash -s -- --to /usr/local/bin
|
|
- cargo build --release --locked
|
|
- mkdir -p dist
|
|
- cp target/release/typedialog dist/
|
|
- cp target/release/typedialog-tui dist/
|
|
- cp target/release/typedialog-web dist/
|
|
- cp target/release/typedialog-ag dist/
|
|
- cp target/release/typedialog-ag-server dist/
|
|
- cp README.md dist/ 2>/dev/null || true
|
|
- cp LICENSE dist/ 2>/dev/null || true
|
|
- cd dist && tar czf ../typedialog-${CI_COMMIT_TAG}-x86_64-linux.tar.gz .
|
|
- cd .. && sha256sum typedialog-${CI_COMMIT_TAG}-x86_64-linux.tar.gz > typedialog-${CI_COMMIT_TAG}-x86_64-linux.tar.gz.sha256
|
|
|
|
# === GENERATE SBOM ===
|
|
|
|
generate-sbom:
|
|
image: rust:latest
|
|
commands:
|
|
- cargo install cargo-sbom --locked
|
|
- cargo sbom --output-format spdx_json_2_3 > sbom-spdx.json
|
|
- cargo sbom --output-format cyclone_dx_json_1_4 > sbom-cyclonedx.json
|
|
depends_on:
|
|
- build-release
|
|
|
|
# === PUBLISH ARTIFACTS ===
|
|
# Note: This requires Woodpecker server configured with Forgejo/Gitea integration
|
|
# Artifacts will be available in the pipeline artifacts section
|
|
|
|
publish-artifacts:
|
|
image: alpine:latest
|
|
commands:
|
|
- echo "✓ Release artifacts generated successfully"
|
|
- echo "📦 Binary: typedialog-${CI_COMMIT_TAG}-x86_64-linux.tar.gz"
|
|
- echo "🔐 Checksum: typedialog-${CI_COMMIT_TAG}-x86_64-linux.tar.gz.sha256"
|
|
- echo "📋 SBOM (SPDX): sbom-spdx.json"
|
|
- echo "📋 SBOM (CycloneDX): sbom-cyclonedx.json"
|
|
- ls -lh *.tar.gz *.sha256 *.json
|
|
depends_on:
|
|
- generate-sbom
|