Matrix dev/main #595
Workflow file for this run
This file contains hidden or 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
| on: | |
| pull_request: | |
| jobs: | |
| versiontag: | |
| runs-on: ubuntu-latest | |
| if: github.ref != 'refs/heads/main' | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: Check version tag | |
| run: | | |
| curl -f https://raw.githubusercontent.com/pvarki/python-rasenmaeher-api/main/pyproject.toml -o /tmp/main_pyproject.toml || touch /tmp/main_pyproject.toml | |
| grep "version = " pyproject.toml >/tmp/version.txt | |
| grep "version = " /tmp/main_pyproject.toml >/tmp/main_version.txt | |
| diff /tmp/main_version.txt /tmp/version.txt && exit 1 || exit 0 | |
| test: | |
| runs-on: arc-runner-set | |
| permissions: | |
| contents: write | |
| pull-requests: write | |
| checks: write | |
| strategy: | |
| matrix: | |
| python-version: ["3.11"] # , "3.12"] | |
| env: | |
| PIP_INDEX_URL: https://nexus.dev.pvarki.fi/repository/python/simple | |
| POETRY_PYPI_MIRROR_URL: https://nexus.dev.pvarki.fi/repository/python/simple | |
| steps: | |
| - name: Log in to Docker Hub | |
| uses: docker/login-action@v3 | |
| with: | |
| username: ${{ secrets.DOCKERHUB_USERNAME }} | |
| password: ${{ secrets.DOCKERHUB_TOKEN }} | |
| - uses: actions/checkout@v5 | |
| with: | |
| submodules: recursive | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install poetry | |
| poetry self add poetry-plugin-pypi-mirror | |
| poetry install | |
| - name: Do pre-commit checks (black, lint, mypy) | |
| run: | | |
| poetry run docker/pre_commit_init.sh | |
| - name: Prep docker | |
| run: | | |
| rm -rf api/tests/data/cfssl/* | |
| rm -rf api/tests/data/ca_public/* | |
| docker system prune --all --volumes --force | |
| cd tests | |
| docker compose -f docker-compose.yml pull --ignore-pull-failures | |
| docker compose -f docker-compose.yml up -d --wait || docker compose -f docker-compose.yml logs | |
| docker compose -f docker-compose.yml down -v | |
| - name: Test with pytest | |
| run: | | |
| poetry run py.test -v --junitxml=pytest.xml | |
| - name: Publish Test Report | |
| uses: mikepenz/action-junit-report@v4 | |
| if: success() || failure() # always run even if the previous step fails | |
| with: | |
| report_paths: '**/pytest*.xml' | |
| detailed_summary: true | |
| check_name: 'JUnit report (local)' | |
| docker_builds: | |
| runs-on: arc-runner-set | |
| steps: | |
| - name: Log in to Docker Hub | |
| uses: docker/login-action@v3 | |
| with: | |
| username: ${{ secrets.DOCKERHUB_USERNAME }} | |
| password: ${{ secrets.DOCKERHUB_TOKEN }} | |
| - uses: actions/checkout@v5 | |
| with: | |
| submodules: recursive | |
| - name: Build test target | |
| run: docker build --target test -t rmapi:test . | |
| - name: Build production target | |
| run: docker build --target production -t rmapi:production . |