diff options
Diffstat
| -rw-r--r-- | .github/workflows/build.yml | 44 | +29 −15 |
| -rw-r--r-- | .github/workflows/legal.yml | 1 | +1 −0 |
| -rw-r--r-- | Makefile | 4 | +1 −3 |
| -rw-r--r-- | README.md | 6 | +2 −4 |
| -rw-r--r-- | REUSE.toml | 1 | +1 −0 |
| -rw-r--r-- | mise.lock | 99 | +99 −0 |
| -rw-r--r-- | mise.toml | 28 | +28 −0 |
7 files changed, 161 insertions, 22 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2471a92..11a2409 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -21,7 +21,13 @@ jobs: steps: - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 - - uses: dtolnay/rust-toolchain@4be9e76fd7c4901c61fb841f559994984270fce7 # stable + - uses: jdx/mise-action@5228313ee0372e111a38da051671ca30fc5a96db # v3 + with: + version: 2026.7.5 + experimental: true + install: false + - name: Install dependencies + run: mise bootstrap --locked --yes --update - uses: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2.8.2 - name: Check formatting @@ -42,9 +48,13 @@ jobs: steps: - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 - - uses: dtolnay/rust-toolchain@4be9e76fd7c4901c61fb841f559994984270fce7 # stable + - uses: jdx/mise-action@5228313ee0372e111a38da051671ca30fc5a96db # v3 with: - components: llvm-tools-preview + version: 2026.7.5 + experimental: true + install: false + - name: Install dependencies + run: mise bootstrap --locked --yes --update - uses: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2.8.2 - name: Import GPG key @@ -57,11 +67,6 @@ jobs: - run: cargo build --release - run: cargo test --all-features --release --locked - - name: Install nfpm - run: | - echo 'deb [trusted=yes] https://repo.goreleaser.com/apt/ /' | sudo tee /etc/apt/sources.list.d/goreleaser.list - sudo apt update && sudo apt install nfpm - - name: Build packages run: | export SIGNING_PRIVATE_KEY="/tmp/private.asc" @@ -81,9 +86,6 @@ jobs: GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }} NFPM_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} - - name: Install tools - run: make setup - - name: Generate coverage (lcov) run: cargo llvm-cov --all-features --workspace --lcov --output-path coverage.lcov @@ -111,6 +113,14 @@ jobs: steps: - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 + - uses: jdx/mise-action@5228313ee0372e111a38da051671ca30fc5a96db # v3 + with: + version: 2026.7.5 + experimental: true + install: false + - name: Install dependencies + run: mise bootstrap --locked --yes --update + - uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0 with: name: binary-amd64 @@ -130,10 +140,14 @@ jobs: contents: write steps: - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 - - name: Install tools - run: | - sudo apt-get update - sudo apt-get install -y aptly rclone createrepo-c + + - uses: jdx/mise-action@5228313ee0372e111a38da051671ca30fc5a96db # v3 + with: + version: 2026.7.5 + experimental: true + install: false + - name: Install dependencies + run: mise bootstrap --locked --yes --update - uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0 with: diff --git a/.github/workflows/legal.yml b/.github/workflows/legal.yml index 3d6aa54..0336344 100644 --- a/.github/workflows/legal.yml +++ b/.github/workflows/legal.yml @@ -26,6 +26,7 @@ jobs: with: version: 2026.7.5 experimental: true + install: false - name: Check contribution sign-off run: mise run signoff diff --git a/Makefile b/Makefile index 295d2da..0374428 100644 --- a/Makefile +++ b/Makefile @@ -1,8 +1,6 @@ # SPDX-FileCopyrightText: 2026 Nikolay Govorov # SPDX-License-Identifier: AGPL-3.0-or-later -CARGO_LLVM_COV_VERSION = ^0.8 - all: legal fmt clippy test .PHONY: legal @@ -14,7 +12,7 @@ signoff: .PHONY: setup setup: - cargo install cargo-llvm-cov@$(CARGO_LLVM_COV_VERSION) + mise bootstrap .PHONY: licenses licenses: diff --git a/README.md b/README.md index 1968712..2fbc62c 100644 --- a/README.md +++ b/README.md @@ -46,11 +46,9 @@ sudo systemctl enable --now recluse ## Build from source -1. Install build dependencies: - - Fedora/RedHat: `sudo dnf install gcc openssl-devel pkg-config` - - Debian/Ubuntu: `sudo apt install build-essential libssl-dev pkg-config` 1. Clone repo: `git clone https://github.com/dimidiumlabs/recluse.git && cd recluse` -1. Build from source: `cargo build --release` +1. Provision the toolchain and system build dependencies: `mise bootstrap` +1. Build from source: `mise exec -- cargo build --release` 1. Install manually ```bash diff --git a/REUSE.toml b/REUSE.toml index e0a4b90..5b14da9 100644 --- a/REUSE.toml +++ b/REUSE.toml @@ -7,6 +7,7 @@ version = 1 path = [ "Cargo.toml", "Cargo.lock", + "mise.lock", "pkg/*.svg", diff --git a/mise.lock b/mise.lock new file mode 100644 --- /dev/null +++ b/mise.lock @@ -0,0 +1,99 @@ +# @generated - this file is auto-generated by `mise lock` https://mise.jdx.dev/dev-tools/mise-lock.html + +[[tools."aqua:aptly-dev/aptly"]] +version = "1.6.3" +backend = "aqua:aptly-dev/aptly" + +[tools."aqua:aptly-dev/aptly"."platforms.linux-arm64"] +checksum = "sha256:dd0988ebe8bfd547482e55de83f178c14e95d5d829d956ce683e0ca045cdb86c" +url = "https://github.com/aptly-dev/aptly/releases/download/v1.6.3/aptly_1.6.3_linux_arm64.zip" +url_api = "https://api.github.com/repos/aptly-dev/aptly/releases/assets/457534360" + +[tools."aqua:aptly-dev/aptly"."platforms.linux-x64"] +checksum = "sha256:535ed24eb706bc25a316b59d709a7e74e10165f2ffab8552097ba7e4816a3e7e" +url = "https://github.com/aptly-dev/aptly/releases/download/v1.6.3/aptly_1.6.3_linux_amd64.zip" +url_api = "https://api.github.com/repos/aptly-dev/aptly/releases/assets/457534365" + +[[tools."aqua:taiki-e/cargo-llvm-cov"]] +version = "0.8.7" +backend = "aqua:taiki-e/cargo-llvm-cov" + +[tools."aqua:taiki-e/cargo-llvm-cov"."platforms.linux-arm64"] +checksum = "sha256:b7bb2ad514166f3b19fc06874c577eefde0010e5ac571f9ae33ff45cd19a4785" +url = "https://github.com/taiki-e/cargo-llvm-cov/releases/download/v0.8.7/cargo-llvm-cov-aarch64-unknown-linux-musl.tar.gz" +url_api = "https://api.github.com/repos/taiki-e/cargo-llvm-cov/releases/assets/418861713" + +[tools."aqua:taiki-e/cargo-llvm-cov"."platforms.linux-x64"] +checksum = "sha256:967b5cc996c29d8baa52bbb4595ef1f53af35255af8e2036ddbc6468d7b523c7" +url = "https://github.com/taiki-e/cargo-llvm-cov/releases/download/v0.8.7/cargo-llvm-cov-x86_64-unknown-linux-musl.tar.gz" +url_api = "https://api.github.com/repos/taiki-e/cargo-llvm-cov/releases/assets/418861752" + +[[tools.gh]] +version = "2.96.0" +backend = "aqua:cli/cli" + +[tools.gh."platforms.linux-arm64"] +checksum = "sha256:06f86ec7103d41993b76cd78072f43595c34aaa56506d971d9860e67140bf909" +url = "https://github.com/cli/cli/releases/download/v2.96.0/gh_2.96.0_linux_arm64.tar.gz" +url_api = "https://api.github.com/repos/cli/cli/releases/assets/464728549" +provenance = "github-attestations" + +[tools.gh."platforms.linux-x64"] +checksum = "sha256:83d5c2ccad5498f58bf6368acb1ab32588cf43ab3a4b1c301bf36328b1c8bd60" +url = "https://github.com/cli/cli/releases/download/v2.96.0/gh_2.96.0_linux_amd64.tar.gz" +url_api = "https://api.github.com/repos/cli/cli/releases/assets/464728543" +provenance = "github-attestations" + +[[tools.jq]] +version = "1.8.2" +backend = "aqua:jqlang/jq" + +[tools.jq."platforms.linux-arm64"] +checksum = "sha256:8b85c817833814ddca00a144c33705546355afccf0cf39b188f3cdb48b852309" +url = "https://github.com/jqlang/jq/releases/download/jq-1.8.2/jq-linux-arm64" +url_api = "https://api.github.com/repos/jqlang/jq/releases/assets/453012756" +provenance = "github-attestations" + +[tools.jq."platforms.linux-x64"] +checksum = "sha256:b1c22172dd303f3be49e935aa56aa48a8b7a46e0bc838b4997d3bb451495870f" +url = "https://github.com/jqlang/jq/releases/download/jq-1.8.2/jq-linux-amd64" +url_api = "https://api.github.com/repos/jqlang/jq/releases/assets/453012752" +provenance = "github-attestations" + +[[tools.nfpm]] +version = "2.47.0" +backend = "aqua:goreleaser/nfpm" + +[tools.nfpm."platforms.linux-arm64"] +checksum = "sha256:1c0f5f2999b9a974bfb04fdb0cc3306096de530ac5dbb25d739cc5f5219c919c" +url = "https://github.com/goreleaser/nfpm/releases/download/v2.47.0/nfpm_2.47.0_Linux_arm64.tar.gz" +url_api = "https://api.github.com/repos/goreleaser/nfpm/releases/assets/453316744" +provenance = "cosign" + +[tools.nfpm."platforms.linux-x64"] +checksum = "sha256:0660ca602b2d2d2ae4781a06c692b3eeb9d437ffea05b831d76e41f4a3188783" +url = "https://github.com/goreleaser/nfpm/releases/download/v2.47.0/nfpm_2.47.0_Linux_x86_64.tar.gz" +url_api = "https://api.github.com/repos/goreleaser/nfpm/releases/assets/453316748" +provenance = "cosign" + +[[tools.rclone]] +version = "1.74.4" +backend = "aqua:rclone/rclone" + +[tools.rclone."platforms.linux-arm64"] +checksum = "sha256:97685285c9ad6a0cf17d5844115d2a67245af6444db672187074bd9c358de419" +url = "https://github.com/rclone/rclone/releases/download/v1.74.4/rclone-v1.74.4-linux-arm64.zip" +url_api = "https://api.github.com/repos/rclone/rclone/releases/assets/470550100" + +[tools.rclone."platforms.linux-x64"] +checksum = "sha256:fe435e0c36228e7c2f116a8701f01127bb1f694005fc11d1f27186c8bca4115d" +url = "https://github.com/rclone/rclone/releases/download/v1.74.4/rclone-v1.74.4-linux-amd64.zip" +url_api = "https://api.github.com/repos/rclone/rclone/releases/assets/470549540" + +[[tools.rust]] +version = "1.97.1" +backend = "core:rust" + +[tools.rust.options] +components = "clippy,llvm-tools-preview,rustfmt" +profile = "minimal" diff --git a/mise.toml b/mise.toml index e6867f4..214e32f 100644 --- a/mise.toml +++ b/mise.toml @@ -6,6 +6,34 @@ min_version = "2026.7.5" [settings] experimental = true +[tools] +"aqua:aptly-dev/aptly" = "1.6.3" +"aqua:taiki-e/cargo-llvm-cov" = "0.8.7" +gh = "2.96.0" +jq = "1.8.2" +nfpm = "2.47.0" +rclone = "1.74.4" +rust = { version = "1.97.1", profile = "minimal", components = [ + "clippy", + "llvm-tools-preview", + "rustfmt", +] } + +[bootstrap.packages] +# APT +"apt:build-essential" = "latest" +"apt:createrepo-c" = "latest" +"apt:gnupg" = "latest" +"apt:libssl-dev" = "latest" +"apt:pkg-config" = "latest" + +# DNF +"dnf:createrepo_c" = "latest" +"dnf:gcc" = "latest" +"dnf:gnupg2" = "latest" +"dnf:openssl-devel" = "latest" +"dnf:pkgconf-pkg-config" = "latest" + [task_config] dir = "{{cwd}}" includes = [ |
