From a46280d73c8eef5fafc705d2b91363ae32b48bcf Mon Sep 17 00:00:00 2001 From: Michal Rostecki Date: Tue, 12 Nov 2024 15:12:01 +0100 Subject: ci: Run the container explicitly with `docker run` Using `container:` setting in GitHub actions unfortunately doesn't work with musl-llvm Gentoo images. The reason is that GitHub actions are injecting a NodeJS binary and for distros other than Alpine, it injects a binary linked against glibc.[0] The proper fix would involve either defaulting to musl or making the libc detection in the container system smarter, but for now, let's just run the container manually. [0] https://github.com/actions/runner/blob/6ef5803f24724b77a8d3599a478d06018da5d7c6/src/Runner.Worker/Handlers/StepHost.cs#L143-L172 Signed-off-by: Michal Rostecki Closes: https://github.com/gentoo/crossdev/pull/27 Signed-off-by: Sam James --- .github/workflows/crossdev.yml | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/.github/workflows/crossdev.yml b/.github/workflows/crossdev.yml index 5af15bb..321bb31 100644 --- a/.github/workflows/crossdev.yml +++ b/.github/workflows/crossdev.yml @@ -22,26 +22,27 @@ jobs: - musl name: crossdev target=${{ matrix.target }} stage3=${{ matrix.stage3 }} runs-on: ubuntu-latest - container: docker.io/gentoo/stage3:${{ matrix.stage3 }} steps: - uses: actions/checkout@v4 - - name: Install dependencies + - name: Create cross environment run: | - emerge --sync --quiet - emerge \ - app-eselect/eselect-repository \ - sys-apps/config-site + docker run -v $(pwd):/workspace -w /workspace \ + docker.io/gentoo/stage3:${{ matrix.stage3 }} bash -c " + # Install dependencies + emerge --sync --quiet + emerge \ + app-eselect/eselect-repository \ + sys-apps/config-site - - name: Install crossdev - run: make install + # Install crossdev + make install - - name: Create cross environment - run: | - eselect repository create crossdev - crossdev ${{ matrix.args }} --target ${{ matrix.target }} + # Create cross environment + eselect repository create crossdev + crossdev ${{ matrix.args }} --target ${{ matrix.target }} - # zstd and its dependencies need both C and C++ toolchain. If any of them - # is broken, the installation will fail. - - name: Sanity check - run: ${{ matrix.target }}-emerge app-arch/zstd + # zstd and its dependencies need both C and C++ toolchain. If any of them + # is broken, the installation will fail. + run: ${{ matrix.target }}-emerge app-arch/zstd + " -- cgit v1.2.3-65-gdbad