| name: test-alpine | |
| on: [push, pull_request, workflow_dispatch] | |
| jobs: | |
| test: | |
| runs-on: ubuntu-latest | |
| container: | |
| image: alpine:latest | |
| defaults: | |
| run: | |
| shell: sudo -u runner sh -exo pipefail {0} | |
| steps: | |
| - name: Prepare Alpine Linux | |
| run: | | |
| apk add sudo git git-daemon python3 py3-pip py3-virtualenv | |
| echo 'Defaults env_keep += "CI GITHUB_* RUNNER_*"' >/etc/sudoers.d/ci_env | |
| addgroup -g 127 docker | |
| adduser -D -u 1001 runner # TODO: Check if this still works on GHA as intended. | |
| adduser runner docker | |
| shell: sh -exo pipefail {0} # Run this as root, not the "runner" user. | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Set workspace ownership | |
| run: | | |
| chown -R runner:docker -- "$GITHUB_WORKSPACE" | |
| shell: sh -exo pipefail {0} # Run this as root, not the "runner" user. | |
| - name: Prepare this repo for tests | |
| run: | | |
| ./init-tests-after-clone.sh | |
| - name: Set git user identity and command aliases for the tests | |
| run: | | |
| git config --global user.email "travis@ci.com" | |
| git config --global user.name "Travis Runner" | |
| # If we rewrite the user's config by accident, we will mess it up | |
| # and cause subsequent tests to fail | |
| cat test/fixtures/.gitconfig >> ~/.gitconfig | |
| - name: Set up virtualenv | |
| run: | | |
| python -m venv .venv | |
| - name: Update PyPA packages | |
| run: | | |
| # Get the latest pip, wheel, and prior to Python 3.12, setuptools. | |
| . .venv/bin/activate | |
| python -m pip install -U pip $(pip freeze --all | grep -ow ^setuptools) wheel | |
| - name: Install project and test dependencies | |
| run: | | |
| . .venv/bin/activate | |
| pip install ".[test]" | |
| - name: Show version and platform information | |
| run: | | |
| . .venv/bin/activate | |
| uname -a | |
| command -v git python | |
| git version | |
| python --version | |
| python -c 'import os, sys; print(f"sys.platform={sys.platform!r}, os.name={os.name!r}")' | |
| - name: Test with pytest | |
| run: | | |
| . .venv/bin/activate | |
| pytest --color=yes -p no:sugar --instafail -vv |