| @ -0,0 +1,44 @@ | |||||
| name: OctoDNS Modules | |||||
| on: [] | |||||
| jobs: | |||||
| ci: | |||||
| runs-on: ubuntu-latest | |||||
| strategy: | |||||
| matrix: | |||||
| modules: | |||||
| - octodns/octodns-azure | |||||
| - octodns/octodns-cloudflare | |||||
| - octodns/octodns-constellix | |||||
| - octodns/octodns-ddns | |||||
| - octodns/octodns-digitalocean | |||||
| - octodns/octodns-dnsimple | |||||
| - octodns/octodns-dnsmadeeasy | |||||
| - octodns/octodns-dyn | |||||
| - octodns/octodns-easydns | |||||
| - octodns/octodns-edgedns | |||||
| - octodns/octodns-etchosts | |||||
| - octodns/octodns-gandi | |||||
| - octodns/octodns-gcore | |||||
| - octodns/octodns-googlecloud | |||||
| - octodns/octodns-hetzner | |||||
| - octodns/octodns-mythicbeasts | |||||
| - octodns/octodns-ns1 | |||||
| - octodns/octodns-ovh | |||||
| - octodns/octodns-powerdns | |||||
| - octodns/octodns-rackspace | |||||
| - octodns/octodns-route53 | |||||
| - octodns/octodns-selectel | |||||
| - octodns/octodns-transip | |||||
| - octodns/octodns-ultra | |||||
| steps: | |||||
| - uses: actions/checkout@master | |||||
| - name: Setup python | |||||
| uses: actions/setup-python@v1 | |||||
| with: | |||||
| # This should generally be the latest stable release of python | |||||
| python-version: '3.10' | |||||
| architecture: x64 | |||||
| - name: Test Module | |||||
| run: | | |||||
| ./script/test-module ${{ matrix.module }} | |||||
| @ -0,0 +1,32 @@ | |||||
| #!/bin/bash | |||||
| module="$1" | |||||
| if [ -z "$module" ]; then | |||||
| echo "Missing required parameter module, e.g. octodns/octodns-powerdns" | |||||
| exit 1 | |||||
| fi | |||||
| set -e | |||||
| TMP_DIR=$(mktemp -d -t ci-XXXXXXXXXX) | |||||
| echo "## venv ########################################################################" | |||||
| VENV_PYTHON=$(command -v python3) | |||||
| VENV_NAME="${TMP_DIR}/env" | |||||
| "$VENV_PYTHON" -m venv "$VENV_NAME" | |||||
| . "${VENV_NAME}/bin/activate" | |||||
| echo "## environment & versions ######################################################" | |||||
| python --version | |||||
| pip --version | |||||
| echo "## install octodns from pwd ####################################################" | |||||
| python setup.py install | |||||
| echo "## checkout provider module ####################################################" | |||||
| cd $TMP_DIR | |||||
| git clone "https://github.com/${module}.git" | |||||
| cd $(basename $module) | |||||
| echo "## install module dev requirements #############################################" | |||||
| pip install -e .[dev] | |||||
| export PYTHONPATH=.:$PYTHONPATH | |||||
| echo "## run module tests ############################################################" | |||||
| pytest --disable-network | |||||
| echo "## complete ####################################################################" | |||||