diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index a2bc5cc..65ae5ee 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -32,7 +32,17 @@ jobs: - arch: armv7 distro: ubuntu18.04 - arch: aarch64 - distro: bullseye + distro: bullseye + - arch: i386 + distro: bullseye + - arch: i386 + distro: buster + - arch: i386 + distro: alpine_latest + - arch: amd64 + distro: bullseye + - arch: amd64 + distro: buster # Run tests that only need to be run on one matrix node run_extra_tests: true @@ -173,6 +183,8 @@ jobs: case "${{ matrix.arch }}" in armv6) expected_arch="armv6l" ;; armv7) expected_arch="armv7l" ;; + i386) expected_arch="i686" ;; + amd64) expected_arch="x86_64" ;; *) expected_arch="${{ matrix.arch }}" ;; esac diff --git a/Dockerfiles/Dockerfile.amd64.bullseye b/Dockerfiles/Dockerfile.amd64.bullseye new file mode 100644 index 0000000..18e1fa7 --- /dev/null +++ b/Dockerfiles/Dockerfile.amd64.bullseye @@ -0,0 +1,4 @@ +FROM amd64/debian:bullseye + +COPY ./run-on-arch-install.sh /root/run-on-arch-install.sh +RUN chmod +x /root/run-on-arch-install.sh && /root/run-on-arch-install.sh \ No newline at end of file diff --git a/Dockerfiles/Dockerfile.amd64.buster b/Dockerfiles/Dockerfile.amd64.buster new file mode 100644 index 0000000..4dfa96d --- /dev/null +++ b/Dockerfiles/Dockerfile.amd64.buster @@ -0,0 +1,4 @@ +FROM amd64/debian:buster + +COPY ./run-on-arch-install.sh /root/run-on-arch-install.sh +RUN chmod +x /root/run-on-arch-install.sh && /root/run-on-arch-install.sh diff --git a/Dockerfiles/Dockerfile.i386.alpine_latest b/Dockerfiles/Dockerfile.i386.alpine_latest new file mode 100644 index 0000000..3b01e69 --- /dev/null +++ b/Dockerfiles/Dockerfile.i386.alpine_latest @@ -0,0 +1,5 @@ +FROM i386/alpine:latest + +COPY ./run-on-arch-install.sh /root/run-on-arch-install.sh +RUN chmod +x /root/run-on-arch-install.sh && /root/run-on-arch-install.sh +ENTRYPOINT ["linux32", "--"] diff --git a/Dockerfiles/Dockerfile.i386.bullseye b/Dockerfiles/Dockerfile.i386.bullseye new file mode 100644 index 0000000..017ac32 --- /dev/null +++ b/Dockerfiles/Dockerfile.i386.bullseye @@ -0,0 +1,5 @@ +FROM i386/debian:bullseye + +COPY ./run-on-arch-install.sh /root/run-on-arch-install.sh +RUN chmod +x /root/run-on-arch-install.sh && /root/run-on-arch-install.sh +ENTRYPOINT ["linux32", "--"] diff --git a/Dockerfiles/Dockerfile.i386.buster b/Dockerfiles/Dockerfile.i386.buster new file mode 100644 index 0000000..d204520 --- /dev/null +++ b/Dockerfiles/Dockerfile.i386.buster @@ -0,0 +1,5 @@ +FROM i386/debian:buster + +COPY ./run-on-arch-install.sh /root/run-on-arch-install.sh +RUN chmod +x /root/run-on-arch-install.sh && /root/run-on-arch-install.sh +ENTRYPOINT ["linux32", "--"] diff --git a/README.md b/README.md index b7a1163..c08fb81 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![](https://github.com/uraimo/run-on-arch-action/workflows/test/badge.svg)](https://github.com/uraimo/run-on-arch-action) -A GitHub Action that executes commands on non-x86 CPU architecture (armv6, armv7, aarch64, s390x, ppc64le) via QEMU. +A GitHub Action that executes commands on CPU architecture (armv6, armv7, aarch64, s390x, ppc64le, amd64, i386) via QEMU. ## Usage @@ -158,6 +158,8 @@ This table details the valid `arch`/`distro` combinations: | riscv64 | ubuntu20.04, ubuntu22.04, ubuntu_latest, ubuntu_rolling, ubuntu_devel, alpine_edge | | s390x | jessie, stretch, buster, bullseye, ubuntu16.04, ubuntu18.04, ubuntu20.04, ubuntu22.04, ubuntu_latest, ubuntu_rolling, ubuntu_devel, fedora_latest, alpine_latest | | ppc64le | jessie, stretch, buster, bullseye, ubuntu16.04, ubuntu18.04,ubuntu20.04, ubuntu22.04, ubuntu_latest, ubuntu_rolling, ubuntu_devel, fedora_latest, alpine_latest | +| i386 | buster, bullseye, alpine_lastest | +| amd64 | buster, bullseye | Using an invalid `arch`/`distro` combination will fail. @@ -170,6 +172,8 @@ This project makes use of an additional QEMU container to be able to emulate via New distros and archs can be added simply by creating a Dockerfile named `Dockerfile.{arch}.{distro}` (that targets an image for the desired combination) in the [Dockerfiles](https://github.com/uraimo/run-on-arch-action/blob/master/Dockerfiles) directory. Pull requests welcome! +Note: If you're adding an i386 architecture distro, make sure that the Dockerfile contains `ENTRYPOINT ["linux32", "--"]`, otherwise uname will report incorrect architecture. + ## Authors [Umberto Raimondi](https://github.com/uraimo)