Skip to content

Build on Alpine Linux (Chroot) #29

Build on Alpine Linux (Chroot)

Build on Alpine Linux (Chroot) #29

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:
- 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
sudo mount --rbind . /srv/alpine/home/runner
sudo chroot /srv/alpine su - <<'END'
ping -c3 8.8.8.8
cat /etc/hosts
ping -c3 dl-cdn.alpinelinux.org
set -x; apk update && apk add g++ make
END
#- name: Build Tools Information
# run: make --version; ${{matrix.compiler.GCC}} --version
- name: Checkout
uses: actions/checkout@v4
- run: ls -la
#- name: Run Make
# run: |
# make -j3 GCC='${{matrix.compiler.GCC}}' GXX='${{matrix.compiler.GXX}}' MARCH='${{matrix.options.MARCH}}'
#- name: Check
# run: |
# make -j3 GCC='${{matrix.compiler.GCC}}' GXX='${{matrix.compiler.GXX}}' MARCH='${{matrix.options.MARCH}}' run
# continue-on-error: true
#- name: Upload Results
# uses: actions/upload-artifact@v4
# with:
# name: build-${{matrix.compiler.descr}}-${{matrix.options.descr}}
# path: build