2020-11-22 16:36:57 -05:00
|
|
|
---
|
|
|
|
name: Tests
|
2024-11-24 14:58:17 -05:00
|
|
|
|
2020-11-22 16:36:57 -05:00
|
|
|
on: # yamllint disable-line rule:truthy
|
|
|
|
- push
|
|
|
|
- pull_request
|
|
|
|
- workflow_dispatch
|
2024-11-24 14:58:17 -05:00
|
|
|
|
|
|
|
env:
|
|
|
|
SC_VER: "0.10.0"
|
|
|
|
ESH_VER: "0.3.2"
|
|
|
|
|
2020-11-22 16:36:57 -05:00
|
|
|
jobs:
|
|
|
|
Tests:
|
2024-11-24 14:58:17 -05:00
|
|
|
runs-on: ${{ matrix.os }}
|
|
|
|
strategy:
|
|
|
|
fail-fast: false
|
|
|
|
matrix:
|
|
|
|
os:
|
|
|
|
- ubuntu-20.04
|
|
|
|
- ubuntu-24.04
|
|
|
|
- macos-13
|
|
|
|
- macos-15
|
2020-11-22 16:36:57 -05:00
|
|
|
steps:
|
2024-11-24 14:58:17 -05:00
|
|
|
- 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"
|