Add alpine unittests to ci #31
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: Collect debugging info | |
run: | | |
set | |
- 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 | |
sudo ip link set incusbr0 up | |
- name: Create alpine container | |
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 | |
run: | | |
sudo sg incus-admin -c 'incus exec alpine -- git clone cloud-init-ro/ cloud-init-rw' | |
- name: Did the code work? | |
run: | | |
sudo sg incus-admin -c 'incus exec alpine -- ls -la /root/' | |
sudo sg incus-admin -c 'incus exec alpine -- ls -la /root/cloud-init-ro' | |
sudo sg incus-admin -c 'incus exec alpine -- ls -la /root/cloud-init-rw' | |
sudo sg incus-admin -c 'incus exec alpine -- sh -c "cd /root/cloud-init-rw && tox -e py3"' | |
# - name: Git the code | |
# run: | | |
# sudo sg incus-admin -c "incus exec alpine -- git clone https://github.com/${GITHUB_REPOSITORY}.git" | |
# sudo sg incus-admin -c 'incus exec alpine --cwd /root/cloud-init/ -- git fetch origin +refs/pull/*:refs/remotes/origin/pr/*' | |
# sudo sg incus-admin -c "incus exec alpine --cwd /root/cloud-init/ -- git checkout origin/pr/${GITHUB_REF_NAME}" |