Skip to content

Commit

Permalink
Support x86_64 aka amd64 arch
Browse files Browse the repository at this point in the history
  • Loading branch information
lalten committed Aug 29, 2023
1 parent 4ed76f1 commit 3796fc4
Show file tree
Hide file tree
Showing 16 changed files with 79 additions and 24 deletions.
2 changes: 2 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
4 changes: 4 additions & 0 deletions Dockerfiles/Dockerfile.x86_64.alpine_latest
Original file line number Diff line number Diff line change
@@ -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
4 changes: 4 additions & 0 deletions Dockerfiles/Dockerfile.x86_64.bullseye
Original file line number Diff line number Diff line change
@@ -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
4 changes: 4 additions & 0 deletions Dockerfiles/Dockerfile.x86_64.buster
Original file line number Diff line number Diff line change
@@ -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
4 changes: 4 additions & 0 deletions Dockerfiles/Dockerfile.x86_64.fedora_latest
Original file line number Diff line number Diff line change
@@ -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
4 changes: 4 additions & 0 deletions Dockerfiles/Dockerfile.x86_64.jessie
Original file line number Diff line number Diff line change
@@ -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
4 changes: 4 additions & 0 deletions Dockerfiles/Dockerfile.x86_64.stretch
Original file line number Diff line number Diff line change
@@ -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
4 changes: 4 additions & 0 deletions Dockerfiles/Dockerfile.x86_64.ubuntu16.04
Original file line number Diff line number Diff line change
@@ -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
4 changes: 4 additions & 0 deletions Dockerfiles/Dockerfile.x86_64.ubuntu18.04
Original file line number Diff line number Diff line change
@@ -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
4 changes: 4 additions & 0 deletions Dockerfiles/Dockerfile.x86_64.ubuntu20.04
Original file line number Diff line number Diff line change
@@ -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
4 changes: 4 additions & 0 deletions Dockerfiles/Dockerfile.x86_64.ubuntu22.04
Original file line number Diff line number Diff line change
@@ -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
4 changes: 4 additions & 0 deletions Dockerfiles/Dockerfile.x86_64.ubuntu_devel
Original file line number Diff line number Diff line change
@@ -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
4 changes: 4 additions & 0 deletions Dockerfiles/Dockerfile.x86_64.ubuntu_latest
Original file line number Diff line number Diff line change
@@ -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
4 changes: 4 additions & 0 deletions Dockerfiles/Dockerfile.x86_64.ubuntu_rolling
Original file line number Diff line number Diff line change
@@ -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
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Expand Down Expand Up @@ -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.
Expand Down
46 changes: 23 additions & 23 deletions action.yml
Original file line number Diff line number Diff line change
@@ -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"

0 comments on commit 3796fc4

Please sign in to comment.