Add alpine unittests to ci #33
Workflow file for this run
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: Alpine Unittests | |
on: | |
pull_request: | |
branches-ignore: | |
- 'ubuntu/**' | |
push: | |
branches: | |
- main | |
concurrency: | |
group: 'ci-${{ github.workflow }}-${{ github.ref }}' | |
cancel-in-progress: true | |
defaults: | |
run: | |
shell: sh -ex {0} | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- name: "Checkout" | |
uses: actions/checkout@v4 | |
with: | |
# Fetch all tags for tools/read-version | |
fetch-depth: 0 | |
- name: Install incus | |
run: curl https://pkgs.zabbly.com/get/incus-stable | sudo sh -x | |
- name: Reset the firewall | |
run: | | |
sudo iptables -I DOCKER-USER -j ACCEPT | |
- name: Init incus | |
run: | | |
sudo incus admin init --auto | |
# we shouldn't have to do this, but the link is down and we need it up | |
sudo ip link set incusbr0 up | |
- name: Create alpine container | |
# the current shell doesn't have incus-admin as one of the groups | |
# so switch groups to run incus commands | |
run: sudo sg incus-admin -c 'incus launch images:alpine/edge alpine' | |
- name: Check networking (for debugging) | |
run: | | |
sudo sg incus-admin -c 'incus exec alpine -- ping -c 1 google.com || true' | |
sudo sg incus-admin -c 'incus exec alpine -- ping -c 1 dl-cdn.alpinelinux.org || true' | |
sudo sg incus-admin -c 'incus exec alpine -- nslookup www.google.com || true' | |
sudo sg incus-admin -c 'incus exec alpine -- ping -c 1 dl-cdn.alpinelinux.org || true' | |
- name: Install dependencies | |
run: sudo sg incus-admin -c 'incus exec alpine -- apk add py3-tox git' | |
- name: Mount source into container directory | |
run: sudo sg incus-admin -c 'incus config device add alpine gitdir disk source=$(pwd) path=/root/cloud-init-ro' | |
- name: Create a r/w directory to run tests in | |
# without this, tox fails during package install | |
run: sudo sg incus-admin -c 'incus exec alpine -- git clone cloud-init-ro/ cloud-init-rw' | |
- name: Run unittests | |
run: sudo sg incus-admin -c 'incus exec alpine --cwd /root/cloud-init-rw -- sh -c "tox -e py3"' |