Automate registration of runner #19
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[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' | |