Skip to content

Commit 153f570

Browse files
Merge branch 'main' into ubuntu-24.04
2 parents 231c8a8 + 520639b commit 153f570

222 files changed

Lines changed: 12507 additions & 10833 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.devcontainer/devcontainer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
// Features to add to the dev container. More info: https://containers.dev/features.
99
"features": {
1010
"ghcr.io/devcontainers/features/node:1": {
11-
"version": "18"
11+
"version": "24"
1212
},
1313
"ghcr.io/devcontainers/features/docker-outside-of-docker:1": {}
1414
},
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
name: "Colima Setup"
2+
description: "Sets up Colima"
3+
inputs:
4+
runner:
5+
description: "The runner type (e.g., macos-latest)"
6+
required: true
7+
runs:
8+
using: "composite"
9+
steps:
10+
- name: Colima constraints
11+
shell: bash
12+
run: |
13+
if [[ ! "${{ inputs.runner }}" =~ ^macos.* ]]; then
14+
echo "::error::Colima is only supported on macOS"
15+
exit 1
16+
fi
17+
- name: Colima setup
18+
shell: bash
19+
run: |
20+
brew install docker docker-compose colima
21+
colima start --cpu 3 --memory 14 --disk 14 --runtime docker
22+
colima status
23+
colima --version
24+
echo "DOCKER_HOST=unix://${HOME}/.colima/default/docker.sock" >> $GITHUB_ENV
25+
echo "TESTCONTAINERS_DOCKER_SOCKET_OVERRIDE=/var/run/docker.sock" >> $GITHUB_ENV
26+
echo "NODE_OPTIONS=--dns-result-order=ipv4first" >> $GITHUB_ENV
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
name: "Docker Rootless Setup"
2+
description: "Sets up Docker in rootless mode"
3+
runs:
4+
using: "composite"
5+
steps:
6+
- name: Docker rootless setup 1/2
7+
uses: ScribeMD/rootless-docker@0.2.2
8+
- name: Docker rootless setup 2/2
9+
shell: bash
10+
run: |
11+
sudo rm -rf /var/run/docker.sock
12+
echo "CI_ROOTLESS=true" >> $GITHUB_ENV
Lines changed: 47 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,68 +1,65 @@
1-
name: 'NPM Setup'
2-
description: 'Sets up Node.js and installs NPM dependencies with caching'
1+
name: "NPM Setup"
2+
description: "Sets up Node.js and installs NPM dependencies with caching"
33

44
inputs:
55
runner:
6-
description: 'Runner to use'
6+
description: "Runner to use"
77
required: true
88
node-version:
9-
description: 'Node.js version to use'
9+
description: "Node.js version to use"
1010
required: true
1111
workspace:
12-
description: 'Key for the cache'
12+
description: "Key for the cache"
1313
required: true
1414

