ref:main

release passed

Command: set -e apt-get update && apt-get install -y --no-install-recommends git jq curl git config --global --add safe.directory /workspace export MIX_HOME=/workspace/.mix # Only release from main branch # CI checks out a detached HEAD so git branch name is always "HEAD". # Compare the checked-out SHA against origin/main instead. git fetch origin main 2>/dev/null || true HEAD_SHA=$(git rev-parse HEAD) MAIN_SHA=$(git rev-parse origin/main 2>/dev/null || echo "") if [ "$HEAD_SHA" != "$MAIN_SHA" ]; then echo "Skipping release: HEAD ($HEAD_SHA) != origin/main ($MAIN_SHA)" exit 0 fi # Install anvil CLI. /runner/download serves the unified # anvil/anvil-runner binary (fangorn/anvil#49 merged the two). curl -sL "https://anvil.fangorn.io/runner/download?os=$(uname -s)&arch=$(uname -m)" -o /usr/local/bin/anvil chmod +x /usr/local/bin/anvil # Credentials are auto-injected by the runner: ANVIL_TOKEN is a # per-job API token generated at dispatch and auto-revoked when # this job finishes, and ANVIL_SERVER_URL points at the server # that dispatched us. Both are part of the job environment; we # don't need to set up any secrets manually. # # The scopes granted to that token are controlled by org/repo # CI-permission settings — for this repo's release step to work, # an admin must grant `releases: write` via: # PUT /api/v1/fangorn/ex_git_objectstore/ci/permissions # See fangorn/anvil#46 for the full design. # # `anvil auth status` fails loud if the runner didn't inject the # token, if it's malformed, or if the server rejects it — which # is exactly what we want before `anvil release create` tries to # use it downstream. /usr/local/bin/anvil auth status # Compute CalVer version VERSION=$(bash ci/release.sh) echo "Releasing version: $VERSION" # Idempotency: skip if this version tag already exists if git rev-parse "$VERSION" >/dev/null 2>&1; then echo "Tag $VERSION already exists, skipping release" exit 0 fi # Build with version export VERSION mix compile # Generate changelog from commits since last tag LAST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || git rev-list --max-parents=0 HEAD) CHANGELOG=$(git log --oneline "$LAST_TAG"..HEAD) # Generate docs mix docs tar czf ex_git_objectstore-${VERSION}-docs.tar.gz doc/ # Create Anvil release anvil release create \ --tag "$VERSION" \ --title "ExGitObjectstore $VERSION" \ --body "$CHANGELOG" # Tag and push. The runner clones via an auto-embedded clone # token in origin, which only has read access — `git push origin` # would 401. Push via an explicit URL that embeds the job API # token (ANVIL_TOKEN) so auth goes through the repo's # contents:write scope (see fangorn/anvil#46 / #59). git tag "$VERSION" git push \ "https://x-token:${ANVIL_TOKEN}@anvil.fangorn.io/fangorn/ex_git_objectstore.git" \ "$VERSION" echo "Released $VERSION"
Runner: carl online linux/arm64
Started: Apr 18, 2026 at 16:51 UTC Completed: Apr 18, 2026 at 16:51 UTC Duration: 24s
Exit code: 0

Build Output

