diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..7a3efd9 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,49 @@ +--- + +name: ci +'on': + pull_request: + push: + branches: + - master + +jobs: + + yaml-lint: + name: YAML Lint + runs-on: ubuntu-latest + steps: + + - name: Fetch code + uses: actions/checkout@v4 + + - name: Set up Python 3. + uses: actions/setup-python@v2 + with: + python-version: '3.x' + + - name: Install test dependencies. + run: pip3 install yamllint + + - name: Lint code. + run: | + yamllint . + + ansible-lint: + name: Ansible Lint + runs-on: ubuntu-latest + + steps: + - name: Fetch code + uses: actions/checkout@v4 + + - name: Set up Python 3. + uses: actions/setup-python@v5 + with: + python-version: '3.x' + + - name: Install lib dependencies + run: pip3 install netaddr + + - name: Run ansible-lint + uses: ansible/ansible-lint@v24.7.0 diff --git a/.github/workflows/galaxy.yml b/.github/workflows/galaxy.yml new file mode 100644 index 0000000..4e88b7d --- /dev/null +++ b/.github/workflows/galaxy.yml @@ -0,0 +1,17 @@ +--- + +name: Deploy on Ansible Galaxy + +'on': + - push + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Fetch code + uses: actions/checkout@v4 + - name: galaxy + uses: robertdebock/galaxy-action@1.2.0 + with: + galaxy_api_key: ${{ secrets.galaxy_api_key }} diff --git a/.github/workflows/molecule.yml b/.github/workflows/molecule.yml new file mode 100644 index 0000000..e5cd7b3 --- /dev/null +++ b/.github/workflows/molecule.yml @@ -0,0 +1,40 @@ +--- +name: Molecule + +'on': + pull_request: + push: + branches: + - master + +jobs: + build: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + scenario: + - debian12_master_slave + - debian12_upstream + + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + path: "${{ github.repository }}" + + - name: Set up Python 3. + uses: actions/setup-python@v5 + with: + python-version: '3.x' + + - name: Install lib dependencies + run: pip3 install netaddr + + - name: Molecule + uses: gofrolist/molecule-action@v2 + with: + molecule_options: --base-config molecule/_shared/base.yml + molecule_args: --scenario-name ${{ matrix.scenario }} + env: + ANSIBLE_FORCE_COLOR: '1' diff --git a/molecule/_shared/base.yml b/molecule/_shared/base.yml index 7c395d3..ed1c6c6 100644 --- a/molecule/_shared/base.yml +++ b/molecule/_shared/base.yml @@ -10,6 +10,9 @@ scenario: - idempotence - verify - destroy +dependency: + name: shell + command: "${MOLECULE_SCENARIO_DIRECTORY}/../_shared/tools/install-dependencies.sh" driver: name: docker role_name_check: 1 diff --git a/molecule/_shared/tools/install-dependencies.sh b/molecule/_shared/tools/install-dependencies.sh new file mode 100755 index 0000000..7300d31 --- /dev/null +++ b/molecule/_shared/tools/install-dependencies.sh @@ -0,0 +1,8 @@ +#!/bin/sh + +if [ -z "${IS_GITHUB_ACTIONS}" ]; then + echo "This script is run in GitHub Actions." + pip install netaddr +fi + +ansible-galaxy collection install -r requirements.yml