From 4e80493e4a1dd94de53d991493812ab99ef123fe Mon Sep 17 00:00:00 2001 From: Simon Cruanes Date: Mon, 6 Apr 2026 11:59:28 -0400 Subject: [PATCH] run gha as root in docker using the opam user wouldn't work for actions like checkout --- .github/workflows/format.yml | 8 ++++++-- .github/workflows/gh-pages.yml | 12 ++++++++---- .github/workflows/main.yml | 14 +++++++++----- 3 files changed, 23 insertions(+), 11 deletions(-) diff --git a/.github/workflows/format.yml b/.github/workflows/format.yml index ce9645a2..196b2c86 100644 --- a/.github/workflows/format.yml +++ b/.github/workflows/format.yml @@ -10,9 +10,13 @@ jobs: format: name: format runs-on: ubuntu-latest - container: ghcr.io/ocaml-tracing/ocaml-opentelemetry/ci-4.14:latest + container: + image: ghcr.io/ocaml-tracing/ocaml-opentelemetry/ci-4.14:latest + options: --user root steps: - uses: actions/checkout@v4 - - run: opam exec -- make format-check + - run: chown -R opam:opam . + + - run: su opam -c "opam exec -- make format-check" diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml index 1af08795..754c29c4 100644 --- a/.github/workflows/gh-pages.yml +++ b/.github/workflows/gh-pages.yml @@ -8,23 +8,27 @@ on: jobs: deploy: runs-on: ubuntu-latest - container: ghcr.io/ocaml-tracing/ocaml-opentelemetry/ci-5.4:latest + container: + image: ghcr.io/ocaml-tracing/ocaml-opentelemetry/ci-5.4:latest + options: --user root steps: - uses: actions/checkout@v4 with: submodules: recursive + - run: chown -R opam:opam . + - name: Install local packages - run: opam exec -- dune build @install && opam exec -- dune install + run: su opam -c "opam exec -- dune build @install && opam exec -- dune install" - name: Build documentation run: | - opam exec -- odig odoc --cache-dir=_doc/ \ + su opam -c "opam exec -- odig odoc --cache-dir=_doc/ \ opentelemetry opentelemetry-client opentelemetry-lwt \ opentelemetry-cohttp-lwt opentelemetry-client-ocurl \ opentelemetry-client-ocurl-lwt opentelemetry-client-cohttp-lwt \ - opentelemetry-client-cohttp-eio opentelemetry-logs + opentelemetry-client-cohttp-eio opentelemetry-logs" - name: Deploy uses: peaceiris/actions-gh-pages@v3 diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index bf76fb42..20a82761 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -23,7 +23,9 @@ jobs: eio: true runs-on: ubuntu-latest - container: ${{ matrix.container }} + container: + image: ${{ matrix.container }} + options: --user root steps: - name: Checkout code @@ -31,18 +33,20 @@ jobs: with: submodules: recursive + - run: chown -R opam:opam . + - name: Build - run: opam exec -- dune build @install -p opentelemetry,opentelemetry-client,opentelemetry-lwt,opentelemetry-cohttp-lwt,opentelemetry-client-ocurl,opentelemetry-client-ocurl-lwt,opentelemetry-client-cohttp-lwt,opentelemetry-logs + run: su opam -c "opam exec -- dune build @install -p opentelemetry,opentelemetry-client,opentelemetry-lwt,opentelemetry-cohttp-lwt,opentelemetry-client-ocurl,opentelemetry-client-ocurl-lwt,opentelemetry-client-cohttp-lwt,opentelemetry-logs" - name: Build eio packages if: ${{ matrix.eio }} - run: opam exec -- dune build @install -p opentelemetry-client-cohttp-eio + run: su opam -c "opam exec -- dune build @install -p opentelemetry-client-cohttp-eio" - name: Lint (protoc check) - run: opam exec -- dune build @lint + run: su opam -c "opam exec -- dune build @lint" - name: Check no generated files changed run: git diff --exit-code - name: Run tests - run: opam exec -- dune build @runtest + run: su opam -c "opam exec -- dune build @runtest"