@@ -18,110 +18,25 @@ jobs:
1818 test :
1919 runs-on : ${{ inputs.runner }}
2020 steps :
21- - name : Docker rootless setup 1/2
21+ - name : Docker rootless setup
2222 if : ${{ inputs.container-runtime == 'docker-rootless' }}
23- 24- - name : Docker rootless setup 2/2
25- if : ${{ inputs.container-runtime == 'docker-rootless' }}
26- run : |
27- sudo rm -rf /var/run/docker.sock
28- echo "CI_ROOTLESS=true" >> $GITHUB_ENV
23+ uses : ./.github/actions/docker-rootless-setup
2924
3025 - name : Podman setup
3126 if : ${{ inputs.container-runtime == 'podman' }}
32- run : |
33- curl -fsSL "https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/unstable/xUbuntu_$(lsb_release -rs)/Release.key" | gpg --dearmor | sudo tee /etc/apt/keyrings/devel_kubic_libcontainers_unstable.gpg > /dev/null
34- echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/devel_kubic_libcontainers_unstable.gpg] https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/unstable/xUbuntu_$(lsb_release -rs)/ /" | sudo tee /etc/apt/sources.list.d/devel:kubic:libcontainers:unstable.list > /dev/null
35- sudo apt-get update
36- sudo apt-get -y install podman
37- systemctl enable --now --user podman podman.socket
38- podman info
39- echo "DOCKER_HOST=unix://${XDG_RUNTIME_DIR}/podman/podman.sock" >> $GITHUB_ENV
40- echo "CI_ROOTLESS=true" >> $GITHUB_ENV
41- echo "CI_PODMAN=true" >> $GITHUB_ENV
27+ uses : ./.github/actions/podman-setup
4228
43- - name : Colima constraints
44- if : ${{ inputs.container-runtime == 'colima' && !startsWith(inputs.runner, 'macos') }}
45- run : |
46- run: echo "::error::Colima is only supported on macOS"
47- exit 1
4829 - name : Colima setup
4930 if : ${{ inputs.container-runtime == 'colima' }}
50- run : |
51- brew install docker docker-compose colima
52- colima start --cpu 3 --memory 14 --disk 14 --runtime docker
53- colima status
54- colima --version
55- echo "DOCKER_HOST=unix://${HOME}/.colima/default/docker.sock" >> $GITHUB_ENV
56- echo "TESTCONTAINERS_DOCKER_SOCKET_OVERRIDE=/var/run/docker.sock" >> $GITHUB_ENV
57- echo "NODE_OPTIONS=--dns-result-order=ipv4first" >> $GITHUB_ENV
31+ uses : ./.github/actions/colima-setup
32+ with :
33+ runner : ${{ inputs.runner }}
5834
59- - name : Rancher Desktop constraints
60- if : ${{ inputs.container-runtime == 'rancher-desktop' && !startsWith(inputs.runner, 'macos') }}
61- run : |
62- run: echo "::error::Rancher Desktop is only supported on macOS"
63- exit 1
6435 - name : Rancher Desktop setup
6536 if : ${{ inputs.container-runtime == 'rancher-desktop' }}
66- run : |
67- brew install docker docker-compose
68- brew install --cask rancher
69-
70- TIMEOUT_SECS_CLI_TOOLS=60
71- TIMEOUT_SECS_USER_SOCKET=300
72-
73- echo "Open Rancher Desktop app"
74- open "/Applications/Rancher Desktop.app"
75-
76- echo "Wait max of ${TIMEOUT_SECS_CLI_TOOLS}s for Rancher Desktop to create CLI tools"
77- for i in $(seq 1 ${TIMEOUT_SECS_CLI_TOOLS}); do
78- if [ -e "$HOME/.rd/bin/rdctl" ]; then
79- echo "Rancher Desktop CLI tools created after ${i}s"
80- break
81- fi
82- sleep 1
83- done
84-
85- if [ ! -e "$HOME/.rd/bin/rdctl" ]; then
86- echo "Rancher Desktop CLI tools not found"
87- exit 1
88- fi
89-
90- echo "Rancher Desktop initialised successfully, now configure the container runtime"
91- $HOME/.rd/bin/rdctl set \
92- --container-engine.name=moby \
93- --application.admin-access=false \
94- --kubernetes.enabled=false \
95- --application.start-in-background=true \
96- --application.path-management-strategy=manual \
97- --virtual-machine.number-cpus=3 \
98- --virtual-machine.memory-in-gb=14 \
99- || true
100-
101- echo "Restart Rancher Desktop"
102- $HOME/.rd/bin/rdctl shutdown
103- $HOME/.rd/bin/rdctl start
104-
105- echo "Wait max of ${TIMEOUT_SECS_USER_SOCKET}s for Rancher socket"
106-
107- for i in $(seq 1 ${TIMEOUT_SECS_USER_SOCKET}); do
108- if [ -e "$HOME/.rd/docker.sock" ]; then
109- echo "Rancher Desktop socket created after ${i}s"
110- break
111- fi
112- sleep 1
113- done
114-
115- if [ ! -e "$HOME/.rd/docker.sock" ]; then
116- echo "Rancher Desktop socket not found"
117- exit 1
118- fi
119-
120- echo "{}" > $HOME/.docker/config.json
121-
122- echo "DOCKER_HOST=unix://${HOME}/.rd/docker.sock" >> $GITHUB_ENV
123- echo "TESTCONTAINERS_DOCKER_SOCKET_OVERRIDE=/var/run/docker.sock" >> $GITHUB_ENV
124- echo "NODE_OPTIONS=--dns-result-order=ipv4first" >> $GITHUB_ENV
37+ uses : ./.github/actions/rancher-desktop-setup
38+ with :
39+ runner : ${{ inputs.runner }}
12540
12641 - name : Code checkout
12742 uses : actions/checkout@v4
13550 workspace : " ${{ inputs.workspace }}"
13651
13752 - name : Run tests
138- run : npm run test:ci -- --coverage.include=${{ steps.npm-install.outputs.workspace_path }} ${{ steps.npm-install.outputs.workspace_path }}
53+ run :
54+ npm run test:ci -- --coverage.include=${{ steps.npm-install.outputs.workspace_path }} ${{ steps.npm-install.outputs.workspace_path }}
0 commit comments