From f19ff12057749bf03ecb9f25ed8944c321f98ba9 Mon Sep 17 00:00:00 2001 From: Timothy Stewart Date: Sun, 29 Oct 2023 13:29:28 -0500 Subject: [PATCH] fix(CI): Break up workflows and use templates --- .github/workflows/molecule-template.yml | 142 +++++++++++------------- 1 file changed, 66 insertions(+), 76 deletions(-) diff --git a/.github/workflows/molecule-template.yml b/.github/workflows/molecule-template.yml index e49e76509..812c3803f 100644 --- a/.github/workflows/molecule-template.yml +++ b/.github/workflows/molecule-template.yml @@ -1,88 +1,78 @@ --- name: Molecule Template -on: - workflow_call: -jobs: - molecule: - name: Molecule - runs-on: macos-12 - strategy: - fail-fast: false - env: - PYTHON_VERSION: "3.11" - runs: - using: "composite" - steps: - - name: Check out the codebase - uses: actions/checkout@e2f20e631ae6d7dd3b768f56a5d2af784dd54791 # v3 2.5.0 - with: - ref: ${{ github.event.pull_request.head.sha }} +runs: + using: "composite" + steps: + - name: Check out the codebase + uses: actions/checkout@e2f20e631ae6d7dd3b768f56a5d2af784dd54791 # v3 2.5.0 + with: + ref: ${{ github.event.pull_request.head.sha }} - - name: Configure VirtualBox - run: |- - sudo mkdir -p /etc/vbox - cat < /dev/null - * 192.168.30.0/24 - * fdad:bad:ba55::/64 - EOF + - name: Configure VirtualBox + run: |- + sudo mkdir -p /etc/vbox + cat < /dev/null + * 192.168.30.0/24 + * fdad:bad:ba55::/64 + EOF - - name: Cache pip - uses: actions/cache@9b0c1fce7a93df8e3bb8926b0d6e9d89e92f20a7 # 3.0.11 - with: - path: ~/.cache/pip - key: ${{ runner.os }}-pip-${{ hashFiles('./requirements.txt') }} - restore-keys: | - ${{ runner.os }}-pip- + - name: Cache pip + uses: actions/cache@9b0c1fce7a93df8e3bb8926b0d6e9d89e92f20a7 # 3.0.11 + with: + path: ~/.cache/pip + key: ${{ runner.os }}-pip-${{ hashFiles('./requirements.txt') }} + restore-keys: | + ${{ runner.os }}-pip- - - name: Cache Vagrant boxes - uses: actions/cache@9b0c1fce7a93df8e3bb8926b0d6e9d89e92f20a7 # 3.0.11 - with: - path: | - ~/.vagrant.d/boxes - key: vagrant-boxes-${{ hashFiles('**/molecule.yml') }} - restore-keys: | - vagrant-boxes + - name: Cache Vagrant boxes + uses: actions/cache@9b0c1fce7a93df8e3bb8926b0d6e9d89e92f20a7 # 3.0.11 + with: + path: | + ~/.vagrant.d/boxes + key: vagrant-boxes-${{ hashFiles('**/molecule.yml') }} + restore-keys: | + vagrant-boxes - - name: Download Vagrant boxes for all scenarios - # To save some cache space, all scenarios share the same cache key. - # On the other hand, this means that the cache contents should be - # the same across all scenarios. This step ensures that. - run: ./.github/download-boxes.sh + - name: Download Vagrant boxes for all scenarios + # To save some cache space, all scenarios share the same cache key. + # On the other hand, this means that the cache contents should be + # the same across all scenarios. This step ensures that. + run: ./.github/download-boxes.sh - - name: Set up Python ${{ env.PYTHON_VERSION }} - uses: actions/setup-python@75f3110429a8c05be0e1bf360334e4cced2b63fa # 2.3.3 - with: - python-version: ${{ env.PYTHON_VERSION }} - cache: 'pip' # caching pip dependencies + - name: Set up Python ${{ env.PYTHON_VERSION }} + uses: actions/setup-python@75f3110429a8c05be0e1bf360334e4cced2b63fa # 2.3.3 + with: + python-version: ${{ env.PYTHON_VERSION }} + cache: 'pip' # caching pip dependencies - - name: Install dependencies - run: | - echo "::group::Upgrade pip" - python3 -m pip install --upgrade pip - echo "::endgroup::" + - name: Install dependencies + run: | + echo "::group::Upgrade pip" + python3 -m pip install --upgrade pip + echo "::endgroup::" - echo "::group::Install Python requirements from requirements.txt" - python3 -m pip install -r requirements.txt - echo "::endgroup::" + echo "::group::Install Python requirements from requirements.txt" + python3 -m pip install -r requirements.txt + echo "::endgroup::" - - name: Test with molecule - run: molecule test --scenario-name ${{ matrix.scenario }} - timeout-minutes: 90 - env: - ANSIBLE_K3S_LOG_DIR: ${{ runner.temp }}/logs/k3s-ansible/${{ matrix.scenario }} - ANSIBLE_SSH_RETRIES: 4 - ANSIBLE_TIMEOUT: 60 - PY_COLORS: 1 - ANSIBLE_FORCE_COLOR: 1 + - name: Test with molecule + run: molecule test --scenario-name ${{ matrix.scenario }} + timeout-minutes: 90 + env: + ANSIBLE_K3S_LOG_DIR: ${{ runner.temp }}/logs/k3s-ansible/${{ matrix.scenario }} + ANSIBLE_SSH_RETRIES: 4 + ANSIBLE_TIMEOUT: 60 + PY_COLORS: 1 + ANSIBLE_FORCE_COLOR: 1 - - name: Upload log files - if: always() # do this even if a step before has failed - uses: actions/upload-artifact@83fd05a356d7e2593de66fc9913b3002723633cb # 3.1.1 - with: - name: logs - path: | - ${{ runner.temp }}/logs + - name: Upload log files + if: always() # do this even if a step before has failed + uses: actions/upload-artifact@83fd05a356d7e2593de66fc9913b3002723633cb # 3.1.1 + with: + name: logs + path: | + ${{ runner.temp }}/logs - - name: Delete old box versions - if: always() # do this even if a step before has failed - run: vagrant box prune --force + - name: Delete old box versions + if: always() # do this even if a step before has failed + run: vagrant box prune --force