1515
outputs:
1616
workspace_path:
1717
description: "Full path to the workspace directory"
1818
value: ${{ steps.set-env.outputs.workspace_path }}
19-
19+
2020
runs:
2121
using: "composite"
2222
steps:
23-
- name: Install NodeJS ${{ inputs.node-version }}
24-
uses: actions/setup-node@v4
25-
with:
26-
node-version: ${{ inputs.node-version }}
27-
28-
- name: Set cache configuration
29-
shell: bash
30-
id: set-env
31-
run: |
32-
if [ "${{ inputs.workspace }}" = "testcontainers" ]; then
33-
echo "CACHE_PATHS<<EOF" >> $GITHUB_ENV
34-
echo "node_modules" >> $GITHUB_ENV
35-
echo "packages/testcontainers/node_modules" >> $GITHUB_ENV
36-
echo "EOF" >> $GITHUB_ENV
37-
echo "WORKSPACE_PATH=packages/testcontainers" >> $GITHUB_ENV
38-
echo "workspace_path=packages/testcontainers" >> "$GITHUB_OUTPUT"
39-
else
40-
echo "CACHE_PATHS<<EOF" >> $GITHUB_ENV
41-
echo "node_modules" >> $GITHUB_ENV
42-
echo "packages/testcontainers/node_modules" >> $GITHUB_ENV
43-
echo "packages/modules/${{ inputs.workspace }}/node_modules" >> $GITHUB_ENV
44-
echo "EOF" >> $GITHUB_ENV
45-
echo "WORKSPACE_PATH=packages/modules/${{ inputs.workspace }}" >> $GITHUB_ENV
46-
echo "workspace_path=packages/modules/${{ inputs.workspace }}" >> "$GITHUB_OUTPUT"
47-
fi
48-
49-
- uses: actions/cache/restore@v4
50-
id: npm-cache
51-
with:
52-
path: ${{ env.CACHE_PATHS }}
53-
key: ${{ inputs.runner }}-node-${{ inputs.node-version }}-${{ inputs.workspace }}-${{ hashFiles('package-lock.json', 'packages/testcontainers/package-lock.json', format('packages/modules/{0}/package-lock.json', inputs.workspace)) }}
54-
restore-keys: |
55-
${{ inputs.runner }}-node-${{ inputs.node-version }}-${{ inputs.workspace }}-
56-
${{ inputs.runner }}-node-${{ inputs.node-version }}-
23+
- name: Install NodeJS ${{ inputs.node-version }}
24+
uses: actions/setup-node@v4
25+
with:
26+
node-version: ${{ inputs.node-version }}
27+
28+
- name: Set cache configuration
29+
shell: bash
30+
id: set-env
31+
run: |
32+
if [ "${{ inputs.workspace }}" = "testcontainers" ]; then
33+
echo "CACHE_PATHS<<EOF" >> $GITHUB_ENV
34+
echo "node_modules" >> $GITHUB_ENV
35+
echo "packages/testcontainers/node_modules" >> $GITHUB_ENV
36+
echo "EOF" >> $GITHUB_ENV
37+
echo "WORKSPACE_PATH=packages/testcontainers" >> $GITHUB_ENV
38+
echo "workspace_path=packages/testcontainers" >> "$GITHUB_OUTPUT"
39+
else
40+
echo "CACHE_PATHS<<EOF" >> $GITHUB_ENV
41+
echo "node_modules" >> $GITHUB_ENV
42+
echo "packages/testcontainers/node_modules" >> $GITHUB_ENV
43+
echo "packages/modules/${{ inputs.workspace }}/node_modules" >> $GITHUB_ENV
44+
echo "EOF" >> $GITHUB_ENV
45+
echo "WORKSPACE_PATH=packages/modules/${{ inputs.workspace }}" >> $GITHUB_ENV
46+
echo "workspace_path=packages/modules/${{ inputs.workspace }}" >> "$GITHUB_OUTPUT"
47+
fi
48+
49+
- uses: actions/cache/restore@v4
50+
id: npm-cache
51+
with:
52+
path: ${{ env.CACHE_PATHS }}
53+
key: ${{ inputs.runner }}-node-${{ inputs.node-version }}-${{ inputs.workspace }}-${{ hashFiles('package-lock.json') }}
5754

58-
- name: Install dependencies
59-
if: steps.npm-cache.outputs.cache-hit != 'true'
60-
shell: bash
61-
run: npm ci --workspace ${{ env.WORKSPACE_PATH }} --include-workspace-root
55+
- name: Install dependencies
56+
if: steps.npm-cache.outputs.cache-hit != 'true'
57+
shell: bash
58+
run: npm ci --workspace ${{ env.WORKSPACE_PATH }} --include-workspace-root
6259

