Automate registration of runner #11
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
--- | |
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[podman] | |
- name: Start Gitea instance | |
id: setup-gitea | |
run: | | |
podman network \ | |
create \ | |
gitea | |
podman create \ | |
--net gitea \ | |
--name gitea \ | |
-e USER_UID=1000 \ | |
-e USER_GID=1000 \ | |
-e GITEA__security__INSTALL_LOCK=true \ | |
-p 3000:3000 \ | |
-p 222:22 \ | |
gitea/gitea:1.22-nightly-rootless | |
podman start \ | |
gitea | |
podman exec \ | |
--user 1000 \ | |
gitea \ | |
gitea admin user create --admin --username root --password password1234 --email [email protected] | |
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}" >> $GITHUB_OUTPUT | |
- name: Run Molecule tests. | |
run: molecule test --scenario-name integration | |
env: | |
RUNNER_TOKEN: '${{ steps.setup-gitea.outputs.gitea_runner_token }}' | |
PY_COLORS: '1' | |
ANSIBLE_FORCE_COLOR: '1' | |