aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat
-rw-r--r--.github/workflows/build.yml44+29 −15
-rw-r--r--.github/workflows/legal.yml1+1 −0
-rw-r--r--Makefile4+1 −3
-rw-r--r--README.md6+2 −4
-rw-r--r--REUSE.toml1+1 −0
-rw-r--r--mise.lock99+99 −0
-rw-r--r--mise.toml28+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 = [