From 886b1d00d2cbfd6165c6cea624afd88b0b94e6d4 Mon Sep 17 00:00:00 2001 From: Bendik Aagaard Lynghaug Date: Mon, 28 Sep 2026 11:12:42 +0200 Subject: [PATCH] ci: run enok in an ephemeral rust container, not on the kasse host Moves test.yml and release.yml off `runs-on: fish` (host) to an ephemeral rust:1-bookworm container on the podman runner: v4 built-in checkout (no Node), no host rustup, curl/jq installed in-container for the release upload. Keeps the bare host free of toolchain installs. Co-Authored-By: Claude Opus 4.8 --- .gitea/workflows/release.yml | 24 +++++++++--------------- .gitea/workflows/test.yml | 21 ++++++--------------- 2 files changed, 15 insertions(+), 30 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 53d3226..2b845a5 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -2,6 +2,8 @@ name: Release enok # Bygger enok og legger binærfilen ved utgivelsen, slik at byggeprosjektene kan hente den # og lage energirapporter uten å ha Rust installert. +# +# Kjører i en efemer rust-container på podman-runneren (kasse), ikke på verten. on: release: @@ -9,22 +11,12 @@ on: jobs: bygg: - runs-on: fish - defaults: - run: - shell: fish {0} + runs-on: ubuntu-latest + container: + image: docker.io/library/rust:1-bookworm steps: - name: Hent koden - uses: https://gitea.com/actions/checkout@v6 - - - name: Sørg for en Rust-verktøykjede - run: | - # Kjørebrukeren har rustup, men ingen standardkjede er satt. Uten dette svarer - # cargo med at den ikke vet hvilken versjon den skal bruke. - if not cargo --version >/dev/null 2>&1 - rustup default stable - end - cargo --version + uses: actions/checkout@v4 - name: Bygg run: cargo build --release --locked @@ -36,7 +28,9 @@ jobs: env: TOKEN: ${{ github.token }} run: | - set REL_ID (curl --silent --fail --header "Authorization: token $TOKEN" \ + # curl/jq finnes ikke i rust-avbildet; installeres i den efemere containeren. + apt-get update && apt-get install -y --no-install-recommends curl jq ca-certificates + REL_ID=$(curl --silent --fail --header "Authorization: token $TOKEN" \ "$GITHUB_SERVER_URL/api/v1/repos/$GITHUB_REPOSITORY/releases/tags/$GITHUB_REF_NAME" | jq -r '.id') curl --silent --show-error --fail --header "Authorization: token $TOKEN" \ --form "attachment=@target/release/enok" \ diff --git a/.gitea/workflows/test.yml b/.gitea/workflows/test.yml index 3734ad2..2738c94 100644 --- a/.gitea/workflows/test.yml +++ b/.gitea/workflows/test.yml @@ -7,23 +7,14 @@ on: jobs: test: - # Vertskjører på kasse, samme oppsett som de andre prosjektene. - runs-on: fish - defaults: - run: - shell: fish {0} + # Kjører i en efemer rust-container på podman-runneren (kasse) — ikke på verten. + # Ingen rustup/verktøykjede installeres på verten lenger; container-avbildet har alt. + runs-on: ubuntu-latest + container: + image: docker.io/library/rust:1-bookworm steps: - name: Hent koden - uses: https://gitea.com/actions/checkout@v6 - - - name: Sørg for en Rust-verktøykjede - run: | - # Kjørebrukeren har rustup, men ingen standardkjede er satt. Uten dette svarer - # cargo med at den ikke vet hvilken versjon den skal bruke. - if not cargo --version >/dev/null 2>&1 - rustup default stable - end - cargo --version + uses: actions/checkout@v4 - name: Formatering run: cargo fmt --check