From 3796fc4f6d5d7656caeadc38e8c49846e682802f Mon Sep 17 00:00:00 2001 From: Laurenz Date: Sat, 1 Oct 2022 19:35:07 +0200 Subject: [PATCH] Support `x86_64` aka `amd64` arch --- .github/workflows/test.yml | 2 + Dockerfiles/Dockerfile.x86_64.alpine_latest | 4 ++ Dockerfiles/Dockerfile.x86_64.bullseye | 4 ++ Dockerfiles/Dockerfile.x86_64.buster | 4 ++ Dockerfiles/Dockerfile.x86_64.fedora_latest | 4 ++ Dockerfiles/Dockerfile.x86_64.jessie | 4 ++ Dockerfiles/Dockerfile.x86_64.stretch | 4 ++ Dockerfiles/Dockerfile.x86_64.ubuntu16.04 | 4 ++ Dockerfiles/Dockerfile.x86_64.ubuntu18.04 | 4 ++ Dockerfiles/Dockerfile.x86_64.ubuntu20.04 | 4 ++ Dockerfiles/Dockerfile.x86_64.ubuntu22.04 | 4 ++ Dockerfiles/Dockerfile.x86_64.ubuntu_devel | 4 ++ Dockerfiles/Dockerfile.x86_64.ubuntu_latest | 4 ++ Dockerfiles/Dockerfile.x86_64.ubuntu_rolling | 4 ++ README.md | 3 +- action.yml | 46 ++++++++++---------- 16 files changed, 79 insertions(+), 24 deletions(-) create mode 100644 Dockerfiles/Dockerfile.x86_64.alpine_latest create mode 100644 Dockerfiles/Dockerfile.x86_64.bullseye create mode 100644 Dockerfiles/Dockerfile.x86_64.buster create mode 100644 Dockerfiles/Dockerfile.x86_64.fedora_latest create mode 100644 Dockerfiles/Dockerfile.x86_64.jessie create mode 100644 Dockerfiles/Dockerfile.x86_64.stretch create mode 100644 Dockerfiles/Dockerfile.x86_64.ubuntu16.04 create mode 100644 Dockerfiles/Dockerfile.x86_64.ubuntu18.04 create mode 100644 Dockerfiles/Dockerfile.x86_64.ubuntu20.04 create mode 100644 Dockerfiles/Dockerfile.x86_64.ubuntu22.04 create mode 100644 Dockerfiles/Dockerfile.x86_64.ubuntu_devel create mode 100644 Dockerfiles/Dockerfile.x86_64.ubuntu_latest create mode 100644 Dockerfiles/Dockerfile.x86_64.ubuntu_rolling diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index a2bc5ccd..ca61cba0 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -17,6 +17,8 @@ jobs: distro: fedora_latest - arch: ppc64le distro: alpine_latest + - arch: x86_64 + distro: ubuntu_latest - arch: armv6 distro: buster - arch: armv7 diff --git a/Dockerfiles/Dockerfile.x86_64.alpine_latest b/Dockerfiles/Dockerfile.x86_64.alpine_latest new file mode 100644 index 00000000..2fdc81c1 --- /dev/null +++ b/Dockerfiles/Dockerfile.x86_64.alpine_latest @@ -0,0 +1,4 @@ +FROM amd64/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 diff --git a/Dockerfiles/Dockerfile.x86_64.bullseye b/Dockerfiles/Dockerfile.x86_64.bullseye new file mode 100644 index 00000000..e5a4b762 --- /dev/null +++ b/Dockerfiles/Dockerfile.x86_64.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 diff --git a/Dockerfiles/Dockerfile.x86_64.buster b/Dockerfiles/Dockerfile.x86_64.buster new file mode 100644 index 00000000..4dfa96da --- /dev/null +++ b/Dockerfiles/Dockerfile.x86_64.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.x86_64.fedora_latest b/Dockerfiles/Dockerfile.x86_64.fedora_latest new file mode 100644 index 00000000..6fb0ac25 --- /dev/null +++ b/Dockerfiles/Dockerfile.x86_64.fedora_latest @@ -0,0 +1,4 @@ +FROM amd64/fedora: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 diff --git a/Dockerfiles/Dockerfile.x86_64.jessie b/Dockerfiles/Dockerfile.x86_64.jessie new file mode 100644 index 00000000..c61cd232 --- /dev/null +++ b/Dockerfiles/Dockerfile.x86_64.jessie @@ -0,0 +1,4 @@ +FROM amd64/debian:jessie + +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.x86_64.stretch b/Dockerfiles/Dockerfile.x86_64.stretch new file mode 100644 index 00000000..ce73d854 --- /dev/null +++ b/Dockerfiles/Dockerfile.x86_64.stretch @@ -0,0 +1,4 @@ +FROM amd64/debian:stretch + +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.x86_64.ubuntu16.04 b/Dockerfiles/Dockerfile.x86_64.ubuntu16.04 new file mode 100644 index 00000000..f396d892 --- /dev/null +++ b/Dockerfiles/Dockerfile.x86_64.ubuntu16.04 @@ -0,0 +1,4 @@ +FROM amd64/ubuntu:16.04 + +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.x86_64.ubuntu18.04 b/Dockerfiles/Dockerfile.x86_64.ubuntu18.04 new file mode 100644 index 00000000..e20895c8 --- /dev/null +++ b/Dockerfiles/Dockerfile.x86_64.ubuntu18.04 @@ -0,0 +1,4 @@ +FROM amd64/ubuntu:18.04 + +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.x86_64.ubuntu20.04 b/Dockerfiles/Dockerfile.x86_64.ubuntu20.04 new file mode 100644 index 00000000..4fe2d29b --- /dev/null +++ b/Dockerfiles/Dockerfile.x86_64.ubuntu20.04 @@ -0,0 +1,4 @@ +FROM amd64/ubuntu:20.04 + +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.x86_64.ubuntu22.04 b/Dockerfiles/Dockerfile.x86_64.ubuntu22.04 new file mode 100644 index 00000000..f54d87d0 --- /dev/null +++ b/Dockerfiles/Dockerfile.x86_64.ubuntu22.04 @@ -0,0 +1,4 @@ +FROM amd64/ubuntu:22.04 + +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.x86_64.ubuntu_devel b/Dockerfiles/Dockerfile.x86_64.ubuntu_devel new file mode 100644 index 00000000..ba3416f9 --- /dev/null +++ b/Dockerfiles/Dockerfile.x86_64.ubuntu_devel @@ -0,0 +1,4 @@ +FROM amd64/ubuntu:devel + +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.x86_64.ubuntu_latest b/Dockerfiles/Dockerfile.x86_64.ubuntu_latest new file mode 100644 index 00000000..d8a78357 --- /dev/null +++ b/Dockerfiles/Dockerfile.x86_64.ubuntu_latest @@ -0,0 +1,4 @@ +FROM amd64/ubuntu: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 diff --git a/Dockerfiles/Dockerfile.x86_64.ubuntu_rolling b/Dockerfiles/Dockerfile.x86_64.ubuntu_rolling new file mode 100644 index 00000000..c643d78c --- /dev/null +++ b/Dockerfiles/Dockerfile.x86_64.ubuntu_rolling @@ -0,0 +1,4 @@ +FROM amd64/ubuntu:rolling + +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/README.md b/README.md index b7a11630..a7c8dde1 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ A GitHub Action that executes commands on non-x86 CPU architecture (armv6, armv7 This action requires three input parameters: -* `arch`: CPU architecture: `armv6`, `armv7`, `aarch64`, `riscv64`, `s390x`, or `ppc64le`. See [Supported Platforms](#supported-platforms) for the full matrix. +* `arch`: CPU architecture: `armv6`, `armv7`, `aarch64`, `riscv64`, `s390x`, `ppc64le`, or `x86_64`. See [Supported Platforms](#supported-platforms) for the full matrix. * `distro`: Linux distribution name: `ubuntu16.04`, `ubuntu18.04`, `ubuntu20.04`, `bullseye`, `buster`, `stretch`, `jessie`, `fedora_latest`, `alpine_latest` or `archarm_latest`. See [Supported Platforms](#supported-platforms) for the full matrix. * `run`: Shell commands to execute in the container. @@ -158,6 +158,7 @@ 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 | +| x86_64 | jessie, stretch, buster, bullseye, ubuntu16.04, ubuntu18.04, ubuntu20.04, ubuntu22.04, ubuntu_latest, ubuntu_rolling, ubuntu_devel, fedora_latest, alpine_latest | Using an invalid `arch`/`distro` combination will fail. diff --git a/action.yml b/action.yml index 28c83a0f..f4209dcc 100644 --- a/action.yml +++ b/action.yml @@ -1,49 +1,49 @@ -name: 'Run on architecture' +name: "Run on architecture" branding: - icon: 'cpu' - color: 'green' -description: 'Run commands in a Linux container with a specific CPU architecture (armv6, armv7, aarch64, s390x, ppc64le)' -author: 'Umberto Raimondi, Elijah Shaw-Rutschman' + icon: "cpu" + color: "green" +description: "Run commands in a Linux container with a specific CPU architecture (armv6, armv7, aarch64, s390x, ppc64le)" +author: "Umberto Raimondi, Elijah Shaw-Rutschman" inputs: arch: - description: 'CPU architecture: armv6, armv7, aarch64, riscv64, s390x, ppc64le.' + description: "CPU architecture: armv6, armv7, aarch64, riscv64, s390x, ppc64le, x86_64." required: false - default: 'aarch64' + default: "aarch64" distro: - description: 'Linux distribution name: ubuntu16.04, ubuntu18.04, ubuntu20.04, bullseye, buster, stretch, jessie, fedora_latest, alpine_latest, archarm_latest.' + description: "Linux distribution name: ubuntu16.04, ubuntu18.04, ubuntu20.04, bullseye, buster, stretch, jessie, fedora_latest, alpine_latest, archarm_latest." required: false - default: 'ubuntu18.04' + default: "ubuntu18.04" githubToken: description: 'Your GitHub token, used for caching Docker images in your project''s public package registry. Usually this would just be $\{{ github.token }}. This speeds up builds and is highly recommended.' required: false - default: '' + default: "" env: - description: 'Environment variables to propagate to the container. YAML, but must begin with a | character. These variables will be available in both run and setup.' + description: "Environment variables to propagate to the container. YAML, but must begin with a | character. These variables will be available in both run and setup." required: false - default: '' + default: "" run: - description: 'Shell commands to execute in the container.' + description: "Shell commands to execute in the container." required: true shell: - description: 'The shell to run commands with in the container. Default: /bin/sh on alpine (because Alpine uses BusyBox), /bin/bash for other distros.' + description: "The shell to run commands with in the container. Default: /bin/sh on alpine (because Alpine uses BusyBox), /bin/bash for other distros." required: false - default: '' + default: "" dockerRunArgs: - description: 'Additional arguments to pass to docker run, such as volume mappings. See README for example usage.' + description: "Additional arguments to pass to docker run, such as volume mappings. See README for example usage." required: false setup: - description: 'Shell commands to execute on the host before running the container, such as creating directories for volume mappings. See README for example usage.' + description: "Shell commands to execute on the host before running the container, such as creating directories for volume mappings. See README for example usage." required: false - default: '' + default: "" install: - description: 'Shell commands to execute in the container as part of docker build, such as installing dependencies. This speeds up subsequent builds if githubToken is also used, but note that the image layer will be publicly available in your projects GitHub Package Registry, so make sure the resulting image does not have any secrets cached in logs or state.' + description: "Shell commands to execute in the container as part of docker build, such as installing dependencies. This speeds up subsequent builds if githubToken is also used, but note that the image layer will be publicly available in your projects GitHub Package Registry, so make sure the resulting image does not have any secrets cached in logs or state." required: false - default: '' + default: "" base_image: description: 'Specify a custom base image, such as \"busybox\" or your predefined base image. This will replace the \"FROM\" claus in the default Dockerfile on the fly. This is optional. Hint: with this option you are able to use all the available archs other than the ones showed by default. See the [advanced example](./.github/workflows/advanced-example.yml) in this repo. For more detials, see [PR #103](https://github.com/uraimo/run-on-arch-action/pull/103#issuecomment-1363810049).' required: false - default: '' + default: "" runs: - using: 'node16' - main: 'src/run-on-arch.js' + using: "node16" + main: "src/run-on-arch.js"