Commit graph

13 commits

Author SHA1 Message Date
Loric ANDRE d4c878893b ci: publish apt repo 2026-07-21 13:52:54 +02:00
LoricAndre 24a24619ea
ci: publish .deb, .rpm and winget packages on release (#1129)
* ci: add .deb and .rpm packages to releases via dist

Configure cargo-deb and cargo-generate-rpm to build Linux packages
containing the sk executable, the man pages (sk.1, sk-tmux.1) and the
bash/zsh/fish shell completions.

A new reusable workflow (package.yml) builds both packages and uploads
them under an artifacts-* name. It is wired into the release pipeline as
a dist global-artifacts-job in dist-workspace.toml, and release.yml is
regenerated with `dist generate` (not hand-edited) so dist's host job
attaches the packages to the GitHub Release.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WmNevtS7EV3vXyYRTVu7Aw

* ci: drop sk-tmux man page from .deb and .rpm packages

Package only the sk.1 man page; the sk-tmux.1 page is no longer shipped.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WmNevtS7EV3vXyYRTVu7Aw

* ci: temporarily build release artifacts on PRs

Set dist pr-run-mode = "upload" so the .deb and .rpm (and the other
release artifacts) are built and uploaded on pull requests, allowing the
packages to be downloaded and verified before merging.

This is temporary and should be reverted before merge.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WmNevtS7EV3vXyYRTVu7Aw

* ci: install packaging tools via taiki-e/install-action

Address review feedback on package.yml:
- Install cargo-deb and cargo-generate-rpm with taiki-e/install-action
  (prebuilt binaries) plus a Swatinem/rust-cache step, matching the
  patterns used in test.yml, instead of compiling them with cargo install.
- Drop the `--output target/debian` flag from `cargo deb`; the default
  target/debian/ directory is what the collect step expects.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WmNevtS7EV3vXyYRTVu7Aw

* ci: build arm64 .deb and .rpm packages too

Turn the package job into a matrix that builds natively for both amd64
(ubuntu-22.04) and arm64 (ubuntu-22.04-arm), producing a .deb and .rpm
per architecture. Artifacts are uploaded under per-arch names so dist's
host job attaches all of them to the release.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WmNevtS7EV3vXyYRTVu7Aw

* ci: submit releases to winget via winget-releaser

Add a dist publish job that, after the GitHub Release is created, submits
the new version to the Windows Package Manager Community Repository using
vedantmgoyal9/winget-releaser and the Windows .zip artifact dist already
attaches to the release.

Uses the package identifier and installer regex from skim-rs/skim#769:
  identifier: skim-rs.skim
  installers-regex: '-pc-windows-msvc\.zip$'

Wired in through publish-jobs in dist-workspace.toml; release.yml is
regenerated with `dist generate` (not hand-edited). Prereleases are never
submitted. Requires a WINGET_TOKEN secret (a public_repo-scoped PAT that
owns a microsoft/winget-pkgs fork under skim-rs).

Refs: skim-rs/skim#769

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WmNevtS7EV3vXyYRTVu7Aw

* ci: validate package version against the release plan

Consume the `plan` input dist passes to the package job: assert the
crate version equals the version dist planned for this release, so the
source-built .deb/.rpm can't silently drift from the release.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WmNevtS7EV3vXyYRTVu7Aw

* Update .github/workflows/winget.yml

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update .github/workflows/package.yml

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* docs: document .deb, .rpm, winget and scoop installation

Add the new install methods to the README: winget and Scoop rows plus a
Debian/RPM section with install commands, covering amd64 and arm64.

Also clarify in winget.yml that WINGET_TOKEN must be a classic PAT
(fine-grained tokens can't open the winget-pkgs PR).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WmNevtS7EV3vXyYRTVu7Aw

* fix: install cargo-deb manually to avoid libc version mismatch

* ci: use blacksmith runners for long job

* fix: version spec for cargo install

* chore: revert pr action upload

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2026-07-20 22:11:51 +00:00
LoricAndre b56eed4125
feat(ci): upload coverage report to pages for easier browsing (#1096)
* feat(ci): upload coverage report to pages for easier browsing

* fix: remove anchors

* fix: release report

* fix: coverage percent

* docs: update README

* chore: only on master
2026-06-24 18:55:33 +02:00
LoricAndre e85cf6b708
chore(ci): use github's coverage (#1094)
* chore(ci): use github's coverage

* fix: perms

* chore: ci

* test(ci): comment perm to check triggers

* test(ci): readd perm

* fix(ci): test with dist config

* fix(ci): generate dist

* fix

* docs: remove codecov

* chore: delete codecov file
2026-06-24 12:51:44 +02:00
Loric ANDRE 7e5d441e4c release: v4.1.0 2026-03-30 10:09:55 +02:00
LoricAndre 9d12e9d420
feat: windows support (#1010)
* wip: windows support

* feat: windows support

* feat: add windows target to CI

* chore: generate completions & manpage

* Update src/util.rs

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* chore: cleanup & doc

* chore: generate completions & manpage

* chore: generate dist

* fix: reduplicate default test

* chore: regate tmux

* chore: remove useless test-utils feature

* fix(windows): ignore dirs in default_command

* docs: update shell docs for windows

* chore: generate completions & manpage

* chore(justfile): do not ignore failed tests

* fix: upload correct junit after profile change

* fix: always execute exit commands

* fix: windows-specific ctrl-c handling

* chore: misc docs & other updates

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* chore: generate completions & manpage

* chore: include license in MSI installer

---------

Co-authored-by: Skim bot <skim-bot@skim-rs.github.io>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Your Name <you@example.com>
2026-03-29 21:46:42 +00:00
Loric André d40af611b6 chore(ci): add sonar directly to test workflow 2026-03-19 21:29:15 +01:00
LoricAndre 7ae0802979
chore: add sonar analysis (#1009)
* chore: add sonar analysis

* chore: add sonar config
2026-03-19 16:25:38 +01:00
Loric ANDRE 21586f911c chore: add exhaustive_match macro for enum building from str 2026-01-15 11:41:20 +01:00
Loric ANDRE 7e962392cd chore: regenerate CHANGELOG.md 2026-01-14 18:15:40 +01:00
Loric ANDRE 26d84fae9b fix: fix terminal height management 2026-01-14 17:18:36 +01:00
Loric ANDRE 94c4d76ca2 feat(ci): add crates.io publish to release CI 2026-01-14 16:19:18 +01:00
LoricAndre c364c5f128
chore: remove workspace (#883)
* chore: remove workspace

* chore: regen dist config

* fix: readme path

* chore: extra-artifacts as files

* chore: generate dist CI

* chore: prepare for prerelease

* chore: switch to include + generate-files

* chore: use run step for generate-files

---------

Co-authored-by: Loric André <loric.andre@noreply.me>
2026-01-13 11:34:10 +01:00