Skip to content

Commit d170ce1

Browse files
authored
Merge pull request #1224 from crazy-max/docker-update-undock
docker(install): update undock to 0.14.0
2 parents fd07401 + f80a46e commit d170ce1

4 files changed

Lines changed: 39 additions & 5 deletions

File tree

.github/workflows/update-deps.yml

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ jobs:
161161
}
162162
163163
function tsConstStringPattern(key) {
164-
return new RegExp(`^(const ${escapeRegExp(key)} = ')([^']*)(';)$`, 'm');
164+
return new RegExp(`^((?:export )?const ${escapeRegExp(key)} = ')([^']*)(';)$`, 'm');
165165
}
166166
167167
const dependencyConfigs = {
@@ -259,14 +259,21 @@ jobs:
259259
sourceUrl: 'https://github.com/docker/actions-toolkit/blob/main/.github/undock-releases.json',
260260
async resolve() {
261261
const tag = readLatestTag('.github/undock-releases.json');
262+
const version = stripLeadingV(tag);
262263
return {
263264
titleValue: tag,
264265
targets: [
265266
{
266267
path: 'dev.Dockerfile',
267268
key: 'UNDOCK_VERSION',
268-
value: stripLeadingV(tag),
269+
value: version,
269270
pattern: dockerfileArgPattern('UNDOCK_VERSION')
271+
},
272+
{
273+
path: 'src/docker/assets.ts',
274+
key: 'limaUndockVersion',
275+
value: version,
276+
pattern: tsConstStringPattern('limaUndockVersion')
270277
}
271278
]
272279
};

__tests__/docker/install.test.ts

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,14 @@
1616

1717
import {describe, expect, vi, test, beforeEach, afterEach, it} from 'vitest';
1818
import fs from 'fs';
19+
import handlebars from 'handlebars';
1920
import os from 'os';
2021
import path from 'path';
2122
import * as rimraf from 'rimraf';
2223

2324
import {mockArch, mockPlatform} from '../.helpers/os.js';
2425

26+
import {limaYamlData, limaUndockVersion} from '../../src/docker/assets.js';
2527
import {Install, InstallSourceArchive, InstallSourceImage} from '../../src/docker/install.js';
2628

2729
const tmpDir = fs.mkdtempSync(path.join(process.env.TEMP || os.tmpdir(), 'docker-install-'));
@@ -128,3 +130,25 @@ aarch64:https://cloud-images.ubuntu.com/releases/23.10/release-20231011/ubuntu-2
128130
]);
129131
});
130132
});
133+
134+
describe('limaYamlData', () => {
135+
it('renders the pinned undock version in the release URL', () => {
136+
const instance = handlebars.create();
137+
instance.registerHelper('stringify', function (obj) {
138+
return new instance.SafeString(JSON.stringify(obj));
139+
});
140+
const limaCfg = instance.compile(limaYamlData)({
141+
customImages: [],
142+
daemonConfig: {},
143+
dockerSock: '/tmp/docker.sock',
144+
gitCommit: 'master',
145+
srcType: 'image',
146+
srcArchiveVersion: '29.0.0',
147+
srcArchiveChannel: 'stable',
148+
srcImageTag: '29.0.0',
149+
undockVersion: limaUndockVersion
150+
});
151+
152+
expect(limaCfg).toContain(`url="https://github.com/crazy-max/undock/releases/download/v${limaUndockVersion}/undock_${limaUndockVersion}_linux_$arch.tar.gz"`);
153+
});
154+
});

src/docker/assets.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ export const limaYaml = (): string => {
2929
return get('lima.yaml', limaYamlData);
3030
};
3131

32+
export const limaUndockVersion = '0.14.0';
33+
3234
const get = (filename: string, data: string, mode?: string): string => {
3335
const assetPath = Context.tmpName({
3436
template: `docker-asset-XXXXXX-${filename}`,
@@ -283,7 +285,7 @@ provision:
283285
x86_64) arch=amd64;;
284286
aarch64) arch=arm64;;
285287
esac
286-
url="https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_$arch.tar.gz"
288+
url="https://github.com/crazy-max/undock/releases/download/v{{undockVersion}}/undock_{{undockVersion}}_linux_$arch.tar.gz"
287289
288290
wget "$url" -O /tmp/undock.tar.gz
289291
tar -C /usr/local/bin -xvf /tmp/undock.tar.gz

src/docker/install.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ import {Regctl} from '../regclient/regctl.js';
3333
import {Undock} from '../undock/undock.js';
3434
import {Util} from '../util.js';
3535

36-
import {limaYamlData, dockerServiceLogsPs1, setupDockerWinPs1} from './assets.js';
36+
import {limaYamlData, dockerServiceLogsPs1, setupDockerWinPs1, limaUndockVersion} from './assets.js';
3737

3838
import {GitHubRelease} from '../types/github/github.js';
3939
import {Image} from '../types/oci/config.js';
@@ -295,7 +295,8 @@ export class Install {
295295
srcType: src.type,
296296
srcArchiveVersion: this._version, // Use the resolved version (e.g. latest -> 27.4.0)
297297
srcArchiveChannel: srcArchive.channel,
298-
srcImageTag: (src as InstallSourceImage).tag
298+
srcImageTag: (src as InstallSourceImage).tag,
299+
undockVersion: limaUndockVersion
299300
});
300301
core.info(`Writing lima config to ${path.join(limaDir, 'lima.yaml')}`);
301302
fs.writeFileSync(path.join(limaDir, 'lima.yaml'), limaCfg);

0 commit comments

Comments
 (0)