build: publish raw release binary
This commit is contained in:
@@ -56,9 +56,9 @@ jobs:
|
|||||||
tag="${GITHUB_REF##*/}"
|
tag="${GITHUB_REF##*/}"
|
||||||
version="${tag#v}"
|
version="${tag#v}"
|
||||||
mkdir -p dist
|
mkdir -p dist
|
||||||
cp target/release/gosleep-timer dist/gosleep-timer
|
binary="gosleep-timer-${version}-linux-amd64"
|
||||||
tar -C dist -czf "dist/gosleep-timer-${version}-linux-amd64.tar.gz" gosleep-timer
|
cp target/release/gosleep-timer "dist/${binary}"
|
||||||
sha256sum "dist/gosleep-timer-${version}-linux-amd64.tar.gz" > "dist/gosleep-timer-${version}-linux-amd64.tar.gz.sha256"
|
sha256sum "dist/${binary}" > "dist/${binary}.sha256"
|
||||||
|
|
||||||
- name: Create Gitea release
|
- name: Create Gitea release
|
||||||
id: release
|
id: release
|
||||||
@@ -100,7 +100,7 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
release_url="https://gitea.forust.xyz/api/v1/repos/forust/gosleep/releases"
|
release_url="https://gitea.forust.xyz/api/v1/repos/forust/gosleep/releases"
|
||||||
release_id="${{ steps.release.outputs.release_id }}"
|
release_id="${{ steps.release.outputs.release_id }}"
|
||||||
for asset in dist/*.tar.gz dist/*.sha256; do
|
for asset in dist/gosleep-timer-* dist/gosleep-timer-*.sha256; do
|
||||||
name="$(basename "$asset")"
|
name="$(basename "$asset")"
|
||||||
release="$(curl -fsS \
|
release="$(curl -fsS \
|
||||||
"${release_url}/${release_id}" \
|
"${release_url}/${release_id}" \
|
||||||
|
|||||||
+5
-5
@@ -80,10 +80,10 @@ The `.gitea/workflows/release.yaml` workflow will:
|
|||||||
|
|
||||||
1. Re-run release gates: `cargo fmt --check`, `cargo test --locked`, `cargo clippy --locked -- -D warnings`, and YAML lint.
|
1. Re-run release gates: `cargo fmt --check`, `cargo test --locked`, `cargo clippy --locked -- -D warnings`, and YAML lint.
|
||||||
2. Build `target/release/gosleep-timer`.
|
2. Build `target/release/gosleep-timer`.
|
||||||
3. Package `gosleep-timer-<version>-linux-amd64.tar.gz`.
|
3. Copy binary as `gosleep-timer-<version>-linux-amd64`.
|
||||||
4. Generate a SHA-256 checksum.
|
4. Generate a SHA-256 checksum.
|
||||||
5. Create a Gitea release.
|
5. Create a Gitea release.
|
||||||
6. Upload the archive and checksum as release assets.
|
6. Upload the binary and checksum as release assets.
|
||||||
|
|
||||||
The workflow is idempotent: if the release already exists, it reuses it and replaces assets with matching names.
|
The workflow is idempotent: if the release already exists, it reuses it and replaces assets with matching names.
|
||||||
If any lint or test step fails, the build and release job will not run.
|
If any lint or test step fails, the build and release job will not run.
|
||||||
@@ -96,7 +96,7 @@ If Actions are unavailable:
|
|||||||
version="$(cat VERSION)"
|
version="$(cat VERSION)"
|
||||||
cargo build --release --locked
|
cargo build --release --locked
|
||||||
mkdir -p dist
|
mkdir -p dist
|
||||||
cp target/release/gosleep-timer dist/gosleep-timer
|
binary="gosleep-timer-${version}-linux-amd64"
|
||||||
tar -C dist -czf "dist/gosleep-timer-${version}-linux-amd64.tar.gz" gosleep-timer
|
cp target/release/gosleep-timer "dist/${binary}"
|
||||||
sha256sum "dist/gosleep-timer-${version}-linux-amd64.tar.gz" > "dist/gosleep-timer-${version}-linux-amd64.tar.gz.sha256"
|
sha256sum "dist/${binary}" > "dist/${binary}.sha256"
|
||||||
```
|
```
|
||||||
|
|||||||
Reference in New Issue
Block a user