Re-use containers and create namespaces for each test.
This commit is contained in:
parent
3dff4bf334
commit
8cffdeda56
|
@ -91,6 +91,9 @@ jobs:
|
|||
|
||||
test-libraries:
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
REUSE_CONTAINERS: true
|
||||
CONTAINER_NAMESPACE: test-server
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4
|
||||
|
@ -141,6 +144,8 @@ jobs:
|
|||
runs-on: budi-tubby-tornado-quad-core-150gb
|
||||
env:
|
||||
DEBUG: testcontainers,testcontainers:exec,testcontainers:build,testcontainers:pull
|
||||
REUSE_CONTAINERS: true
|
||||
CONTAINER_NAMESPACE: test-server
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4
|
||||
|
|
|
@ -26,5 +26,11 @@ export default async function setup() {
|
|||
couchdb = couchdb.withReuse()
|
||||
}
|
||||
|
||||
if (process.env.CONTAINER_NAMESPACE) {
|
||||
couchdb = couchdb.withLabels({
|
||||
"org.testcontainers.namespace": process.env.CONTAINER_NAMESPACE,
|
||||
})
|
||||
}
|
||||
|
||||
await couchdb.start()
|
||||
}
|
||||
|
|
|
@ -23,12 +23,22 @@ function getTestcontainers(): ContainerInfo[] {
|
|||
// We use --format json to make sure the output is nice and machine-readable,
|
||||
// and we use --no-trunc so that the command returns full container IDs so we
|
||||
// can filter on them correctly.
|
||||
return execSync("docker ps --format json --no-trunc")
|
||||
let containers = execSync("docker ps --format json --no-trunc")
|
||||
.toString()
|
||||
.split("\n")
|
||||
.filter(x => x.length > 0)
|
||||
.map(x => JSON.parse(x) as ContainerInfo)
|
||||
.filter(x => x.Labels.includes("org.testcontainers=true"))
|
||||
|
||||
if (process.env.CONTAINER_NAMESPACE) {
|
||||
containers = containers.filter(x =>
|
||||
x.Labels.includes(
|
||||
`org.testcontainers.namespace=${process.env.CONTAINER_NAMESPACE}`
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
return containers
|
||||
}
|
||||
|
||||
export function getContainerByImage(image: string) {
|
||||
|
|
|
@ -67,6 +67,12 @@ export async function rawQuery(ds: Datasource, sql: string): Promise<any> {
|
|||
}
|
||||
|
||||
export async function startContainer(container: GenericContainer) {
|
||||
if (process.env.CONTAINER_NAMESPACE) {
|
||||
container = container.withLabels({
|
||||
"org.testcontainers.namespace": process.env.CONTAINER_NAMESPACE,
|
||||
})
|
||||
}
|
||||
|
||||
if (process.env.REUSE_CONTAINERS) {
|
||||
container = container.withReuse()
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue