From f3adf54f51e27c9915433708c0c5abcd08519096 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=B6rg=C3=A6sis?= Date: Fri, 20 Feb 2026 13:09:01 +0000 Subject: [PATCH 01/18] feat(ci): publish binaries for linux/amd64, linux/arm64, macos/amd64, macos/arm64 on release --- .github/workflows/release.yml | 107 +++++++++++++++++++++++++++++++--- 1 file changed, 98 insertions(+), 9 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f6cf8479f..edd514646 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -15,7 +15,73 @@ env: IMAGE: ghcr.io/spacedriveapp/spacebot jobs: - build: + build-binaries: + strategy: + matrix: + include: + - target: x86_64-unknown-linux-gnu + runner: ubuntu-24.04 + archive: tar.gz + - target: aarch64-unknown-linux-gnu + runner: ubuntu-24.04 + archive: tar.gz + - target: x86_64-apple-darwin + runner: macos-14 + archive: tar.gz + - target: aarch64-apple-darwin + runner: macos-14 + archive: tar.gz + runs-on: ${{ matrix.runner }} + permissions: + contents: write + outputs: + version: ${{ steps.version.outputs.version }} + + steps: + - uses: actions/checkout@v4 + + - name: Install Rust + uses: dtolnay/rust-toolchain@stable + with: + targets: ${{ matrix.target }} + + - name: Install cross-compilation tools (Linux ARM64) + if: matrix.target == 'aarch64-unknown-linux-gnu' + run: | + sudo apt-get update + sudo apt-get install -y gcc-aarch64-linux-gnu + echo "CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc" >> $GITHUB_ENV + + - name: Determine version tag + id: version + run: | + if [ -n "${{ github.event.inputs.tag }}" ]; then + VERSION="${{ github.event.inputs.tag }}" + elif [[ "$GITHUB_REF" == refs/tags/v* ]]; then + VERSION="${GITHUB_REF#refs/tags/}" + else + VERSION="dev-$(echo $GITHUB_SHA | head -c 7)" + fi + echo "version=$VERSION" >> "$GITHUB_OUTPUT" + + - name: Build binary + run: cargo build --release --target ${{ matrix.target }} + + - name: Package binary (Linux/macOS) + run: | + cd target/${{ matrix.target }}/release + mkdir -p spacebot-${{ steps.version.outputs.version }}-${{ matrix.target }} + cp spacebot spacebot-${{ steps.version.outputs.version }}-${{ matrix.target }}/ + tar -czvf ../../../spacebot-${{ steps.version.outputs.version }}-${{ matrix.target }}.${{ matrix.archive }} spacebot-${{ steps.version.outputs.version }}-${{ matrix.target }} + + - name: Upload binary artifact + uses: actions/upload-artifact@v4 + with: + name: spacebot-${{ matrix.target }} + path: spacebot-${{ steps.version.outputs.version }}-${{ matrix.target }}.${{ matrix.archive }} + retention-days: 1 + + build-docker: strategy: matrix: include: @@ -81,8 +147,8 @@ jobs: cache-from: type=gha,scope=full-${{ steps.platform.outputs.pair }} cache-to: type=gha,mode=max,scope=full-${{ steps.platform.outputs.pair }} - merge: - needs: build + merge-docker: + needs: build-docker runs-on: ubuntu-24.04 permissions: contents: write @@ -102,7 +168,7 @@ jobs: - name: Create slim multi-arch manifest run: | docker buildx imagetools create \ - --tag ${{ env.IMAGE }}:${{ needs.build.outputs.version }}-slim \ + --tag ${{ env.IMAGE }}:${{ needs.build-docker.outputs.version }}-slim \ --tag ${{ env.IMAGE }}:slim \ ${{ env.IMAGE }}:slim-linux-amd64 \ ${{ env.IMAGE }}:slim-linux-arm64 @@ -110,7 +176,7 @@ jobs: - name: Create full multi-arch manifest run: | docker buildx imagetools create \ - --tag ${{ env.IMAGE }}:${{ needs.build.outputs.version }}-full \ + --tag ${{ env.IMAGE }}:${{ needs.build-docker.outputs.version }}-full \ --tag ${{ env.IMAGE }}:full \ --tag ${{ env.IMAGE }}:latest \ ${{ env.IMAGE }}:full-linux-amd64 \ @@ -126,7 +192,7 @@ jobs: - name: Push to Fly registry run: | docker buildx imagetools create \ - --tag registry.fly.io/spacebot-image:${{ needs.build.outputs.version }} \ + --tag registry.fly.io/spacebot-image:${{ needs.build-docker.outputs.version }} \ --tag registry.fly.io/spacebot-image:latest \ ${{ env.IMAGE }}:latest @@ -136,11 +202,34 @@ jobs: curl -sf -X POST https://api.spacebot.sh/api/admin/rollout \ -H "Content-Type: application/json" \ -H "X-Internal-Key: ${{ secrets.PLATFORM_INTERNAL_KEY }}" \ - -d '{"image_tag": "${{ needs.build.outputs.version }}"}' + -d '{"image_tag": "${{ needs.build-docker.outputs.version }}"}' + + create-release: + needs: [build-binaries, merge-docker] + if: startsWith(github.ref, 'refs/tags/v') + runs-on: ubuntu-24.04 + permissions: + contents: write + + steps: + - uses: actions/checkout@v4 + + - name: Download all binary artifacts + uses: actions/download-artifact@v4 + with: + path: binaries + pattern: spacebot-* + merge-multiple: false + + - name: Flatten artifacts + run: | + mkdir -p release-assets + find binaries -name "*.tar.gz" -exec cp {} release-assets/ \; + ls -la release-assets/ - name: Create GitHub Release - if: startsWith(github.ref, 'refs/tags/v') uses: softprops/action-gh-release@v2 with: - tag_name: ${{ needs.build.outputs.version }} + tag_name: ${{ needs.build-binaries.outputs.version }} generate_release_notes: true + files: release-assets/* From b777287116eb7066f4502feeff5739eeb7499145 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=B6rg=C3=A6sis?= Date: Fri, 20 Feb 2026 14:48:20 +0000 Subject: [PATCH 02/18] fix(ci): use native ARM64 runner for linux/arm64 binary build --- .github/workflows/release.yml | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index edd514646..e33a5a020 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -23,7 +23,7 @@ jobs: runner: ubuntu-24.04 archive: tar.gz - target: aarch64-unknown-linux-gnu - runner: ubuntu-24.04 + runner: ubuntu-24.04-arm archive: tar.gz - target: x86_64-apple-darwin runner: macos-14 @@ -45,13 +45,6 @@ jobs: with: targets: ${{ matrix.target }} - - name: Install cross-compilation tools (Linux ARM64) - if: matrix.target == 'aarch64-unknown-linux-gnu' - run: | - sudo apt-get update - sudo apt-get install -y gcc-aarch64-linux-gnu - echo "CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc" >> $GITHUB_ENV - - name: Determine version tag id: version run: | From 654b8ad2bf5ef323a9743bd9e12deae011ac42a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=B6rg=C3=A6sis?= Date: Fri, 20 Feb 2026 15:24:38 +0000 Subject: [PATCH 03/18] fix(ci): create release independent of docker job success --- .github/workflows/release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e33a5a020..282348983 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -198,8 +198,8 @@ jobs: -d '{"image_tag": "${{ needs.build-docker.outputs.version }}"}' create-release: - needs: [build-binaries, merge-docker] - if: startsWith(github.ref, 'refs/tags/v') + needs: build-binaries + if: always() && startsWith(github.ref, 'refs/tags/v') && needs.build-binaries.result == 'success' runs-on: ubuntu-24.04 permissions: contents: write From 71fc058fbd5f7e23265bafdec83010e30a38b264 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=B6rg=C3=A6sis?= Date: Fri, 20 Feb 2026 16:56:27 +0000 Subject: [PATCH 04/18] chore: bump version to 0.1.13 --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index fbd05795a..c6d12da6e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "spacebot" -version = "0.1.12" +version = "0.1.13" edition = "2024" default-run = "spacebot" From 18c01217f6c1f21352e7bb35f3414c8d53dd2632 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=B6rg=C3=A6sis?= Date: Fri, 20 Feb 2026 17:22:28 +0000 Subject: [PATCH 05/18] fix(ci): install protoc for Linux builds --- .github/workflows/release.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 282348983..77443eb24 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -45,6 +45,10 @@ jobs: with: targets: ${{ matrix.target }} + - name: Install protoc (Linux) + if: runner.os == 'Linux' + run: sudo apt-get update && sudo apt-get install -y protobuf-compiler + - name: Determine version tag id: version run: | From d9208bc97ebb48341818502b58c40fb7f29742ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=B6rg=C3=A6sis?= Date: Fri, 20 Feb 2026 17:23:42 +0000 Subject: [PATCH 06/18] chore: bump version to 0.1.14 --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index c6d12da6e..fd59c6c1c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "spacebot" -version = "0.1.13" +version = "0.1.14" edition = "2024" default-run = "spacebot" From 35ec24ac69844723be2bb178bfb3f02f605838db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=B6rg=C3=A6sis?= Date: Fri, 20 Feb 2026 17:48:40 +0000 Subject: [PATCH 07/18] fix(ci): install protoc for macOS builds --- .github/workflows/release.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 77443eb24..653540199 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -49,6 +49,10 @@ jobs: if: runner.os == 'Linux' run: sudo apt-get update && sudo apt-get install -y protobuf-compiler + - name: Install protoc (macOS) + if: runner.os == 'macOS' + run: brew install protobuf + - name: Determine version tag id: version run: | From 07b141e7555989e0f9d60c7f16e9f3a41e452b23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=B6rg=C3=A6sis?= Date: Fri, 20 Feb 2026 17:49:19 +0000 Subject: [PATCH 08/18] chore: bump version to 0.1.15 --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index fd59c6c1c..31e642d65 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "spacebot" -version = "0.1.14" +version = "0.1.15" edition = "2024" default-run = "spacebot" From 5e0f2a6e90a003cf574cfa57cf3c5777a0249478 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=B6rg=C3=A6sis?= Date: Fri, 20 Feb 2026 18:50:28 +0000 Subject: [PATCH 09/18] fix(ci): create release even if some builds fail --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 653540199..782e70da7 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -207,7 +207,7 @@ jobs: create-release: needs: build-binaries - if: always() && startsWith(github.ref, 'refs/tags/v') && needs.build-binaries.result == 'success' + if: always() && startsWith(github.ref, 'refs/tags/v') runs-on: ubuntu-24.04 permissions: contents: write From 26972a60407f8dd63b0b8ec59b097f1a8689fcb6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=B6rg=C3=A6sis?= Date: Fri, 20 Feb 2026 18:51:59 +0000 Subject: [PATCH 10/18] chore: bump version to 0.1.16 --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 31e642d65..740d3e3a6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "spacebot" -version = "0.1.15" +version = "0.1.16" edition = "2024" default-run = "spacebot" From 880c8feeae3edc8f4c50b5a6fd03ac811364f5fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=B6rg=C3=A6sis?= Date: Fri, 20 Feb 2026 20:19:25 +0000 Subject: [PATCH 11/18] fix(ci): use dynamic registry path with github.repository_owner for fork support --- .github/workflows/release.yml | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 782e70da7..74e289c28 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -12,7 +12,7 @@ on: env: REGISTRY: ghcr.io - IMAGE: ghcr.io/spacedriveapp/spacebot + IMAGE_NAME: spacebot jobs: build-binaries: @@ -133,7 +133,7 @@ jobs: target: slim platforms: ${{ matrix.platform }} push: true - tags: ${{ env.IMAGE }}:slim-${{ steps.platform.outputs.pair }} + tags: ${{ env.REGISTRY }}/${{ github.repository_owner }}/${{ env.IMAGE_NAME }}:slim-${{ steps.platform.outputs.pair }} cache-from: type=gha,scope=slim-${{ steps.platform.outputs.pair }} cache-to: type=gha,mode=max,scope=slim-${{ steps.platform.outputs.pair }} @@ -144,7 +144,7 @@ jobs: target: full platforms: ${{ matrix.platform }} push: true - tags: ${{ env.IMAGE }}:full-${{ steps.platform.outputs.pair }} + tags: ${{ env.REGISTRY }}/${{ github.repository_owner }}/${{ env.IMAGE_NAME }}:full-${{ steps.platform.outputs.pair }} cache-from: type=gha,scope=full-${{ steps.platform.outputs.pair }} cache-to: type=gha,mode=max,scope=full-${{ steps.platform.outputs.pair }} @@ -169,21 +169,22 @@ jobs: - name: Create slim multi-arch manifest run: | docker buildx imagetools create \ - --tag ${{ env.IMAGE }}:${{ needs.build-docker.outputs.version }}-slim \ - --tag ${{ env.IMAGE }}:slim \ - ${{ env.IMAGE }}:slim-linux-amd64 \ - ${{ env.IMAGE }}:slim-linux-arm64 + --tag ${{ env.REGISTRY }}/${{ github.repository_owner }}/${{ env.IMAGE_NAME }}:${{ needs.build-docker.outputs.version }}-slim \ + --tag ${{ env.REGISTRY }}/${{ github.repository_owner }}/${{ env.IMAGE_NAME }}:slim \ + ${{ env.REGISTRY }}/${{ github.repository_owner }}/${{ env.IMAGE_NAME }}:slim-linux-amd64 \ + ${{ env.REGISTRY }}/${{ github.repository_owner }}/${{ env.IMAGE_NAME }}:slim-linux-arm64 - name: Create full multi-arch manifest run: | docker buildx imagetools create \ - --tag ${{ env.IMAGE }}:${{ needs.build-docker.outputs.version }}-full \ - --tag ${{ env.IMAGE }}:full \ - --tag ${{ env.IMAGE }}:latest \ - ${{ env.IMAGE }}:full-linux-amd64 \ - ${{ env.IMAGE }}:full-linux-arm64 + --tag ${{ env.REGISTRY }}/${{ github.repository_owner }}/${{ env.IMAGE_NAME }}:${{ needs.build-docker.outputs.version }}-full \ + --tag ${{ env.REGISTRY }}/${{ github.repository_owner }}/${{ env.IMAGE_NAME }}:full \ + --tag ${{ env.REGISTRY }}/${{ github.repository_owner }}/${{ env.IMAGE_NAME }}:latest \ + ${{ env.REGISTRY }}/${{ github.repository_owner }}/${{ env.IMAGE_NAME }}:full-linux-amd64 \ + ${{ env.REGISTRY }}/${{ github.repository_owner }}/${{ env.IMAGE_NAME }}:full-linux-arm64 - name: Log in to Fly registry + if: github.repository_owner == 'spacedriveapp' uses: docker/login-action@v3 with: registry: registry.fly.io @@ -191,14 +192,15 @@ jobs: password: ${{ secrets.FLY_API_TOKEN }} - name: Push to Fly registry + if: github.repository_owner == 'spacedriveapp' run: | docker buildx imagetools create \ --tag registry.fly.io/spacebot-image:${{ needs.build-docker.outputs.version }} \ --tag registry.fly.io/spacebot-image:latest \ - ${{ env.IMAGE }}:latest + ${{ env.REGISTRY }}/${{ github.repository_owner }}/${{ env.IMAGE_NAME }}:latest - name: Roll out to hosted instances - if: success() + if: github.repository_owner == 'spacedriveapp' run: | curl -sf -X POST https://api.spacebot.sh/api/admin/rollout \ -H "Content-Type: application/json" \ From 2a55abdc530aa7db243186051761f89bb1ba558f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=B6rg=C3=A6sis?= Date: Fri, 20 Feb 2026 20:20:09 +0000 Subject: [PATCH 12/18] chore: bump version to 0.1.17 --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 740d3e3a6..c0ccd0bff 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "spacebot" -version = "0.1.16" +version = "0.1.17" edition = "2024" default-run = "spacebot" From e6119b829dc68f15b8a3ac93493b27d6b20284c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=B6rg=C3=A6sis?= Date: Fri, 20 Feb 2026 21:15:47 +0000 Subject: [PATCH 13/18] fix(ci): remove macOS builds (not in upstream) --- .github/workflows/release.yml | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 74e289c28..41860fd85 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -25,12 +25,6 @@ jobs: - target: aarch64-unknown-linux-gnu runner: ubuntu-24.04-arm archive: tar.gz - - target: x86_64-apple-darwin - runner: macos-14 - archive: tar.gz - - target: aarch64-apple-darwin - runner: macos-14 - archive: tar.gz runs-on: ${{ matrix.runner }} permissions: contents: write @@ -45,14 +39,9 @@ jobs: with: targets: ${{ matrix.target }} - - name: Install protoc (Linux) - if: runner.os == 'Linux' + - name: Install protoc run: sudo apt-get update && sudo apt-get install -y protobuf-compiler - - name: Install protoc (macOS) - if: runner.os == 'macOS' - run: brew install protobuf - - name: Determine version tag id: version run: | @@ -68,7 +57,7 @@ jobs: - name: Build binary run: cargo build --release --target ${{ matrix.target }} - - name: Package binary (Linux/macOS) + - name: Package binary run: | cd target/${{ matrix.target }}/release mkdir -p spacebot-${{ steps.version.outputs.version }}-${{ matrix.target }} From c317ac209580ed12872aeca4b6f3085b8f3d3928 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=B6rg=C3=A6sis?= Date: Fri, 20 Feb 2026 21:16:27 +0000 Subject: [PATCH 14/18] chore: bump version to 0.1.18 --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index c0ccd0bff..61a31519b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "spacebot" -version = "0.1.17" +version = "0.1.18" edition = "2024" default-run = "spacebot" From a44574a5183929f8a2cfc027706a09e84cb16e6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=B6rg=C3=A6sis?= Date: Sat, 21 Feb 2026 02:47:07 +0000 Subject: [PATCH 15/18] refactor(ci): use dynamic IMAGE env var for cleaner fork support --- .github/workflows/release.yml | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 41860fd85..7d025ea1f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -12,7 +12,7 @@ on: env: REGISTRY: ghcr.io - IMAGE_NAME: spacebot + IMAGE: ghcr.io/${{ github.repository_owner }}/spacebot jobs: build-binaries: @@ -122,7 +122,7 @@ jobs: target: slim platforms: ${{ matrix.platform }} push: true - tags: ${{ env.REGISTRY }}/${{ github.repository_owner }}/${{ env.IMAGE_NAME }}:slim-${{ steps.platform.outputs.pair }} + tags: ${{ env.IMAGE }}:slim-${{ steps.platform.outputs.pair }} cache-from: type=gha,scope=slim-${{ steps.platform.outputs.pair }} cache-to: type=gha,mode=max,scope=slim-${{ steps.platform.outputs.pair }} @@ -133,7 +133,7 @@ jobs: target: full platforms: ${{ matrix.platform }} push: true - tags: ${{ env.REGISTRY }}/${{ github.repository_owner }}/${{ env.IMAGE_NAME }}:full-${{ steps.platform.outputs.pair }} + tags: ${{ env.IMAGE }}:full-${{ steps.platform.outputs.pair }} cache-from: type=gha,scope=full-${{ steps.platform.outputs.pair }} cache-to: type=gha,mode=max,scope=full-${{ steps.platform.outputs.pair }} @@ -158,19 +158,19 @@ jobs: - name: Create slim multi-arch manifest run: | docker buildx imagetools create \ - --tag ${{ env.REGISTRY }}/${{ github.repository_owner }}/${{ env.IMAGE_NAME }}:${{ needs.build-docker.outputs.version }}-slim \ - --tag ${{ env.REGISTRY }}/${{ github.repository_owner }}/${{ env.IMAGE_NAME }}:slim \ - ${{ env.REGISTRY }}/${{ github.repository_owner }}/${{ env.IMAGE_NAME }}:slim-linux-amd64 \ - ${{ env.REGISTRY }}/${{ github.repository_owner }}/${{ env.IMAGE_NAME }}:slim-linux-arm64 + --tag ${{ env.IMAGE }}:${{ needs.build-docker.outputs.version }}-slim \ + --tag ${{ env.IMAGE }}:slim \ + ${{ env.IMAGE }}:slim-linux-amd64 \ + ${{ env.IMAGE }}:slim-linux-arm64 - name: Create full multi-arch manifest run: | docker buildx imagetools create \ - --tag ${{ env.REGISTRY }}/${{ github.repository_owner }}/${{ env.IMAGE_NAME }}:${{ needs.build-docker.outputs.version }}-full \ - --tag ${{ env.REGISTRY }}/${{ github.repository_owner }}/${{ env.IMAGE_NAME }}:full \ - --tag ${{ env.REGISTRY }}/${{ github.repository_owner }}/${{ env.IMAGE_NAME }}:latest \ - ${{ env.REGISTRY }}/${{ github.repository_owner }}/${{ env.IMAGE_NAME }}:full-linux-amd64 \ - ${{ env.REGISTRY }}/${{ github.repository_owner }}/${{ env.IMAGE_NAME }}:full-linux-arm64 + --tag ${{ env.IMAGE }}:${{ needs.build-docker.outputs.version }}-full \ + --tag ${{ env.IMAGE }}:full \ + --tag ${{ env.IMAGE }}:latest \ + ${{ env.IMAGE }}:full-linux-amd64 \ + ${{ env.IMAGE }}:full-linux-arm64 - name: Log in to Fly registry if: github.repository_owner == 'spacedriveapp' @@ -186,7 +186,7 @@ jobs: docker buildx imagetools create \ --tag registry.fly.io/spacebot-image:${{ needs.build-docker.outputs.version }} \ --tag registry.fly.io/spacebot-image:latest \ - ${{ env.REGISTRY }}/${{ github.repository_owner }}/${{ env.IMAGE_NAME }}:latest + ${{ env.IMAGE }}:latest - name: Roll out to hosted instances if: github.repository_owner == 'spacedriveapp' From d544f68c811d25d8da0eaaaa7df8ef0f761b83ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=B6rg=C3=A6sis?= Date: Sat, 21 Feb 2026 02:51:48 +0000 Subject: [PATCH 16/18] chore: align version to 0.1.13 for upstream compatibility --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 61a31519b..c6d12da6e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "spacebot" -version = "0.1.18" +version = "0.1.13" edition = "2024" default-run = "spacebot" From 8752dfe2e08dd8352c076db814c162c8303f53b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=B6rg=C3=A6sis?= Date: Sat, 21 Feb 2026 02:56:01 +0000 Subject: [PATCH 17/18] chore: bump version to 0.1.19 --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index c6d12da6e..5068aa355 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "spacebot" -version = "0.1.13" +version = "0.1.19" edition = "2024" default-run = "spacebot" From 5a65c0d60fc3b5773a739322c4e47f75210cb7e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=B6rg=C3=A6sis?= Date: Sat, 21 Feb 2026 16:17:12 +0000 Subject: [PATCH 18/18] fix(ci): fail loudly on binary build failures, remove Cargo.toml changes --- .github/workflows/release.yml | 2 +- Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7d025ea1f..36074836e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -198,7 +198,7 @@ jobs: create-release: needs: build-binaries - if: always() && startsWith(github.ref, 'refs/tags/v') + if: startsWith(github.ref, 'refs/tags/v') runs-on: ubuntu-24.04 permissions: contents: write diff --git a/Cargo.toml b/Cargo.toml index 5068aa355..fbd05795a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "spacebot" -version = "0.1.19" +version = "0.1.12" edition = "2024" default-run = "spacebot"