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<<EOF'
|
|
cat ./.ci-config.json
|
|
echo EOF
|
|
} >> $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
|