From d2c39c76d09490bb23230288cd3d61b42d2377e2 Mon Sep 17 00:00:00 2001 From: Marc Nuri Date: Tue, 13 Dec 2022 17:34:40 +0100 Subject: [PATCH] fix: proper predicate cri-dockerd release asset names --- src/__tests__/download.test.js | 16 ++++++++++++++-- src/download.js | 5 ++++- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/__tests__/download.test.js b/src/__tests__/download.test.js index a6cda51f..446c4821 100644 --- a/src/__tests__/download.test.js +++ b/src/__tests__/download.test.js @@ -117,12 +117,24 @@ describe('download module test suite', () => { axios.mockImplementationOnce(async () => ({ data: { assets: [ + { + name: 'cri-dockerd-0.2.6-3.el7.src.rpm', + browser_download_url: 'http://invalid' + }, + { + name: 'cri-dockerd-0.2.6-3.el7.src.rpm', + browser_download_url: 'http://invalid' + }, { name: 'cri-dockerd-v0.2.0-darwin-arm64.tar.gz', browser_download_url: 'http://invalid' }, { - name: 'cri-dockerd-v0.2.0-linux-amd64.tar.gz', + name: 'cri-dockerd-0.2.6.arm64.tgz', + browser_download_url: 'http://invalid' + }, + { + name: 'cri-dockerd-0.2.6.amd64.tgz', browser_download_url: 'http://valid' }, { @@ -146,7 +158,7 @@ describe('download module test suite', () => { // Then expect(axios).toHaveBeenCalledWith( expect.objectContaining({ - url: 'https://api.github.com/repos/Mirantis/cri-dockerd/releases/tags/v0.2.0', + url: 'https://api.github.com/repos/Mirantis/cri-dockerd/releases/tags/v0.2.6', headers: {Authorization: 'token secret-token'} }) ); diff --git a/src/download.js b/src/download.js index 3300468e..ce53136d 100644 --- a/src/download.js +++ b/src/download.js @@ -9,6 +9,9 @@ const {logExecSync} = require('./exec'); const isLinux = name => name.indexOf('linux') >= 0; const isAmd64 = name => name.indexOf('amd64') >= 0; const isSignature = name => name.indexOf('sha256') >= 0; +const isWindows = name => name.indexOf('.win.') >= 0; +const isMac = name => name.indexOf('.darwin.') >= 0; +const isTgz = name => name.endsWith('.tgz'); const getTagInfo = async ({inputs, releaseUrl}) => { const headers = {}; @@ -61,7 +64,7 @@ const installCriDockerd = async (inputs = {}) => { inputs, releaseUrl, assetPredicate: asset => - isLinux(asset.name) && isAmd64(asset.name) && !isSignature(asset.name) && asset.name.indexOf('cri-dockerd') === 0 + !isSignature(asset.name) && !isWindows(asset.name) && !isMac(asset.name) && isAmd64(asset.name) && asset.name.indexOf('cri-dockerd') === 0 }); await tc.extractTar(binaryTar, '/usr/local/bin'); const sourceTar = await tc.downloadTool(`https://github.com/Mirantis/cri-dockerd/archive/refs/tags/${tag}.tar.gz`);