Skip to content

Build on Alpine Linux (Chroot) #34

Build on Alpine Linux (Chroot)

Build on Alpine Linux (Chroot) #34

Workflow file for this run

# .github/workflows/alpine.yaml
name: Build on Alpine
on:
workflow_dispatch: {}
push:
branches: [ test ]
jobs:
build:
strategy:
fail-fast: false
matrix:
label: ["x86_64", "x86", "aarch64", "armhf", "ppc64le"]
name: Build on Alpine Linux for ${{matrix.label}}
runs-on: ubuntu-22.04
defaults:
run:
shell: bash
steps:
- run: ls -l /etc/resolv.conf; cat /etc/resolv.conf
- name: Machine Information
run: |
lscpu; free -h; df -h .
- name: System Information
run: |
date; uname -a; uptime; cat /etc/os-release; ls -C /boot || :
- name: Context Information
run: |
tty || :; id; printf %s\\n "$SHELL"; pwd; printf %s\\n "$PATH"
- name: Update Package DB
run: sudo apt-get update
- name: Install QEMU
run: sudo apt-get install qemu-user-static
- name: Setup Alpine Linux
run: |
wget -q -O- https://dl-cdn.alpinelinux.org/alpine/v3.19/releases/${{matrix.label}}/alpine-minirootfs-3.19.1-${{matrix.label}}.tar.gz |
(sudo mkdir /srv/alpine && sudo tar xz -C /srv/alpine)
(for d in dev proc sys; do sudo mount --rbind -o ro {,/srv/alpine}/"$d"; done)
(for d in run tmp; do sudo mount {-t,}tmpfs /srv/alpine/"$d"; done)
sudo cp -L /etc/resolv.conf /srv/alpine/etc
sudo chroot /srv/alpine su - <<'END'
uname -a && pwd && printf %s\\n "$PATH"
END
sudo chroot /srv/alpine su - <<'END'
set -x; addgroup -g127 docker && adduser -D -u1001 -Gdocker -s/bin/ash runner && delgroup runner docker
END
(set -x; sudo mount --rbind . /srv/alpine/home/runner)
sudo chroot /srv/alpine su - <<'END'
apk update && apk add g++ make
END
- name: Build Tools Information
run: |
sudo chroot /srv/alpine su - <<'END'
make --version; gcc --version
END
- name: Checkout
uses: actions/checkout@v4
- name: Run Make (and Check)
run: |
sudo chroot /srv/alpine su - runner <<'END'
make -j3 MARCH= CFLAGS='-Wno-psabi -O2 -fno-stack-protector -fcf-protection=none' run
END
- name: Upload Results
uses: actions/upload-artifact@v4
with:
name: build-${{matrix.label}}
path: build