Skip to content

Commit 3f4b1b2

Browse files
unity-setup@v1.0.11 (#14)
- fix latest release matching
1 parent b1791af commit 3f4b1b2

File tree

7 files changed

+30
-30
lines changed

7 files changed

+30
-30
lines changed

.github/workflows/validate.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@ jobs:
2828
unity-versions:
2929
- None
3030
- 2019.4.40f1 (ffc62b691db5)
31-
- 2020.x
31+
- 2020.3
3232
- 2021.3.x
33-
- 2022.3
33+
- 2022.x
3434
- 6000
3535
include:
3636
- os: ubuntu-latest

dist/index.js

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -34826,19 +34826,17 @@ async function Unity(version, changeset, architecture, modules) {
3482634826
}
3482734827
async function getLatestRelease(version, isSilicon) {
3482834828
const releases = (await execUnityHub([`editors`, `--releases`])).split('\n');
34829-
for (const release of releases) {
34830-
if (!release || release.trim().length === 0) {
34831-
continue;
34832-
}
34833-
const semVersion = semver.coerce(version);
34834-
const semVerRelease = semver.coerce(release);
34835-
core.debug(`Checking ${semVersion} against ${semVerRelease}`);
34836-
if (semver.satisfies(semVerRelease, `^${semVersion}`)) {
34837-
const match = release.match(/(?<version>\d+\.\d+\.\d+[fab]?\d*)\s*(?:\((?<arch>Apple silicon|Intel)\))?/);
34838-
if (match && match.groups && match.groups.version) {
34839-
core.info(`Found Unity ${match.groups.version}`);
34840-
return [match.groups.version, undefined];
34841-
}
34829+
const semVersion = semver.coerce(version);
34830+
const validReleases = releases
34831+
.map(release => semver.coerce(release))
34832+
.filter(release => release && semver.satisfies(release, `^${semVersion}`))
34833+
.sort((a, b) => semver.compare(b, a));
34834+
for (const release of validReleases) {
34835+
const originalRelease = releases.find(r => r.includes(release.version));
34836+
const match = originalRelease.match(/(?<version>\d+\.\d+\.\d+[fab]?\d*)\s*(?:\((?<arch>Apple silicon|Intel)\))?/);
34837+
if (match && match.groups && match.groups.version) {
34838+
core.info(`Found Unity ${match.groups.version}`);
34839+
return [match.groups.version, undefined];
3484234840
}
3484334841
}
3484434842
core.info(`Searching for Unity ${version} release...`);

dist/index.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "unity-setup",
3-
"version": "1.0.10",
3+
"version": "1.0.11",
44
"description": "A GitHub action for setting up the Unity Game Engine for CI/CD workflows.",
55
"author": "Buildalon",
66
"license": "MIT",
@@ -41,6 +41,7 @@
4141
"scripts": {
4242
"build": "npm run clean && npm run bundle",
4343
"bundle": "ncc build src/index.ts -o dist --source-map --license licenses.txt",
44+
"watch": "ncc build src/index.ts -o dist --source-map --license licenses.txt --watch",
4445
"clean": "npm install && shx rm -rf dist/ out/ node_modules/ && npm ci"
4546
}
4647
}

src/unity-hub.ts

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -263,17 +263,17 @@ async function Unity(version: string, changeset: string, architecture: string, m
263263

264264
async function getLatestRelease(version: string, isSilicon: boolean): Promise<[string, string]> {
265265
const releases = (await execUnityHub([`editors`, `--releases`])).split('\n');
266-
for (const release of releases) {
267-
if (!release || release.trim().length === 0) { continue; }
268-
const semVersion = semver.coerce(version);
269-
const semVerRelease = semver.coerce(release);
270-
core.debug(`Checking ${semVersion} against ${semVerRelease}`);
271-
if (semver.satisfies(semVerRelease, `^${semVersion}`)) {
272-
const match = release.match(/(?<version>\d+\.\d+\.\d+[fab]?\d*)\s*(?:\((?<arch>Apple silicon|Intel)\))?/);
273-
if (match && match.groups && match.groups.version) {
274-
core.info(`Found Unity ${match.groups.version}`);
275-
return [match.groups.version, undefined];
276-
}
266+
const semVersion = semver.coerce(version);
267+
const validReleases = releases
268+
.map(release => semver.coerce(release))
269+
.filter(release => release && semver.satisfies(release, `^${semVersion}`))
270+
.sort((a, b) => semver.compare(b, a));
271+
for (const release of validReleases) {
272+
const originalRelease = releases.find(r => r.includes(release.version));
273+
const match = originalRelease.match(/(?<version>\d+\.\d+\.\d+[fab]?\d*)\s*(?:\((?<arch>Apple silicon|Intel)\))?/);
274+
if (match && match.groups && match.groups.version) {
275+
core.info(`Found Unity ${match.groups.version}`);
276+
return [match.groups.version, undefined];
277277
}
278278
}
279279
core.info(`Searching for Unity ${version} release...`);

tsconfig.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
"forceConsistentCasingInFileNames": true,
1111
"outDir": "dist",
1212
"declaration": false,
13+
"noEmit": true
1314
},
1415
"compileOnSave": true,
1516
"include": [

0 commit comments

Comments
 (0)