Update #19
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Test Cross Platform | |
# Controls when the action will run. | |
on: | |
push: | |
branches: | |
- full-integ | |
# Allows you to run this workflow manually from the Actions tab | |
workflow_dispatch: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
# Set an environment variables for the workflow | |
env: | |
UV_HTTP_TIMEOUT: 300 | |
PIP_DISABLE_PIP_VERSION_CHECK: 1 | |
# Define the jobs that run in the workflow | |
jobs: | |
integ-tests: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
architecture: | |
- platform: linux/amd64 | |
tag: linux-amd64 | |
#arch: ubuntu | |
arch: docker.io/nazq/cross-rye-py-runner:latest | |
artifact-arch: x86_64-unknown-linux-gnu | |
- platform: linux/arm64 | |
tag: linux-arm64 | |
#arch: arm64v8/ubuntu | |
arch: docker.io/nazq/cross-rye-py-runner:latest | |
artifact-arch: aarch64-unknown-linux-gnu | |
- platform: linux/ppc64le | |
tag: linux-ppc64le | |
#arch: ppc64le/ubuntu | |
arch: docker.io/nazq/cross-rye-py-runner:latest | |
artifact-arch: powerpc64le-unknown-linux-gnu | |
- platform: linux/s390x | |
tag: linux-s390x | |
#arch: s390x/ubuntu | |
arch: docker.io/nazq/cross-rye-py-runner:latest | |
artifact-arch: s390x-unknown-linux-gnu | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Cache Docker layers | |
uses: actions/cache@v4 | |
with: | |
path: /tmp/.buildx-cache | |
key: ${{ runner.os }}-docker-${{ matrix.architecture.platform }} | |
restore-keys: | | |
${{ runner.os }}-docker-${{ matrix.architecture.platform }}- | |
- name: Set up Docker Buildx | |
id: buildx | |
uses: docker/setup-buildx-action@v2 | |
with: | |
install: true | |
- name: init QEMU | |
run: | | |
ls -al /proc/sys/fs/binfmt_misc | |
for entry in /proc/sys/fs/binfmt_misc/qemu-*; do | |
if [ "$(basename "$entry")" != "status" ]; then | |
if [ -r "$entry" ]; then | |
echo "Contents of $entry:" | |
cat "$entry" | |
echo | |
else | |
echo "Skipping $entry: Permission denied" | |
fi | |
fi | |
echo | |
done | |
- name: Test mainline | |
run: | | |
docker pull tonistiigi/binfmt || true | |
docker run --rm --privileged tonistiigi/binfmt --install all | |
ls -al /proc/sys/fs/binfmt_misc | |
for entry in /proc/sys/fs/binfmt_misc/qemu-*; do | |
if [ "$(basename "$entry")" != "status" ]; then | |
if [ -r "$entry" ]; then | |
echo "Contents of $entry:" | |
cat "$entry" | |
echo | |
else | |
echo "Skipping $entry: Permission denied" | |
fi | |
fi | |
echo | |
done | |
docker pull docker.io/${{ matrix.architecture.arch }} || true | |
DOCKER_CMD="docker run --rm --platform=${{ matrix.architecture.platform }} ${{ matrix.architecture.arch }} sh -c 'echo && uname -a && echo'" | |
echo "DOCKER_CMD: $DOCKER_CMD" | |
eval $DOCKER_CMD | |
shell: bash | |
#docker run --rm arm64v8/alpine sh -c "uname -a && echo" | |
#docker run --rm arm32v7/alpine sh -c "uname -a && echo" | |
#docker run --rm ppc64le/alpine sh -c "uname -a && echo" | |
#docker run --rm s390x/alpine sh -c "uname -a && echo" | |
#docker run --rm tonistiigi/debian:riscv sh -c "uname -a && echo" | |
#docker run --rm --platform=linux/s390x s390x/ubuntu sh -c "uname -a && echo" | |
#docker run --rm --platform=linux/ppc64le ppc64le/ubuntu sh -c "uname -a && echo" |