From 4b35bc06fc4a5ae4093c13be7c21276e308d46e3 Mon Sep 17 00:00:00 2001 From: Emilien Mantel Date: Mon, 26 Aug 2024 16:56:50 +0200 Subject: [PATCH] :construction_worker: Add Github Action --- .github/workflows/ci.yml | 49 +++++++++++++++++++ .github/workflows/galaxy.yml | 17 +++++++ .github/workflows/molecule.yml | 40 +++++++++++++++ molecule/_shared/base.yml | 3 ++ .../_shared/tools/install-dependencies.sh | 8 +++ 5 files changed, 117 insertions(+) create mode 100644 .github/workflows/ci.yml create mode 100644 .github/workflows/galaxy.yml create mode 100644 .github/workflows/molecule.yml create mode 100755 molecule/_shared/tools/install-dependencies.sh 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