🧪 Unit Test #201
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: '🧪 Unit Test' | |
on: | |
push: | |
schedule: | |
- cron: '0 6 * * *' | |
workflow_dispatch: | |
# This workflow serves for multiple purposes: | |
# - Action code test | |
# - Action integration test | |
# - Advanced usage example (dynamic matrix) | |
jobs: | |
# Setup matrix | |
setup-matrix: | |
name: '🧱 Build Matrix' | |
runs-on: ubuntu-latest | |
outputs: | |
matrix: ${{ steps.setup-matrix.outputs.matrix }} | |
steps: | |
# Setup matrix on a dev branch | |
- if: startsWith(github.ref, 'refs/tags/') | |
uses: druzsan/setup-matrix@main | |
with: | |
matrix: | | |
os: [ubuntu-latest, windows-latest, macos-latest] | |
python-version: [3.8, 3.10, 3.12] | |
# Setup matrix on the main branch | |
- if: github.ref == 'refs/heads/main' | |
uses: druzsan/setup-matrix@main | |
with: | |
matrix: | | |
os: [ubuntu-latest] | |
python-version: [3.8, 3.10, 3.12] | |
include: | |
- os: windows-latest | |
python-version: 3.8 | |
- os: macos-latest | |
python-version: 3.8 | |
# Setup matrix on a tag | |
- if: github.ref != 'refs/heads/main' && !startsWith(github.ref, 'refs/tags/') | |
uses: druzsan/setup-matrix@main | |
with: | |
matrix: | | |
os: [ubuntu-latest] | |
python-version: [3.8] | |
# MATRIX environment variable is set by the last executed action | |
- id: setup-matrix | |
run: echo "matrix=$MATRIX" >> $GITHUB_OUTPUT | |
# Run unit-test | |
unit-test: | |
name: '🧪 Unit-Test' | |
needs: setup-matrix | |
strategy: | |
matrix: ${{ fromJson(needs.setup-matrix.outputs.matrix) }} | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- run: python -m pip install -IU pip setuptools wheel | |
- run: pip install -IUr requirements.txt -r requirements-dev.txt | |
- run: python -m pytest |