63-
- name: Cache npm
64-
if: steps.npm-cache.outputs.cache-hit != 'true'
65-
uses: actions/cache/save@v4
66-
with:
67-
path: ${{ env.CACHE_PATHS }}
68-
key: ${{ steps.npm-cache.outputs.cache-primary-key }}
60+
- name: Cache npm
61+
if: steps.npm-cache.outputs.cache-hit != 'true'
62+
uses: actions/cache/save@v4
63+
with:
64+
path: ${{ env.CACHE_PATHS }}
65+
key: ${{ steps.npm-cache.outputs.cache-primary-key }}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
name: "Podman Setup"
2+
description: "Sets up Podman"
3+
runs:
4+
using: "composite"
5+
steps:
6+
- name: Podman setup
7+
shell: bash
8+
run: |
9+
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
10+
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
11+
sudo apt-get update
12+
sudo apt-get -y install podman
13+
systemctl enable --now --user podman podman.socket
14+
podman info
15+
echo "DOCKER_HOST=unix://${XDG_RUNTIME_DIR}/podman/podman.sock" >> $GITHUB_ENV
16+
echo "CI_ROOTLESS=true" >> $GITHUB_ENV
17+
echo "CI_PODMAN=true" >> $GITHUB_ENV
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
name: "Rancher Desktop Setup"
2+
description: "Sets up Rancher Desktop"
3+
inputs:
4+
runner:
5+
description: "The runner type (e.g., macos-latest)"
6+
required: true
7+
runs:
8+
using: "composite"
9+
steps:
10+
- name: Rancher Desktop constraints
11+
shell: bash
12+
run: |
13+
if [[ ! "${{ inputs.runner }}" =~ ^macos.* ]]; then
14+
echo "::error::Rancher Desktop is only supported on macOS"
15+
exit 1
16+
fi
17+
- name: Rancher Desktop setup
18+
shell: bash
19+
run: |
20+
brew install docker docker-compose
21+
brew install --cask rancher
22+
23+
TIMEOUT_SECS_CLI_TOOLS=60
24+
TIMEOUT_SECS_USER_SOCKET=300
25+
26+
echo "Open Rancher Desktop app"
27+
open "/Applications/Rancher Desktop.app"
28+
29+
echo "Wait max of ${TIMEOUT_SECS_CLI_TOOLS}s for Rancher Desktop to create CLI tools"
30+
for i in $(seq 1 ${TIMEOUT_SECS_CLI_TOOLS}); do
31+
if [ -e "$HOME/.rd/bin/rdctl" ]; then
32+
echo "Rancher Desktop CLI tools created after ${i}s"
33+
break
34+
fi
35+
sleep 1
36+
done
37+
38+
if [ ! -e "$HOME/.rd/bin/rdctl" ]; then
39+
echo "Rancher Desktop CLI tools not found"
40+
exit 1
41+
fi
42+
43+
echo "Rancher Desktop initialised successfully, now configure the container runtime"
44+
$HOME/.rd/bin/rdctl set \
45+
--container-engine.name=moby \
46+
--application.admin-access=false \
47+
--kubernetes.enabled=false \
48+
--application.start-in-background=true \
49+
--application.path-management-strategy=manual \
50+
--virtual-machine.number-cpus=3 \
51+
--virtual-machine.memory-in-gb=14 \
52+
|| true
53+
54+
echo "Restart Rancher Desktop"
55+
$HOME/.rd/bin/rdctl shutdown
56+
$HOME/.rd/bin/rdctl start
57+
58+
echo "Wait max of ${TIMEOUT_SECS_USER_SOCKET}s for Rancher socket"
59+
60+
for i in $(seq 1 ${TIMEOUT_SECS_USER_SOCKET}); do
61+
if [ -e "$HOME/.rd/docker.sock" ]; then
62+
echo "Rancher Desktop socket created after ${i}s"
63+
break
64+
fi
65+
sleep 1
66+
done
67+
68+
if [ ! -e "$HOME/.rd/docker.sock" ]; then
69+
echo "Rancher Desktop socket not found"
70+
exit 1
71+
fi
72+
73+
echo "{}" > $HOME/.docker/config.json
74+
75+
echo "DOCKER_HOST=unix://${HOME}/.rd/docker.sock" >> $GITHUB_ENV
76+
echo "TESTCONTAINERS_DOCKER_SOCKET_OVERRIDE=/var/run/docker.sock" >> $GITHUB_ENV
77+
echo "NODE_OPTIONS=--dns-result-order=ipv4first" >> $GITHUB_ENV

