From 13c47a42a619d2df4834ec295d293cad7c048670 Mon Sep 17 00:00:00 2001 From: Andreas Dangel Date: Thu, 6 Apr 2023 11:36:21 +0200 Subject: [PATCH] Support new asset names with PMD 7.0.0-rc2 --- lib/util.js | 6 +++++- tests/data/create-zips.sh | 1 + tests/data/pmd-bin-7.0.0-rc2/bin/pmd | 17 +++++++++++++++++ tests/data/pmd-bin-7.0.0-rc2/bin/pmd.bat | 17 +++++++++++++++++ tests/data/pmd-dist-7.0.0-rc2-bin.zip | Bin 0 -> 1030 bytes tests/data/releases-7.0.0-rc2.json | 11 +++++++++++ tests/util.test.js | 18 ++++++++++++++++++ 7 files changed, 69 insertions(+), 1 deletion(-) create mode 100755 tests/data/pmd-bin-7.0.0-rc2/bin/pmd create mode 100644 tests/data/pmd-bin-7.0.0-rc2/bin/pmd.bat create mode 100644 tests/data/pmd-dist-7.0.0-rc2-bin.zip create mode 100644 tests/data/releases-7.0.0-rc2.json diff --git a/lib/util.js b/lib/util.js index e0b6110..a08e10d 100644 --- a/lib/util.js +++ b/lib/util.js @@ -145,7 +145,11 @@ function getPmdVersionFromRelease(release) { } function getDownloadURL(release) { - const asset = release.data.assets.filter(a => a.name === `pmd-bin-${getPmdVersionFromRelease(release)}.zip`)[0]; + const asset = release.data.assets.filter(a => { + const version = getPmdVersionFromRelease(release); + return a.name === `pmd-bin-${version}.zip` + || a.name === `pmd-dist-${version}-bin.zip` + })[0]; core.debug(`url: ${asset.browser_download_url}`); return asset.browser_download_url; } diff --git a/tests/data/create-zips.sh b/tests/data/create-zips.sh index 2f70d8f..f01bc10 100755 --- a/tests/data/create-zips.sh +++ b/tests/data/create-zips.sh @@ -4,4 +4,5 @@ zip -r pmd-bin-6.39.0.zip pmd-bin-6.39.0 zip -r pmd-bin-6.40.0.zip pmd-bin-6.40.0 zip -r pmd-bin-6.41.0.zip pmd-bin-6.41.0 zip -r pmd-bin-7.0.0-rc1.zip pmd-bin-7.0.0-rc1 +zip -r pmd-dist-7.0.0-rc2-bin.zip pmd-bin-7.0.0-rc2 zip -r pmd-bin-7.0.0-SNAPSHOT.zip pmd-bin-7.0.0-SNAPSHOT diff --git a/tests/data/pmd-bin-7.0.0-rc2/bin/pmd b/tests/data/pmd-bin-7.0.0-rc2/bin/pmd new file mode 100755 index 0000000..9445fa3 --- /dev/null +++ b/tests/data/pmd-bin-7.0.0-rc2/bin/pmd @@ -0,0 +1,17 @@ +#!/usr/bin/env bash + +echo "Running PMD 7.0.0-rc2 with: $@" + +echo '{ + "runs": [ + { + "tool": { + "driver": { + "name": "PMD", + "version": "7.0.0-rc2" + } + } + } + ] +}' > pmd-report.sarif + diff --git a/tests/data/pmd-bin-7.0.0-rc2/bin/pmd.bat b/tests/data/pmd-bin-7.0.0-rc2/bin/pmd.bat new file mode 100644 index 0000000..e78124d --- /dev/null +++ b/tests/data/pmd-bin-7.0.0-rc2/bin/pmd.bat @@ -0,0 +1,17 @@ +@echo off +echo Running PMD 7.0.0-rc2 with: %* + +( + echo { + echo "runs": [ + echo { + echo "tool": { + echo "driver": { + echo "name": "PMD", + echo "version": "7.0.0-rc2" + echo } + echo } + echo } + echo ] + echo } +)>"pmd-report.sarif" diff --git a/tests/data/pmd-dist-7.0.0-rc2-bin.zip b/tests/data/pmd-dist-7.0.0-rc2-bin.zip new file mode 100644 index 0000000000000000000000000000000000000000..5ae656acecc5cb5a59d4fe355b403a1e8c926f6e GIT binary patch literal 1030 zcmWIWW@h1H0D&dZZDC*rln`Q&VJOH=(M`(C(>2#K&@<32N;c9D4dG;9elkHXl zNr@$3XMP773BqX3EcWm{cOv|RzxQJ%<0h}qpNu|V5@o816*=>j=L=6s_oQBtQ^wv# zYeYh}?$}|nL!^OW%@(PHAprqeT4%MxHU)LKiG?_XGBbIp{`_g_P%0thuyV?xGn=j` zy_w|ja?g=FAq$oWUC8vZiU?&W6;FTmyiw%f-E}Q1H;Kh^_%gIgcR#pNlzB^2^vSXp zVoSxIh);bXsxFqgOtX-Y0Tg}^|E>c1H4SIPU5$_x-U4&#IP2Mw*QNH%Q`!{=(g3AeY;m?tUT@cX)d$+Y1cbdoyMm( zKIGecWjceJzU-x?soVY>`24bCcZP7T)5+~WfKl+^mBamr3(QKMr{@XndDVBLJ|y$; zo#2=6!-6{A_WUtiIw#CcGE;c%^R~3Tr8ZTU*-cp4W}FYqH(=Rue3zD!;nvA&pH|+m zJ|G?7&B!Fjj4SO)0DTPt0t{~*K{U3M$O=h`XkNx=t{4NdxjtCUg``S+X5&he5VL{F zlVM5Y9GqsuQz+01EU6RXd|b%@Va40V9-vK_!2)tVP&70IXgrn#5#Y_r26P$&3lNq8 J4X9!Q@c;(ID { + nock('https://api.github.com') + .get('/repos/pmd/pmd/releases/latest') + .replyWithFile(200, __dirname + '/data/releases-7.0.0-rc2.json', { + 'Content-Type': 'application/json', + }) + nock('https://github.com') + .get('/pmd/pmd/releases/download/pmd_releases/7.0.0-rc2/pmd-dist-7.0.0-rc2-bin.zip') + .replyWithFile(200, __dirname + '/data/pmd-dist-7.0.0-rc2-bin.zip') + + const pmdInfo = await util.downloadPmd('latest', 'my_test_token'); + + const toolCache = path.join(cachePath, 'pmd', '7.0.0-rc2', os.arch(), 'pmd-bin-7.0.0-rc2'); + expect(pmdInfo).toStrictEqual({ path: toolCache, version: '7.0.0-rc2' }); + await expect(fs.access(toolCache)).resolves.toBe(undefined); + }) + }); function setGlobal(key, value) {