Pulling image: hexpm/elixir:1.18.4-erlang-28.0.2-debian-bookworm-20250811
Get:1 http://deb.debian.org/debian bookworm InRelease [151 kB]
Get:2 http://deb.debian.org/debian bookworm-updates InRelease [55.4 kB]
Get:3 http://deb.debian.org/debian-security bookworm-security InRelease [48.0 kB]
Get:4 http://deb.debian.org/debian bookworm/main arm64 Packages [8691 kB]
Get:5 http://deb.debian.org/debian bookworm-updates/main arm64 Packages [6936 B]
Get:6 http://deb.debian.org/debian-security bookworm-security/main arm64 Packages [291 kB]
Fetched 9243 kB in 2s (4580 kB/s)
Reading package lists...
Reading package lists...
Building dependency tree...
Reading state information...
The following additional packages will be installed:
git-man libbrotli1 libcurl3-gnutls libcurl4 liberror-perl libexpat1
libgdbm-compat4 libgdbm6 libgssapi-krb5-2 libjq1 libk5crypto3 libkeyutils1
libkrb5-3 libkrb5support0 libldap-2.5-0 libnghttp2-14 libonig5 libperl5.36
libpsl5 librtmp1 libsasl2-2 libsasl2-modules-db libssh2-1 perl perl-base
perl-modules-5.36
Suggested packages:
gettext-base git-daemon-run | git-daemon-sysvinit git-doc git-email git-gui
gitk gitweb git-cvs git-mediawiki git-svn gdbm-l10n krb5-doc krb5-user
sensible-utils perl-doc libterm-readline-gnu-perl
| libterm-readline-perl-perl make libtap-harness-archive-perl
Recommended packages:
patch less ssh-client krb5-locales libldap-common publicsuffix
libsasl2-modules
The following NEW packages will be installed:
curl git git-man jq libbrotli1 libcurl3-gnutls libcurl4 liberror-perl
libexpat1 libgdbm-compat4 libgdbm6 libgssapi-krb5-2 libjq1 libk5crypto3
libkeyutils1 libkrb5-3 libkrb5support0 libldap-2.5-0 libnghttp2-14 libonig5
libperl5.36 libpsl5 librtmp1 libsasl2-2 libsasl2-modules-db libssh2-1 perl
perl-modules-5.36
The following packages will be upgraded:
perl-base
1 upgraded, 28 newly installed, 0 to remove and 24 not upgraded.
Need to get 20.8 MB of archives.
After this operation, 108 MB of additional disk space will be used.
Get:1 http://deb.debian.org/debian bookworm/main arm64 perl-base arm64 5.36.0-7+deb12u3 [1475 kB]
Get:2 http://deb.debian.org/debian bookworm/main arm64 perl-modules-5.36 all 5.36.0-7+deb12u3 [2815 kB]
Get:3 http://deb.debian.org/debian bookworm/main arm64 libgdbm6 arm64 1.23-3 [70.9 kB]
Get:4 http://deb.debian.org/debian bookworm/main arm64 libgdbm-compat4 arm64 1.23-3 [48.0 kB]
Get:5 http://deb.debian.org/debian bookworm/main arm64 libperl5.36 arm64 5.36.0-7+deb12u3 [4009 kB]
Get:6 http://deb.debian.org/debian bookworm/main arm64 perl arm64 5.36.0-7+deb12u3 [239 kB]
Get:7 http://deb.debian.org/debian bookworm/main arm64 libbrotli1 arm64 1.0.9-2+b6 [269 kB]
Get:8 http://deb.debian.org/debian bookworm/main arm64 libkrb5support0 arm64 1.20.1-2+deb12u4 [32.5 kB]
Get:9 http://deb.debian.org/debian bookworm/main arm64 libk5crypto3 arm64 1.20.1-2+deb12u4 [80.2 kB]
Get:10 http://deb.debian.org/debian bookworm/main arm64 libkeyutils1 arm64 1.6.3-2 [8844 B]
Get:11 http://deb.debian.org/debian bookworm/main arm64 libkrb5-3 arm64 1.20.1-2+deb12u4 [314 kB]
Get:12 http://deb.debian.org/debian bookworm/main arm64 libgssapi-krb5-2 arm64 1.20.1-2+deb12u4 [124 kB]
Get:13 http://deb.debian.org/debian bookworm/main arm64 libsasl2-modules-db arm64 2.1.28+dfsg-10 [20.8 kB]
Get:14 http://deb.debian.org/debian bookworm/main arm64 libsasl2-2 arm64 2.1.28+dfsg-10 [58.0 kB]
Get:15 http://deb.debian.org/debian bookworm/main arm64 libldap-2.5-0 arm64 2.5.13+dfsg-5 [171 kB]
Get:16 http://deb.debian.org/debian bookworm/main arm64 libnghttp2-14 arm64 1.52.0-1+deb12u2 [68.6 kB]
Get:17 http://deb.debian.org/debian bookworm/main arm64 libpsl5 arm64 0.21.2-1 [58.6 kB]
Get:18 http://deb.debian.org/debian bookworm/main arm64 librtmp1 arm64 2.4+20151223.gitfa8646d.1-2+b2 [59.4 kB]
Get:19 http://deb.debian.org/debian bookworm/main arm64 libssh2-1 arm64 1.10.0-3+b1 [172 kB]
Get:20 http://deb.debian.org/debian bookworm/main arm64 libcurl4 arm64 7.88.1-10+deb12u14 [367 kB]
Get:21 http://deb.debian.org/debian bookworm/main arm64 curl arm64 7.88.1-10+deb12u14 [309 kB]
Get:22 http://deb.debian.org/debian bookworm/main arm64 libcurl3-gnutls arm64 7.88.1-10+deb12u14 [362 kB]
Get:23 http://deb.debian.org/debian bookworm/main arm64 libexpat1 arm64 2.5.0-1+deb12u2 [86.3 kB]
Get:24 http://deb.debian.org/debian bookworm/main arm64 liberror-perl all 0.17029-2 [29.0 kB]
Get:25 http://deb.debian.org/debian bookworm/main arm64 git-man all 1:2.39.5-0+deb12u3 [2053 kB]
Get:26 http://deb.debian.org/debian bookworm/main arm64 git arm64 1:2.39.5-0+deb12u3 [7153 kB]
Get:27 http://deb.debian.org/debian bookworm/main arm64 libonig5 arm64 6.9.8-1 [179 kB]
Get:28 http://deb.debian.org/debian bookworm/main arm64 libjq1 arm64 1.6-2.1+deb12u1 [120 kB]
Get:29 http://deb.debian.org/debian bookworm/main arm64 jq arm64 1.6-2.1+deb12u1 [63.3 kB]
debconf: delaying package configuration, since apt-utils is not installed
Fetched 20.8 MB in 3s (6678 kB/s)
(Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 6608 files and directories currently installed.)
Preparing to unpack .../perl-base_5.36.0-7+deb12u3_arm64.deb ...
Unpacking perl-base (5.36.0-7+deb12u3) over (5.36.0-7+deb12u2) ...
Setting up perl-base (5.36.0-7+deb12u3) ...
Selecting previously unselected package perl-modules-5.36.
(Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 6608 files and directories currently installed.)
Preparing to unpack .../00-perl-modules-5.36_5.36.0-7+deb12u3_all.deb ...
Unpacking perl-modules-5.36 (5.36.0-7+deb12u3) ...
Selecting previously unselected package libgdbm6:arm64.
Preparing to unpack .../01-libgdbm6_1.23-3_arm64.deb ...
Unpacking libgdbm6:arm64 (1.23-3) ...
Selecting previously unselected package libgdbm-compat4:arm64.
Preparing to unpack .../02-libgdbm-compat4_1.23-3_arm64.deb ...
Unpacking libgdbm-compat4:arm64 (1.23-3) ...
Selecting previously unselected package libperl5.36:arm64.
Preparing to unpack .../03-libperl5.36_5.36.0-7+deb12u3_arm64.deb ...
Unpacking libperl5.36:arm64 (5.36.0-7+deb12u3) ...
Selecting previously unselected package perl.
Preparing to unpack .../04-perl_5.36.0-7+deb12u3_arm64.deb ...
Unpacking perl (5.36.0-7+deb12u3) ...
Selecting previously unselected package libbrotli1:arm64.
Preparing to unpack .../05-libbrotli1_1.0.9-2+b6_arm64.deb ...
Unpacking libbrotli1:arm64 (1.0.9-2+b6) ...
Selecting previously unselected package libkrb5support0:arm64.
Preparing to unpack .../06-libkrb5support0_1.20.1-2+deb12u4_arm64.deb ...
Unpacking libkrb5support0:arm64 (1.20.1-2+deb12u4) ...
Selecting previously unselected package libk5crypto3:arm64.
Preparing to unpack .../07-libk5crypto3_1.20.1-2+deb12u4_arm64.deb ...
Unpacking libk5crypto3:arm64 (1.20.1-2+deb12u4) ...
Selecting previously unselected package libkeyutils1:arm64.
Preparing to unpack .../08-libkeyutils1_1.6.3-2_arm64.deb ...
Unpacking libkeyutils1:arm64 (1.6.3-2) ...
Selecting previously unselected package libkrb5-3:arm64.
Preparing to unpack .../09-libkrb5-3_1.20.1-2+deb12u4_arm64.deb ...
Unpacking libkrb5-3:arm64 (1.20.1-2+deb12u4) ...
Selecting previously unselected package libgssapi-krb5-2:arm64.
Preparing to unpack .../10-libgssapi-krb5-2_1.20.1-2+deb12u4_arm64.deb ...
Unpacking libgssapi-krb5-2:arm64 (1.20.1-2+deb12u4) ...
Selecting previously unselected package libsasl2-modules-db:arm64.
Preparing to unpack .../11-libsasl2-modules-db_2.1.28+dfsg-10_arm64.deb ...
Unpacking libsasl2-modules-db:arm64 (2.1.28+dfsg-10) ...
Selecting previously unselected package libsasl2-2:arm64.
Preparing to unpack .../12-libsasl2-2_2.1.28+dfsg-10_arm64.deb ...
Unpacking libsasl2-2:arm64 (2.1.28+dfsg-10) ...
Selecting previously unselected package libldap-2.5-0:arm64.
Preparing to unpack .../13-libldap-2.5-0_2.5.13+dfsg-5_arm64.deb ...
Unpacking libldap-2.5-0:arm64 (2.5.13+dfsg-5) ...
Selecting previously unselected package libnghttp2-14:arm64.
Preparing to unpack .../14-libnghttp2-14_1.52.0-1+deb12u2_arm64.deb ...
Unpacking libnghttp2-14:arm64 (1.52.0-1+deb12u2) ...
Selecting previously unselected package libpsl5:arm64.
Preparing to unpack .../15-libpsl5_0.21.2-1_arm64.deb ...
Unpacking libpsl5:arm64 (0.21.2-1) ...
Selecting previously unselected package librtmp1:arm64.
Preparing to unpack .../16-librtmp1_2.4+20151223.gitfa8646d.1-2+b2_arm64.deb ...
Unpacking librtmp1:arm64 (2.4+20151223.gitfa8646d.1-2+b2) ...
Selecting previously unselected package libssh2-1:arm64.
Preparing to unpack .../17-libssh2-1_1.10.0-3+b1_arm64.deb ...
Unpacking libssh2-1:arm64 (1.10.0-3+b1) ...
Selecting previously unselected package libcurl4:arm64.
Preparing to unpack .../18-libcurl4_7.88.1-10+deb12u14_arm64.deb ...
Unpacking libcurl4:arm64 (7.88.1-10+deb12u14) ...
Selecting previously unselected package curl.
Preparing to unpack .../19-curl_7.88.1-10+deb12u14_arm64.deb ...
Unpacking curl (7.88.1-10+deb12u14) ...
Selecting previously unselected package libcurl3-gnutls:arm64.
Preparing to unpack .../20-libcurl3-gnutls_7.88.1-10+deb12u14_arm64.deb ...
Unpacking libcurl3-gnutls:arm64 (7.88.1-10+deb12u14) ...
Selecting previously unselected package libexpat1:arm64.
Preparing to unpack .../21-libexpat1_2.5.0-1+deb12u2_arm64.deb ...
Unpacking libexpat1:arm64 (2.5.0-1+deb12u2) ...
Selecting previously unselected package liberror-perl.
Preparing to unpack .../22-liberror-perl_0.17029-2_all.deb ...
Unpacking liberror-perl (0.17029-2) ...
Selecting previously unselected package git-man.
Preparing to unpack .../23-git-man_1%3a2.39.5-0+deb12u3_all.deb ...
Unpacking git-man (1:2.39.5-0+deb12u3) ...
Selecting previously unselected package git.
Preparing to unpack .../24-git_1%3a2.39.5-0+deb12u3_arm64.deb ...
Unpacking git (1:2.39.5-0+deb12u3) ...
Selecting previously unselected package libonig5:arm64.
Preparing to unpack .../25-libonig5_6.9.8-1_arm64.deb ...
Unpacking libonig5:arm64 (6.9.8-1) ...
Selecting previously unselected package libjq1:arm64.
Preparing to unpack .../26-libjq1_1.6-2.1+deb12u1_arm64.deb ...
Unpacking libjq1:arm64 (1.6-2.1+deb12u1) ...
Selecting previously unselected package jq.
Preparing to unpack .../27-jq_1.6-2.1+deb12u1_arm64.deb ...
Unpacking jq (1.6-2.1+deb12u1) ...
Setting up libexpat1:arm64 (2.5.0-1+deb12u2) ...
Setting up libkeyutils1:arm64 (1.6.3-2) ...
Setting up libpsl5:arm64 (0.21.2-1) ...
Setting up libbrotli1:arm64 (1.0.9-2+b6) ...
Setting up libnghttp2-14:arm64 (1.52.0-1+deb12u2) ...
Setting up libkrb5support0:arm64 (1.20.1-2+deb12u4) ...
Setting up libsasl2-modules-db:arm64 (2.1.28+dfsg-10) ...
Setting up perl-modules-5.36 (5.36.0-7+deb12u3) ...
Setting up librtmp1:arm64 (2.4+20151223.gitfa8646d.1-2+b2) ...
Setting up libk5crypto3:arm64 (1.20.1-2+deb12u4) ...
Setting up libsasl2-2:arm64 (2.1.28+dfsg-10) ...
Setting up git-man (1:2.39.5-0+deb12u3) ...
Setting up libssh2-1:arm64 (1.10.0-3+b1) ...
Setting up libkrb5-3:arm64 (1.20.1-2+deb12u4) ...
Setting up libonig5:arm64 (6.9.8-1) ...
Setting up libgdbm6:arm64 (1.23-3) ...
Setting up libjq1:arm64 (1.6-2.1+deb12u1) ...
Setting up libldap-2.5-0:arm64 (2.5.13+dfsg-5) ...
Setting up libgssapi-krb5-2:arm64 (1.20.1-2+deb12u4) ...
Setting up libgdbm-compat4:arm64 (1.23-3) ...
Setting up jq (1.6-2.1+deb12u1) ...
Setting up libcurl4:arm64 (7.88.1-10+deb12u14) ...
Setting up curl (7.88.1-10+deb12u14) ...
Setting up libperl5.36:arm64 (5.36.0-7+deb12u3) ...
Setting up libcurl3-gnutls:arm64 (7.88.1-10+deb12u14) ...
Setting up perl (5.36.0-7+deb12u3) ...
Setting up liberror-perl (0.17029-2) ...
Setting up git (1:2.39.5-0+deb12u3) ...
Processing triggers for libc-bin (2.36-9+deb12u10) ...
Skipping release: HEAD (84c54b657d137a4f689fbb76dff3468123e07087) != origin/main (330a5b000540ce23b68c27d3bd2c3c87d0eab822)