Skip to content

Automate registration of runner #19

Automate registration of runner

Automate registration of runner #19

Workflow file for this run

---
name: ci
'on':
pull_request:
push:
branches:
- main
defaults:
run:
working-directory: 'bcook254.actrunner'
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- name: Check out the codebase.
uses: actions/checkout@v4
with:
path: 'bcook254.actrunner'
- name: Set up Python 3.
uses: actions/setup-python@v5
with:
python-version: '3.x'
- name: Install test dependencies.
run: python -m pip install yamllint
- name: Lint code.
run: yamllint .
molecule:
name: Molecule Test
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
platform:
- name: ubuntu2404
image: docker.io/geerlingguy/docker-ubuntu2404-ansible:latest
- name: ubuntu2204
image: docker.io/geerlingguy/docker-ubuntu2204-ansible:latest
- name: ubuntu2004
image: docker.io/geerlingguy/docker-ubuntu2004-ansible:latest
- name: debian12
image: docker.io/geerlingguy/docker-debian12-ansible:latest
- name: debian11
image: docker.io/geerlingguy/docker-debian11-ansible:latest
- name: debian10
image: docker.io/geerlingguy/docker-debian10-ansible:latest
- name: fedora40
image: docker.io/geerlingguy/docker-fedora40-ansible:latest
- name: fedora39
image: docker.io/geerlingguy/docker-fedora39-ansible:latest
- name: fedora38
image: docker.io/geerlingguy/docker-fedora38-ansible:latest
- name: centosstream9
image: ghcr.io/bcook254/docker-centosstream9-ansible:latest
- name: centosstream8
image: ghcr.io/bcook254/docker-centosstream8-ansible:latest
steps:
- name: Check out the codebase.
uses: actions/checkout@v4
with:
path: 'bcook254.actrunner'
- name: Set up Python 3.
uses: actions/setup-python@v5
with:
python-version: '3.x'
- name: Install test dependencies.
run: python -m pip install ansible molecule molecule-plugins[docker] docker
- name: Run Molecule tests.
run: molecule test --driver-name docker
env:
PLATFORM_NAME: ${{ matrix.platform.name }}
PLATFORM_IMAGE: ${{ matrix.platform.image }}
PY_COLORS: '1'
ANSIBLE_FORCE_COLOR: '1'
integration:
name: Integration Test
runs-on: ubuntu-latest
steps:
- name: Check out the codebase.
uses: actions/checkout@v4
with:
path: 'bcook254.actrunner'
- name: Set up Python 3.
uses: actions/setup-python@v5
with:
python-version: '3.x'
- name: Install test dependencies.
run: python -m pip install ansible molecule molecule-plugins[docker] docker
- name: Start Gitea instance
id: setup-gitea
run: |
docker-compose -f molecule/integration/docker-compose.yml up -d
args=("exec" "--user" "1000" "gitea")
command=("gitea" "admin" "user" "create" "--admin" "--username" "root" "--password" "password1234" "--email" "[email protected]")
if ! (r=3; while ! docker ${args[*]} ${command[*]}; do ((--r))||exit;sleep 2;done) ; then
exit 1
fi
RUNNER_TOKEN=$(curl -s -X 'GET' \
-H "Authorization: Basic $(echo -n root:password1234 | base64)" \
-H "accept: application/json" 'http://localhost:3000/api/v1/admin/runners/registration-token' | \
jq -r ".token")
echo "gitea_runner_token=${RUNNER_TOKEN}"
echo "gitea_runner_token=${RUNNER_TOKEN}" >> $GITHUB_OUTPUT
- name: Run Molecule tests.
run: molecule test --scenario-name integration --driver-name docker
env:
RUNNER_TOKEN: '${{ steps.setup-gitea.outputs.gitea_runner_token }}'
PY_COLORS: '1'
ANSIBLE_FORCE_COLOR: '1'