From 1f077d3cdb898fd339d9491345d6ef26c47059d7 Mon Sep 17 00:00:00 2001 From: Nikolay Govorov Date: Fri, 21 Aug 2026 03:34:20 +0100 Subject: Use packages publish script from shared infra --- .github/workflows/build.yml | 66 +++++++++++-------------------------- Cargo.lock | 10 +++--- README.md | 12 +++---- mise.lock | 28 ---------------- mise.toml | 8 +++-- 5 files changed, 35 insertions(+), 89 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1ed155a..c1ff37a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -125,6 +125,9 @@ jobs: name: Publish nightly build runs-on: ubuntu-latest needs: [build, smoke] + concurrency: + group: package-publish-recluse-nightly + cancel-in-progress: false if: github.ref == 'refs/heads/main' permissions: contents: write @@ -145,17 +148,6 @@ jobs: path: dist merge-multiple: true - # Configure GPG keys - - name: Import GPG key - uses: crazy-max/ghaction-import-gpg@e89d40939c28e39f97cf32126055eeae86ba74ec #v6.3.0 - with: - passphrase: ${{ secrets.GPG_PASSPHRASE }} - gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }} - - name: Export GPG public key - run: printf '%s' "$GPG_PUBLIC_KEY" > dist/public.gpg - env: - GPG_PUBLIC_KEY: ${{ secrets.GPG_PUBLIC_KEY }} - # Update Github Release - name: Update 'nightly' tag run: | @@ -184,40 +176,20 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # Update APT/RPM repos on s3 - - name: Create APT repository - run: | - aptly repo create -distribution="${{ env.RELEASE_TAG }}" -component=main recluse - aptly repo add recluse dist/*.deb - aptly publish repo -architectures=amd64,arm64 -gpg-key="${{vars.GPG_KEY_ID}}" recluse - - name: Create RPM repository - run: | - mkdir -p rpm-repo - cp dist/*.rpm rpm-repo/ - - cat > rpm-repo/recluse-nightly.repo << EOF - [recluse-nightly] - name=Recluse Nightly - gpgkey=${{github.server_url}}/${{github.repository}}/releases/download/${{env.RELEASE_TAG}}/public.gpg - baseurl=https://${{vars.S3_BUCKET}}.${{vars.S3_ENDPOINT}}/rpm/ - enabled=1 - gpgcheck=1 - EOF - - createrepo_c rpm-repo/ - gpg --default-key="${{vars.GPG_KEY_ID}}" --detach-sign --armor rpm-repo/repodata/repomd.xml - - name: Upload RPM to S3 + - name: Publish package repositories run: | - mkdir -p ~/.config/rclone - cat > ~/.config/rclone/rclone.conf << EOF - [hetzner] - type = s3 - provider = Other - acl = public-read - endpoint = ${{vars.S3_ENDPOINT}} - access_key_id = ${{secrets.S3_ACCESS_KEY_ID}} - secret_access_key = ${{secrets.S3_SECRET_ACCESS_KEY}} - EOF - - rclone sync rpm-repo/ "hetzner:${{vars.S3_BUCKET}}/rpm/" --progress - rclone sync ~/.aptly/public/ "hetzner:${{vars.S3_BUCKET}}/apt/" --progress + mise run publish -- \ + --service recluse \ + --channel nightly \ + --input dist \ + deb rpm + env: + GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }} + GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} + GPG_KEY_ID: ${{ vars.GPG_KEY_ID }} + PACKAGE_KEY_VERSION: ${{ vars.PACKAGE_KEY_VERSION }} + S3_BUCKET: ${{ vars.S3_BUCKET }} + S3_ENDPOINT: ${{ vars.S3_ENDPOINT }} + S3_PUBLIC_URL: ${{ vars.S3_PUBLIC_URL }} + S3_ACCESS_KEY_ID: ${{ secrets.S3_ACCESS_KEY_ID }} + S3_SECRET_ACCESS_KEY: ${{ secrets.S3_SECRET_ACCESS_KEY }} diff --git a/Cargo.lock b/Cargo.lock index d178bd3..2dda4d8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -547,7 +547,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.61.2", + "windows-sys 0.52.0", ] [[package]] @@ -835,9 +835,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.4.13" +version = "0.4.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f44da3a8150a6703ed5d34e164b875fd14c2cdab9af1252a9a1020bde2bdc54" +checksum = "a9f37a958b41b3b19ee2707c06439c0e9e547e847223eb791ecb0cb821c65e27" dependencies = [ "atomic-waker", "bytes", @@ -2223,7 +2223,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys", - "windows-sys 0.61.2", + "windows-sys 0.52.0", ] [[package]] @@ -2849,7 +2849,7 @@ dependencies = [ "getrandom 0.4.2", "once_cell", "rustix", - "windows-sys 0.61.2", + "windows-sys 0.52.0", ] [[package]] diff --git a/README.md b/README.md index 2fbc62c..fa4cfee 100644 --- a/README.md +++ b/README.md @@ -13,8 +13,8 @@ is **not** intended for production use. ```bash sudo apt install curl gnupg -curl -fsSL https://github.com/dimidiumlabs/recluse/releases/download/nightly/public.gpg | sudo gpg --dearmor -o /usr/share/keyrings/recluse.gpg -echo "deb [signed-by=/usr/share/keyrings/recluse.gpg] https://dimidiumlabs.fsn1.your-objectstorage.com/apt/ nightly main" | sudo tee /etc/apt/sources.list.d/recluse.list +curl -fsSL https://pkg.dimidiumlabs.io/packages.gpg | sudo gpg --dearmor -o /usr/share/keyrings/dimidiumlabs.gpg +echo "deb [signed-by=/usr/share/keyrings/dimidiumlabs.gpg] https://pkg.dimidiumlabs.io/recluse/apt/ nightly main" | sudo tee /etc/apt/sources.list.d/recluse.list sudo apt update && sudo apt install recluse sudo systemctl enable --now recluse @@ -24,10 +24,10 @@ sudo systemctl enable --now recluse ```bash # DNF5 (Fedora 41+, RHEL 10+) -sudo dnf config-manager addrepo --from-repofile=https://dimidiumlabs.fsn1.your-objectstorage.com/rpm/recluse-nightly.repo +sudo dnf config-manager addrepo --from-repofile=https://pkg.dimidiumlabs.io/recluse/rpm/nightly/recluse-nightly.repo # DNF4 (Fedora 40 and older, RHEL 8/9) -sudo curl -o /etc/yum.repos.d/recluse-nightly.repo https://dimidiumlabs.fsn1.your-objectstorage.com/rpm/recluse-nightly.repo +sudo curl -o /etc/yum.repos.d/recluse-nightly.repo https://pkg.dimidiumlabs.io/recluse/rpm/nightly/recluse-nightly.repo sudo dnf install recluse sudo systemctl enable --now recluse @@ -36,8 +36,8 @@ sudo systemctl enable --now recluse **openSUSE:** ```bash -sudo rpm --import https://github.com/dimidiumlabs/recluse/releases/download/nightly/public.gpg -sudo zypper addrepo https://dimidiumlabs.fsn1.your-objectstorage.com/rpm/ recluse-nightly +sudo rpm --import https://pkg.dimidiumlabs.io/packages.gpg +sudo zypper addrepo https://pkg.dimidiumlabs.io/recluse/rpm/nightly/ recluse-nightly sudo zypper refresh sudo zypper install recluse diff --git a/mise.lock b/mise.lock index 1327083..4a2058b 100644 --- a/mise.lock +++ b/mise.lock @@ -1,19 +1,5 @@ # @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" @@ -60,20 +46,6 @@ 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.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" diff --git a/mise.toml b/mise.toml index e5ac914..b3899cb 100644 --- a/mise.toml +++ b/mise.toml @@ -7,11 +7,9 @@ min_version = "2026.7.5" 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" -rclone = "1.74.4" rust = { version = "1.97.1", profile = "minimal", components = [ "clippy", "llvm-tools-preview", @@ -20,11 +18,14 @@ rust = { version = "1.97.1", profile = "minimal", components = [ [bootstrap.packages] # APT +"apt:apt-utils" = "latest" "apt:build-essential" = "latest" +"apt:debsigs" = "latest" "apt:createrepo-c" = "latest" "apt:gnupg" = "latest" "apt:libssl-dev" = "latest" "apt:pkg-config" = "latest" +"apt:rpm" = "latest" # DNF "dnf:createrepo_c" = "latest" @@ -32,9 +33,10 @@ rust = { version = "1.97.1", profile = "minimal", components = [ "dnf:gnupg2" = "latest" "dnf:openssl-devel" = "latest" "dnf:pkgconf-pkg-config" = "latest" +"dnf:rpm" = "latest" [task_config] dir = "{{cwd}}" includes = [ - "git::https://github.com/dimidiumlabs/infra.git//tasks?ref=9e7330a3e5bde39a87e0ac1b76c9e85db7a6d64a", + "git::https://github.com/dimidiumlabs/infra.git//tasks?ref=4a4589fdb968686a7c91b380ff369aba23bd8662", ] -- Gilti