Add alpine unittests to ci #37
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: Setup LXD | |
uses: canonical/setup-lxd@[version] | |
with: | |
channel: latest/candidate | |
- name: Create alpine container | |
# the current shell doesn't have lxd as one of the groups | |
# so switch groups to run lxd commands | |
run: sudo sg lxd -c 'lxc launch images:alpine/edge alpine' | |
- name: Check networking (for debugging) | |
run: | | |
lxc -c 'lxc exec alpine -- ping -c 1 google.com || true' | |
lxc -c 'lxc exec alpine -- ping -c 1 dl-cdn.alpinelinux.org || true' | |
lxc -c 'lxc exec alpine -- nslookup www.google.com || true' | |
lxc -c 'lxc exec alpine -- ping -c 1 dl-cdn.alpinelinux.org || true' | |
- name: Install dependencies | |
run: lxc -c 'lxc exec alpine -- apk add py3-tox git' | |
- name: Mount source into container directory | |
run: lxc -c 'lxc 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: lxc -c 'lxc exec alpine -- git clone cloud-init-ro/ cloud-init-rw' | |
- name: Run unittests | |
run: lxc -c 'lxc exec alpine --cwd /root/cloud-init-rw -- sh -c "tox -e py3"' |