Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| a582913269 | |||
| 911aaca355 |
@@ -10,8 +10,38 @@ permissions:
|
|||||||
contents: write
|
contents: write
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
linux-amd64:
|
verify:
|
||||||
runs-on: [self-hosted, linux, arch, homelab]
|
runs-on: [self-hosted, linux, arch, homelab]
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Check formatting
|
||||||
|
shell: bash
|
||||||
|
run: cargo fmt --check
|
||||||
|
|
||||||
|
- name: Run tests
|
||||||
|
shell: bash
|
||||||
|
run: cargo test --locked
|
||||||
|
|
||||||
|
- name: Run clippy
|
||||||
|
shell: bash
|
||||||
|
run: cargo clippy --locked -- -D warnings
|
||||||
|
|
||||||
|
- name: Lint YAML
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
docker run --rm \
|
||||||
|
-v "$PWD:/work" \
|
||||||
|
-w /work \
|
||||||
|
cytopia/yamllint:latest \
|
||||||
|
-c .yamllint .
|
||||||
|
|
||||||
|
linux-amd64:
|
||||||
|
needs: verify
|
||||||
|
runs-on: [self-hosted, linux, arch, homelab]
|
||||||
|
env:
|
||||||
|
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
|||||||
@@ -4,6 +4,13 @@ All notable changes to this project are documented here.
|
|||||||
|
|
||||||
The project uses semantic versioning. Tags are formatted as `vMAJOR.MINOR.PATCH`.
|
The project uses semantic versioning. Tags are formatted as `vMAJOR.MINOR.PATCH`.
|
||||||
|
|
||||||
|
## [1.1.3] - 2026-07-03
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Made the tag-based release workflow fail closed: lint and test gates now run before build and publish.
|
||||||
|
- Exposed Gitea Actions' built-in `${{ secrets.GITEA_TOKEN }}` to the release API steps so release creation and asset upload authenticate correctly.
|
||||||
|
|
||||||
## [1.1.2] - 2026-07-03
|
## [1.1.2] - 2026-07-03
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
@@ -20,5 +27,6 @@ The project uses semantic versioning. Tags are formatted as `vMAJOR.MINOR.PATCH`
|
|||||||
- Added YAML configuration, CLI `init`, `preview`, and `run` commands.
|
- Added YAML configuration, CLI `init`, `preview`, and `run` commands.
|
||||||
- Added Gitea CI and tag-based release workflows.
|
- Added Gitea CI and tag-based release workflows.
|
||||||
|
|
||||||
|
[1.1.3]: https://gitea.forust.xyz/forust/gosleep/releases/tag/v1.1.3
|
||||||
[1.1.2]: https://gitea.forust.xyz/forust/gosleep/releases/tag/v1.1.2
|
[1.1.2]: https://gitea.forust.xyz/forust/gosleep/releases/tag/v1.1.2
|
||||||
[1.1.1]: https://gitea.forust.xyz/forust/gosleep/releases/tag/v1.1.1
|
[1.1.1]: https://gitea.forust.xyz/forust/gosleep/releases/tag/v1.1.1
|
||||||
|
|||||||
Generated
+1
-1
@@ -298,7 +298,7 @@ checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "gosleep-timer"
|
name = "gosleep-timer"
|
||||||
version = "1.1.2"
|
version = "1.1.3"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"clap",
|
"clap",
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "gosleep-timer"
|
name = "gosleep-timer"
|
||||||
version = "1.1.2"
|
version = "1.1.3"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
rust-version = "1.85"
|
rust-version = "1.85"
|
||||||
description = "Terminal sleep timer for Linux desktop actions, with YAML config and a Rust TUI"
|
description = "Terminal sleep timer for Linux desktop actions, with YAML config and a Rust TUI"
|
||||||
|
|||||||
+8
-6
@@ -40,7 +40,7 @@ https://gitea.forust.xyz/forust/gosleep.git
|
|||||||
- `sha256sum`
|
- `sha256sum`
|
||||||
- Docker, if using the YAML lint job as written
|
- Docker, if using the YAML lint job as written
|
||||||
4. Confirm Actions job token permissions allow `contents: write`.
|
4. Confirm Actions job token permissions allow `contents: write`.
|
||||||
The release workflow uses Gitea Actions' built-in `GITEA_TOKEN`; no extra repository secret is required.
|
The release workflow uses Gitea Actions' built-in `GITEA_TOKEN`, exposed in the workflow as `${{ secrets.GITEA_TOKEN }}`; no extra repository secret is required.
|
||||||
|
|
||||||
## Version Bump Checklist
|
## Version Bump Checklist
|
||||||
|
|
||||||
@@ -78,13 +78,15 @@ git push origin v1.1.2
|
|||||||
|
|
||||||
The `.gitea/workflows/release.yaml` workflow will:
|
The `.gitea/workflows/release.yaml` workflow will:
|
||||||
|
|
||||||
1. Build `target/release/gosleep-timer`.
|
1. Re-run release gates: `cargo fmt --check`, `cargo test --locked`, `cargo clippy --locked -- -D warnings`, and YAML lint.
|
||||||
2. Package `gosleep-timer-<version>-linux-amd64.tar.gz`.
|
2. Build `target/release/gosleep-timer`.
|
||||||
3. Generate a SHA-256 checksum.
|
3. Package `gosleep-timer-<version>-linux-amd64.tar.gz`.
|
||||||
4. Create a Gitea release.
|
4. Generate a SHA-256 checksum.
|
||||||
5. Upload the archive and checksum as release assets.
|
5. Create a Gitea release.
|
||||||
|
6. Upload the archive 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.
|
||||||
|
|
||||||
## Manual Asset Build
|
## Manual Asset Build
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user