Repository navigation
Expand file tree
/
Copy pathtest_github_runner_manager.yaml
More file actions
82 lines (80 loc) · 4.38 KB
/
Copy pathtest_github_runner_manager.yaml
File metadata and controls
82 lines (80 loc) · 4.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
name: Tests for github-runner-manager
on:
pull_request:
jobs:
application-unit-tests:
name: Unit tests for github-runner-manager
uses: canonical/operator-workflows/.github/workflows/test.yaml@main
secrets: inherit
with:
# Run on GitHub-hosted Noble (ubuntu-24.04) runners. Pin Python to 3.12: the
# open-ended requires-python (>=3.10) otherwise resolves to the newest available
# interpreter (3.14), whose default multiprocessing start method (forkserver)
# breaks tests that rely on fork (e.g. test_flush_runner_locked).
python-version: "3.12"
working-directory: ./github-runner-manager/
application-integration-tests:
name: Integration tests for github-runner-manager
runs-on: [self-hosted, pfe-ci]
strategy:
fail-fast: false
matrix:
test-module:
- test_debug_ssh
- test_metrics
- test_planner_runner
steps:
- name: Checkout code
uses: actions/checkout@v6.0.2
- name: Setup Astral UV
uses: astral-sh/setup-uv@v7
- name: Install tox with UV
run: uv tool install tox --with tox-uv
- name: configure DockerHub mirror
run: |
echo "{\"registry-mirrors\": [\"$DOCKERHUB_MIRROR\"]}" | sudo tee /etc/docker/daemon.json
sudo systemctl restart docker.service
- name: Run integration tests - ${{ matrix.test-module }}
working-directory: ./github-runner-manager/
env:
# Sensitive env vars are passed through INTEGRATION_TEST_SECRET_ENV_VALUE_<N>;
# see CONTRIBUTING.md for the slot-to-var mapping.
${{ vars.INTEGRATION_TEST_SECRET_ENV_NAME }}: ${{ secrets.INTEGRATION_TEST_SECRET_ENV_VALUE }}
${{ vars.INTEGRATION_TEST_SECRET_ENV_NAME_1 }}: ${{ secrets.INTEGRATION_TEST_SECRET_ENV_VALUE_1 }}
${{ vars.INTEGRATION_TEST_SECRET_ENV_NAME_2 }}: ${{ secrets.INTEGRATION_TEST_SECRET_ENV_VALUE_2 }}
${{ vars.INTEGRATION_TEST_SECRET_ENV_NAME_3 }}: ${{ secrets.INTEGRATION_TEST_SECRET_ENV_VALUE_3 }}
${{ vars.INTEGRATION_TEST_SECRET_ENV_NAME_4 }}: ${{ secrets.INTEGRATION_TEST_SECRET_ENV_VALUE_4 }}
${{ vars.INTEGRATION_TEST_SECRET_ENV_NAME_5 }}: ${{ secrets.INTEGRATION_TEST_SECRET_ENV_VALUE_5 }}
${{ vars.INTEGRATION_TEST_SECRET_ENV_NAME_6 }}: ${{ secrets.INTEGRATION_TEST_SECRET_ENV_VALUE_6 }}
${{ vars.INTEGRATION_TEST_SECRET_ENV_NAME_7 }}: ${{ secrets.INTEGRATION_TEST_SECRET_ENV_VALUE_7 }}
${{ vars.INTEGRATION_TEST_SECRET_ENV_NAME_8 }}: ${{ secrets.INTEGRATION_TEST_SECRET_ENV_VALUE_8 }}
${{ vars.INTEGRATION_TEST_SECRET_ENV_NAME_9 }}: ${{ secrets.INTEGRATION_TEST_SECRET_ENV_VALUE_9 }}
${{ vars.INTEGRATION_TEST_SECRET_ENV_NAME_10 }}: ${{ secrets.INTEGRATION_TEST_SECRET_ENV_VALUE_10 }}
${{ vars.INTEGRATION_TEST_SECRET_ENV_NAME_11 }}: ${{ secrets.INTEGRATION_TEST_SECRET_ENV_VALUE_11 }}
${{ vars.INTEGRATION_TEST_SECRET_ENV_NAME_12 }}: ${{ secrets.INTEGRATION_TEST_SECRET_ENV_VALUE_12 }}
run: |
tox -e integration -- -v --tb=native -s \
tests/integration/${{ matrix.test-module }}.py \
--github-repository=${{ vars.INTEGRATION_TEST_PATH }} \
--https-proxy="${{ vars.INTEGRATION_TEST_HTTPS_PROXY }}" \
--http-proxy="${{ vars.INTEGRATION_TEST_HTTP_PROXY }}" \
--no-proxy="${{ vars.INTEGRATION_TEST_NO_PROXY }}" \
--openstack-https-proxy="${{ vars.INTEGRATION_TEST_OPENSTACK_HTTPS_PROXY }}" \
--openstack-http-proxy="${{ vars.INTEGRATION_TEST_OPENSTACK_HTTP_PROXY }}" \
--openstack-no-proxy="${{ vars.INTEGRATION_TEST_OPENSTACK_NO_PROXY }}" \
--openstack-flavor-name="${{ vars.INTEGRATION_TEST_OPENSTACK_FLAVOR_NAME }}" \
--openstack-image-id="${{ vars.INTEGRATION_TEST_IMAGE_ID }}" \
--debug-log-dir="/tmp/github-runner-manager-test-logs"
- name: Tmate session for debugging
if: ${{ failure() }}
uses: canonical/action-tmate@main
- name: Print debug logs
if: ${{ failure() }}
run: |
echo "Printing debug logs from /tmp/github-runner-manager-test-logs"
ls -l /tmp/github-runner-manager-test-logs
for log_file in /tmp/github-runner-manager-test-logs/*; do
echo "===== Contents of $log_file ====="
cat "$log_file"
echo "================================="
done