Skip to content
This repository was archived by the owner on Nov 23, 2022. It is now read-only.

Commit ba84147

Browse files
committed
Fix traefik update tests, lock traefik version in search too
1 parent 132c8a0 commit ba84147

File tree

2 files changed

+14
-6
lines changed

2 files changed

+14
-6
lines changed

src/routes/version.js

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,16 @@ const pkg = require('../../package.json');
99
// urls for tags request
1010
const exoServerUrl = `https://api.github.com/repos/exoframejs/exoframe-server/releases`;
1111
const traefikUrl = 'https://api.github.com/repos/containous/traefik/releases';
12+
const traefikVersionPrefix = 'v1.7';
1213

13-
const getLatestVersion = async url => {
14+
const getLatestVersion = async (url, versionPrefix) => {
1415
const res = await fetch(url).then(r => r.json());
15-
const latestRelease = res.filter(r => !r.draft && !r.prerelease).shift();
16+
const latestRelease = res
17+
// filter out drafts and pre-releases
18+
.filter(r => !r.draft && !r.prerelease)
19+
// if version prefix is provided - filter out releases that don't match it
20+
.filter(r => (versionPrefix ? r.tag_name.startsWith(versionPrefix) : true))
21+
.shift();
1622
return latestRelease.tag_name;
1723
};
1824

@@ -32,7 +38,7 @@ module.exports = fastify => {
3238
}
3339
// get latest versions
3440
const lastServerTag = await getLatestVersion(exoServerUrl);
35-
const lastTraefikTag = await getLatestVersion(traefikUrl);
41+
const lastTraefikTag = await getLatestVersion(traefikUrl, traefikVersionPrefix);
3642
// reply
3743
reply.code(200).send({
3844
server: pkg.version,

test/update.test.js

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ const {sleep} = require('../src/util');
1414

1515
// old traefik and server images
1616
const traefikTag = 'traefik:1.3-alpine';
17+
const traefikVersion = 'v1.7';
18+
const traefikNewTag = `traefik:${traefikVersion}`;
1719
const serverTag = 'exoframe/server:1.0.0';
1820

1921
// options base
@@ -43,7 +45,7 @@ beforeAll(async () => {
4345
// get all images
4446
const oldImages = await docker.listImages();
4547
// remove current :latest images
46-
const latestTraefik = oldImages.find(img => img.RepoTags && img.RepoTags.includes('traefik:latest'));
48+
const latestTraefik = oldImages.find(img => img.RepoTags && img.RepoTags.includes(traefikNewTag));
4749
if (latestTraefik) {
4850
const limg = docker.getImage(latestTraefik.Id);
4951
await limg.remove({force: true});
@@ -61,7 +63,7 @@ beforeAll(async () => {
6163
// get old one and tag it as latest
6264
oldTraefik = images.find(img => img.RepoTags && img.RepoTags.includes(traefikTag));
6365
const timg = docker.getImage(oldTraefik.Id);
64-
await timg.tag({repo: 'traefik', tag: 'latest'});
66+
await timg.tag({repo: 'traefik', tag: traefikVersion});
6567
oldServer = images.find(img => img.RepoTags && img.RepoTags.includes(serverTag));
6668
const simg = docker.getImage(oldServer.Id);
6769
await simg.tag({repo: 'exoframe/server', tag: 'latest'});
@@ -139,7 +141,7 @@ test('Should update traefik', async done => {
139141

140142
// check docker services
141143
const allImages = await docker.listImages();
142-
const newTraefik = allImages.find(it => it.RepoTags && it.RepoTags.includes('traefik:latest'));
144+
const newTraefik = allImages.find(it => it.RepoTags && it.RepoTags.includes(traefikNewTag));
143145
expect(newTraefik.Id).not.toBe(oldTraefik.Id);
144146

145147
done();

0 commit comments

Comments
 (0)