.github/dependabot.yml

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
version: 2
2+
3+
updates:
4+
- package-ecosystem: "npm"
5+
directories:
6+
- "/"
7+
- "/packages/testcontainers"
8+
- "/packages/modules/arangodb"
9+
- "/packages/modules/azurecosmosdb"
10+
- "/packages/modules/azurite"
11+
- "/packages/modules/cassandra"
12+
- "/packages/modules/chromadb"
13+
- "/packages/modules/clickhouse"
14+
- "/packages/modules/cockroachdb"
15+
- "/packages/modules/couchbase"
16+
- "/packages/modules/elasticsearch"
17+
- "/packages/modules/etcd"
18+
- "/packages/modules/gcloud"
19+
- "/packages/modules/hivemq"
20+
- "/packages/modules/k3s"
21+
- "/packages/modules/kafka"
22+
- "/packages/modules/localstack"
23+
- "/packages/modules/mariadb"
24+
- "/packages/modules/minio"
25+
- "/packages/modules/mockserver"
26+
- "/packages/modules/mongodb"
27+
- "/packages/modules/mssqlserver"
28+
- "/packages/modules/mysql"
29+
- "/packages/modules/nats"
30+
- "/packages/modules/neo4j"
31+
- "/packages/modules/ollama"
32+
- "/packages/modules/postgresql"
33+
- "/packages/modules/qdrant"
34+
- "/packages/modules/rabbitmq"
35+
- "/packages/modules/redis"
36+
- "/packages/modules/redpanda"
37+
- "/packages/modules/scylladb"
38+
- "/packages/modules/selenium"
39+
- "/packages/modules/toxiproxy"
40+
- "/packages/modules/valkey"
41+
- "/packages/modules/weaviate"
42+
schedule:
43+
interval: "weekly"
44+
labels:
45+
- "dependencies"
46+
- "javascript"
47+
groups:
48+
dependencies:
49+
patterns:
50+
- "*"
51+
52+
- package-ecosystem: "docker"
53+
directories:
54+
- "/packages/modules/arangodb"
55+
- "/packages/modules/azurecosmosdb"
56+
- "/packages/modules/azurite"
57+
- "/packages/modules/cassandra"
58+
- "/packages/modules/chromadb"
59+
- "/packages/modules/clickhouse"
60+
- "/packages/modules/cockroachdb"
61+
- "/packages/modules/couchbase"
62+
- "/packages/modules/elasticsearch"
63+
- "/packages/modules/etcd"
64+
- "/packages/modules/gcloud"
65+
- "/packages/modules/hivemq"
66+
- "/packages/modules/k3s"
67+
- "/packages/modules/kafka"
68+
- "/packages/modules/localstack"
69+
- "/packages/modules/mariadb"
70+
- "/packages/modules/minio"
71+
- "/packages/modules/mockserver"
72+
- "/packages/modules/mongodb"
73+
- "/packages/modules/mssqlserver"
74+
- "/packages/modules/mysql"
75+
- "/packages/modules/nats"
76+
- "/packages/modules/neo4j"
77+
- "/packages/modules/ollama"
78+
- "/packages/modules/postgresql"
79+
- "/packages/modules/qdrant"
80+
- "/packages/modules/rabbitmq"
81+
- "/packages/modules/redis"
82+
- "/packages/modules/redpanda"
83+
- "/packages/modules/scylladb"
84+
- "/packages/modules/selenium"
85+
- "/packages/modules/toxiproxy"
86+
- "/packages/modules/valkey"
87+
- "/packages/modules/weaviate"
88+
schedule:
89+
interval: "weekly"
90+
labels:
91+
- "dependencies"
92+
- "docker"
93+
groups:
94+
dependencies:
95+
patterns:
96+
- "*"
97+
98+
- package-ecosystem: "github-actions"
99+
directory: "/"
100+
schedule:
101+
interval: "weekly"
102+
labels:
103+
- "dependencies"
104+
- "github_actions"
105+
groups:
106+
actions:
107+
patterns:
108+
- "*"

0 commit comments

Comments
 (0)