Run tests directly on github runner instead of in the docker image
As this makes it possible to run the tests on different systems. Initially ubuntu (20.04 and 24.04) and macOs (13 and 15).
This commit is contained in:
parent
4511f5d9c6
commit
bb21c9a267
1 changed files with 89 additions and 4 deletions
93
.github/workflows/test.yml
vendored
93
.github/workflows/test.yml
vendored
|
@ -1,13 +1,98 @@
|
|||
---
|
||||
name: Tests
|
||||
|
||||
on: # yamllint disable-line rule:truthy
|
||||
- push
|
||||
- pull_request
|
||||
- workflow_dispatch
|
||||
|
||||
env:
|
||||
SC_VER: "0.10.0"
|
||||
ESH_VER: "0.3.2"
|
||||
|
||||
jobs:
|
||||
Tests:
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os:
|
||||
- ubuntu-20.04
|
||||
- ubuntu-24.04
|
||||
- macos-13
|
||||
- macos-15
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Tests
|
||||
run: make test
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Install dependencies on Linux
|
||||
if: ${{ runner.os == 'Linux' }}
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y expect
|
||||
if [ "${{ matrix.os }}" != "ubuntu-20.04" ]; then
|
||||
sudo apt-get install -y j2cli
|
||||
fi
|
||||
|
||||
- name: Install dependencies on macOS
|
||||
if: ${{ runner.os == 'macOS' }}
|
||||
run: |
|
||||
command -v expect || brew install expect
|
||||
|
||||
- name: Prepare tools directory
|
||||
run: |
|
||||
mkdir "$RUNNER_TEMP/tools"
|
||||
echo "$RUNNER_TEMP/tools" >> "$GITHUB_PATH"
|
||||
|
||||
- name: Install shellcheck
|
||||
run: |
|
||||
if [ "$RUNNER_OS" = "macOS" ]; then
|
||||
OS=darwin
|
||||
else
|
||||
OS=linux
|
||||
fi
|
||||
|
||||
if [ "$RUNNER_ARCH" = "ARM64" ]; then
|
||||
ARCH=aarch64
|
||||
else
|
||||
ARCH=x86_64
|
||||
fi
|
||||
|
||||
cd "$RUNNER_TEMP"
|
||||
|
||||
BASE_URL="https://github.com/koalaman/shellcheck/releases/download"
|
||||
SC="v$SC_VER/shellcheck-v$SC_VER.$OS.$ARCH.tar.xz"
|
||||
curl -L "$BASE_URL/$SC" | tar Jx shellcheck-v$SC_VER/shellcheck
|
||||
mv shellcheck-v$SC_VER/shellcheck tools
|
||||
|
||||
- name: Install esh
|
||||
run: |
|
||||
cd "$RUNNER_TEMP/tools"
|
||||
|
||||
BASE_URL="https://github.com/jirutka/esh/raw/refs/tags"
|
||||
curl -L -o esh "$BASE_URL/v$ESH_VER/esh"
|
||||
chmod +x esh
|
||||
|
||||
- name: Add old yadm versions # to test upgrades
|
||||
run: |
|
||||
for version in 1.12.0 2.5.0; do
|
||||
git fetch origin $version:refs/tags/$version
|
||||
git cat-file blob $version:yadm > "$RUNNER_TEMP/tools/yadm-$version"
|
||||
chmod +x "$RUNNER_TEMP/tools/yadm-$version"
|
||||
done
|
||||
|
||||
- name: Set up Python 3.11
|
||||
if: ${{ runner.os == 'macOS' || matrix.os == 'ubuntu-20.04' }}
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: 3.11
|
||||
|
||||
- name: Install Python dependencies
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
python -m pip install -r test/requirements.txt
|
||||
|
||||
- name: Run tests
|
||||
run: |
|
||||
git config --global user.email test@yadm.io
|
||||
git config --global user.name "Yadm Test"
|
||||
pytest -v --color=yes --basetemp="$RUNNER_TEMP/pytest"
|
||||
|
|
Loading…
Reference in a new issue