name: OctoDNS on: pull_request: workflow_dispatch: jobs: config: runs-on: ubuntu-latest outputs: json: ${{ steps.load.outputs.json }} steps: - uses: actions/checkout@v4 - id: load # based on https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#multiline-strings run: | { echo 'json<> $GITHUB_OUTPUT ci: needs: config runs-on: ubuntu-latest strategy: fail-fast: false matrix: # Defined in a file that resides in the top level of octodns/octodns, # based on dates in https://devguide.python.org/versions/#versions python-version: ${{ fromJson(needs.config.outputs.json).python_versions_active }} steps: - uses: actions/checkout@v4 - name: Setup python uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} architecture: x64 - name: Install dependencies run: | python -m pip install --upgrade pip pip install -r requirements.txt pip install virtualenv - name: CI Build run: | ./script/cibuild - name: Store Code Coverage Data # if the previous step(s) failed try anyways if: always() uses: actions/upload-artifact@v4 with: name: code-coverage-${{ matrix.python-version }} path: | .coverage coverage.xml htmlcov setup-py: needs: config runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Setup python uses: actions/setup-python@v4 with: # Most recent release from https://devguide.python.org/versions/#versions python-version: ${{ fromJson(needs.config.outputs.json).python_version_current }} architecture: x64 - name: CI setup.py run: | ./script/cibuild-setup-py