Skip to content

Commit cc46687

Browse files
authored
chore: Use version from Dockerfile. (#200)
1 parent 724eb04 commit cc46687

13 files changed

+61
-9
lines changed

.github/dependabot.yml

+12
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,18 @@ updates:
1616
prefix: chore
1717
prefix-development: chore
1818

19+
- package-ecosystem: docker
20+
directory: "/docker"
21+
schedule:
22+
interval: weekly
23+
open-pull-requests-limit: 10
24+
assignees:
25+
- thenativeweb/internal_dev
26+
labels:
27+
- Dependencies
28+
commit-message:
29+
prefix: chore
30+
1931
- package-ecosystem: "github-actions"
2032
directory: "/"
2133
schedule:

.npmignore

+2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
.github/
2+
docker/
23
src/
4+
35
.gitignore
46
.npmignore
57
biome.json

docker/Dockerfile

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
FROM thenativeweb/eventsourcingdb:0.118.10

src/getImageVersionFromDockerfile.ts

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import fs from 'node:fs';
2+
import path from 'node:path';
3+
4+
const versionRegex = /^FROM\sthenativeweb\/eventsourcingdb:(.+)$/m;
5+
6+
const getImageVersionFromDockerfile = (): string => {
7+
const dockerfile = path.join(__dirname, '..', 'docker', 'Dockerfile');
8+
const data = fs.readFileSync(dockerfile, 'utf-8');
9+
10+
const matches = data.match(versionRegex);
11+
12+
if (!matches) {
13+
throw new Error('Failed to find image version in Dockerfile');
14+
}
15+
16+
return matches[1];
17+
};
18+
19+
export { getImageVersionFromDockerfile };

src/observeEvents.test.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,14 @@ import { afterEach, beforeEach, suite, test } from 'node:test';
33
import type { Event } from './Event.js';
44
import type { EventCandidate } from './EventCandidate.js';
55
import { EventSourcingDbContainer } from './EventSourcingDbContainer.js';
6+
import { getImageVersionFromDockerfile } from './getImageVersionFromDockerfile.js';
67

78
suite('observeEvents', { timeout: 30_000 }, () => {
89
let container: EventSourcingDbContainer;
910

1011
beforeEach(async () => {
11-
container = new EventSourcingDbContainer();
12+
const imageVersion = getImageVersionFromDockerfile();
13+
container = new EventSourcingDbContainer().withImageTag(imageVersion);
1214
await container.start();
1315
});
1416

src/ping.test.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,14 @@ import assert from 'node:assert/strict';
22
import { afterEach, beforeEach, suite, test } from 'node:test';
33
import { Client } from './Client.js';
44
import { EventSourcingDbContainer } from './EventSourcingDbContainer.js';
5+
import { getImageVersionFromDockerfile } from './getImageVersionFromDockerfile.js';
56

67
suite('ping', { timeout: 30_000 }, () => {
78
let container: EventSourcingDbContainer;
89

910
beforeEach(async () => {
10-
container = new EventSourcingDbContainer();
11+
const imageVersion = getImageVersionFromDockerfile();
12+
container = new EventSourcingDbContainer().withImageTag(imageVersion);
1113
await container.start();
1214
});
1315

src/readEventTypes.test.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,14 @@ import { afterEach, beforeEach, suite, test } from 'node:test';
33
import type { EventCandidate } from './EventCandidate.js';
44
import { EventSourcingDbContainer } from './EventSourcingDbContainer.js';
55
import type { EventType } from './EventType.js';
6+
import { getImageVersionFromDockerfile } from './getImageVersionFromDockerfile.js';
67

78
suite('readEventTypes', { timeout: 20_000 }, () => {
89
let container: EventSourcingDbContainer;
910

1011
beforeEach(async () => {
11-
container = new EventSourcingDbContainer();
12+
const imageVersion = getImageVersionFromDockerfile();
13+
container = new EventSourcingDbContainer().withImageTag(imageVersion);
1214
await container.start();
1315
});
1416

src/readEvents.test.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,14 @@ import { afterEach, beforeEach, suite, test } from 'node:test';
33
import type { Event } from './Event.js';
44
import type { EventCandidate } from './EventCandidate.js';
55
import { EventSourcingDbContainer } from './EventSourcingDbContainer.js';
6+
import { getImageVersionFromDockerfile } from './getImageVersionFromDockerfile.js';
67

78
suite('readEvents', { timeout: 30_000 }, () => {
89
let container: EventSourcingDbContainer;
910

1011
beforeEach(async () => {
11-
container = new EventSourcingDbContainer();
12+
const imageVersion = getImageVersionFromDockerfile();
13+
container = new EventSourcingDbContainer().withImageTag(imageVersion);
1214
await container.start();
1315
});
1416

src/readSubjects.test.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,14 @@ import assert from 'node:assert/strict';
22
import { afterEach, beforeEach, suite, test } from 'node:test';
33
import type { EventCandidate } from './EventCandidate.js';
44
import { EventSourcingDbContainer } from './EventSourcingDbContainer.js';
5+
import { getImageVersionFromDockerfile } from './getImageVersionFromDockerfile.js';
56

67
suite('readSubjects', { timeout: 30_000 }, () => {
78
let container: EventSourcingDbContainer;
89

910
beforeEach(async () => {
10-
container = new EventSourcingDbContainer();
11+
const imageVersion = getImageVersionFromDockerfile();
12+
container = new EventSourcingDbContainer().withImageTag(imageVersion);
1113
await container.start();
1214
});
1315

src/registerEventSchema.test.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
import assert from 'node:assert/strict';
22
import { afterEach, beforeEach, suite, test } from 'node:test';
33
import { EventSourcingDbContainer } from './EventSourcingDbContainer.js';
4+
import { getImageVersionFromDockerfile } from './getImageVersionFromDockerfile.js';
45

56
suite('registerEventSchema', { timeout: 30_000 }, () => {
67
let container: EventSourcingDbContainer;
78

89
beforeEach(async () => {
9-
container = new EventSourcingDbContainer();
10+
const imageVersion = getImageVersionFromDockerfile();
11+
container = new EventSourcingDbContainer().withImageTag(imageVersion);
1012
await container.start();
1113
});
1214

src/runEventQlQuery.test.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,14 @@ import assert from 'node:assert/strict';
22
import { afterEach, beforeEach, suite, test } from 'node:test';
33
import type { EventCandidate } from './EventCandidate.js';
44
import { EventSourcingDbContainer } from './EventSourcingDbContainer.js';
5+
import { getImageVersionFromDockerfile } from './getImageVersionFromDockerfile.js';
56

67
suite('runEventQlQuery', { timeout: 30_000 }, () => {
78
let container: EventSourcingDbContainer;
89

910
beforeEach(async () => {
10-
container = new EventSourcingDbContainer();
11+
const imageVersion = getImageVersionFromDockerfile();
12+
container = new EventSourcingDbContainer().withImageTag(imageVersion);
1113
await container.start();
1214
});
1315

src/verifyApiToken.test.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,14 @@ import assert from 'node:assert/strict';
22
import { afterEach, beforeEach, suite, test } from 'node:test';
33
import { Client } from './Client.js';
44
import { EventSourcingDbContainer } from './EventSourcingDbContainer.js';
5+
import { getImageVersionFromDockerfile } from './getImageVersionFromDockerfile.js';
56

67
suite('verifyApiToken', { timeout: 30_000 }, () => {
78
let container: EventSourcingDbContainer;
89

910
beforeEach(async () => {
10-
container = new EventSourcingDbContainer();
11+
const imageVersion = getImageVersionFromDockerfile();
12+
container = new EventSourcingDbContainer().withImageTag(imageVersion);
1113
await container.start();
1214
});
1315

src/writeEvents.test.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,16 @@ import assert from 'node:assert/strict';
22
import { afterEach, beforeEach, suite, test } from 'node:test';
33
import type { EventCandidate } from './EventCandidate.js';
44
import { EventSourcingDbContainer } from './EventSourcingDbContainer.js';
5+
import { getImageVersionFromDockerfile } from './getImageVersionFromDockerfile.js';
56
import { isSubjectOnEventId } from './isSubjectOnEventId.js';
67
import { isSubjectPristine } from './isSubjectPristine.js';
78

89
suite('writeEvents', { timeout: 30_000 }, () => {
910
let container: EventSourcingDbContainer;
1011

1112
beforeEach(async () => {
12-
container = new EventSourcingDbContainer();
13+
const imageVersion = getImageVersionFromDockerfile();
14+
container = new EventSourcingDbContainer().withImageTag(imageVersion);
1315
await container.start();
1416
});
1517

0 commit comments

Comments
 (0)