fix: publish valid release assets
ci / rust (push) Successful in 41s
ci / lint-yaml (push) Successful in 4s

This commit is contained in:
2026-07-05 02:20:20 +02:00
parent ce236bc49f
commit 483ef2fecf
4 changed files with 19 additions and 18 deletions
+3 -2
View File
@@ -58,7 +58,8 @@ jobs:
mkdir -p dist
binary="gosleep-timer-${version}-linux-amd64"
cp target/release/gosleep-timer "dist/${binary}"
sha256sum "dist/${binary}" > "dist/${binary}.sha256"
cd dist
sha256sum "${binary}" > "${binary}.sha256"
- name: Create Gitea release
id: release
@@ -100,7 +101,7 @@ jobs:
run: |
release_url="https://gitea.forust.xyz/api/v1/repos/forust/gosleep/releases"
release_id="${{ steps.release.outputs.release_id }}"
for asset in dist/gosleep-timer-* dist/gosleep-timer-*.sha256; do
for asset in dist/gosleep-timer-*; do
name="$(basename "$asset")"
release="$(curl -fsS \
"${release_url}/${release_id}" \
+5 -4
View File
@@ -73,20 +73,21 @@ test "$(cat VERSION)" = "$(cargo metadata --no-deps --format-version 1 | jq -r '
Release workflow is tag-based:
```bash
git tag -a v1.1.1 -m "gosleep-timer v1.1.1"
git tag -a vMAJOR.MINOR.PATCH -m "gosleep-timer vMAJOR.MINOR.PATCH"
git push origin main
git push origin v1.1.1
git push origin vMAJOR.MINOR.PATCH
```
The Gitea release workflow:
- runs formatting, tests, clippy, and YAML lint before building
- builds `target/release/gosleep-timer`
- creates `gosleep-timer-<version>-linux-amd64.tar.gz`
- copies `gosleep-timer-<version>-linux-amd64`
- writes a `.sha256`
- creates or reuses the matching Gitea release
- replaces release assets with matching names
The workflow uses the built-in `GITEA_TOKEN` and declares `permissions: contents: write`.
The workflow exposes `${{ secrets.GITEA_TOKEN }}` as `GITEA_TOKEN` and declares `permissions: contents: write`.
## Git Remote
+4 -5
View File
@@ -33,11 +33,11 @@ install -Dm755 target/release/gosleep-timer ~/.local/bin/gosleep-timer
### From release artifact
Download `gosleep-timer-<version>-linux-amd64.tar.gz` from the Gitea release page, then:
Download `gosleep-timer-<version>-linux-amd64` and its `.sha256` from the Gitea release page, then:
```bash
tar -xzf gosleep-timer-<version>-linux-amd64.tar.gz
install -Dm755 gosleep-timer ~/.local/bin/gosleep-timer
sha256sum -c gosleep-timer-<version>-linux-amd64.sha256
install -Dm755 gosleep-timer-<version>-linux-amd64 ~/.local/bin/gosleep-timer
```
## Usage
@@ -197,12 +197,11 @@ Required runner tools:
- Rust stable toolchain with `cargo`, `rustfmt`, and `clippy`
- `curl`
- `jq`
- `tar`
- `sha256sum`
Release authentication:
- The workflow uses Gitea Actions' built-in `GITEA_TOKEN`.
- The workflow exposes Gitea Actions' built-in `${{ secrets.GITEA_TOKEN }}` as `GITEA_TOKEN`.
- The workflow declares `permissions: contents: write` so the token can create releases and upload assets.
See [RELEASING.md](RELEASING.md) for the full release checklist.
+7 -7
View File
@@ -36,7 +36,6 @@ https://gitea.forust.xyz/forust/gosleep.git
- `clippy`
- `curl`
- `jq`
- `tar`
- `sha256sum`
- Docker, if using the YAML lint job as written
4. Confirm Actions job token permissions allow `contents: write`.
@@ -44,10 +43,10 @@ https://gitea.forust.xyz/forust/gosleep.git
## Version Bump Checklist
For a patch bump, for example `1.1.1` to `1.1.2`:
For a patch bump, for example `1.1.3` to `1.1.4`:
```bash
version=1.1.2
version=1.1.4
```
Update:
@@ -70,10 +69,10 @@ cargo build --release --locked
```bash
git status --short
git commit -am "chore: release v1.1.2"
git tag -a v1.1.2 -m "gosleep-timer v1.1.2"
git commit -am "chore: release v${version}"
git tag -a "v${version}" -m "gosleep-timer v${version}"
git push origin main
git push origin v1.1.2
git push origin "v${version}"
```
The `.gitea/workflows/release.yaml` workflow will:
@@ -98,5 +97,6 @@ cargo build --release --locked
mkdir -p dist
binary="gosleep-timer-${version}-linux-amd64"
cp target/release/gosleep-timer "dist/${binary}"
sha256sum "dist/${binary}" > "dist/${binary}.sha256"
cd dist
sha256sum "${binary}" > "${binary}.sha256"
```