-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix(CI): Break up workflows and use templates
- Loading branch information
1 parent
173e104
commit f19ff12
Showing
1 changed file
with
66 additions
and
76 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 <<EOF | sudo tee -a /etc/vbox/networks.conf > /dev/null | ||
* 192.168.30.0/24 | ||
* fdad:bad:ba55::/64 | ||
EOF | ||
- name: Configure VirtualBox | ||
run: |- | ||
sudo mkdir -p /etc/vbox | ||
cat <<EOF | sudo tee -a /etc/vbox/networks.conf > /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 |