-
Notifications
You must be signed in to change notification settings - Fork 881
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
test: Add alpine to ci Cloud-init has Alpine Linux support, yet does not regularly test it. Alpine is an attractive addition to the test matrix since it is easily available to run in lxc, and it has several alternative components to test against: - busybox: non-GNU posix-compliant tools - musl: libc alternative to glibc - openrc: init system alternative to systemd
- Loading branch information
Showing
1 changed file
with
59 additions
and
0 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
|
||
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/[email protected] | ||
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: lxc launch images:alpine/edge alpine | ||
|
||
- name: Check networking (for debugging) | ||
run: | | ||
lxc exec alpine -- ping -c 1 google.com || true | ||
lxc exec alpine -- ping -c 1 dl-cdn.alpinelinux.org || true | ||
lxc exec alpine -- nslookup www.google.com || true | ||
lxc exec alpine -- ping -c 1 dl-cdn.alpinelinux.org || true | ||
- name: Install dependencies | ||
run: lxc exec alpine -- apk add py3-tox git | ||
|
||
- name: Mount source into container directory | ||
run: 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 exec alpine -- git clone cloud-init-ro/ cloud-init-rw | ||
|
||
- name: Run unittests | ||
run: lxc exec alpine --cwd /root/cloud-init-rw -- sh -c "tox -e py3" |