Skip to content

Commit

Permalink
Add known branch exceptions to version matching
Browse files Browse the repository at this point in the history
Maybe doing it this way is better, since we don't "break"
existing consumption elements

Forcing `version-type: strict`, while explicit, would
probably force some installations to use a too-specific
Elixir version
  • Loading branch information
paulo-ferraz-oliveira committed Jan 17, 2024
1 parent bc84950 commit 7100c00
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 2 deletions.
6 changes: 5 additions & 1 deletion dist/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -10224,7 +10224,7 @@ function getVersionFromSpec(spec0, versions0) {
const rangeMax = semver.maxSatisfying(versions, rangeForMax)
let version = null

if (isStrictVersion() || isRC(spec0)) {
if (isStrictVersion() || isRC(spec0) || isKnownBranch(spec0)) {
if (versions0[spec]) {
// If `version-type: strict` or version is RC, we obtain it directly
version = versions0[spec]
Expand Down Expand Up @@ -10296,6 +10296,10 @@ function isRC(ver) {
return ver.match(xyzAbcVersion('^', '(?:-rc\\.?\\d+)'))
}

function isKnownBranch(ver) {
return ['main', 'master', 'maint'].includes(ver)
}

function getRunnerOSVersion() {
const ImageOSToContainer = {
ubuntu18: 'ubuntu-18.04',
Expand Down
6 changes: 5 additions & 1 deletion src/setup-beam.js
Original file line number Diff line number Diff line change
Expand Up @@ -404,7 +404,7 @@ function getVersionFromSpec(spec0, versions0) {
const rangeMax = semver.maxSatisfying(versions, rangeForMax)
let version = null

if (isStrictVersion() || isRC(spec0)) {
if (isStrictVersion() || isRC(spec0) || isKnownBranch(spec0)) {
if (versions0[spec]) {
// If `version-type: strict` or version is RC, we obtain it directly
version = versions0[spec]
Expand Down Expand Up @@ -476,6 +476,10 @@ function isRC(ver) {
return ver.match(xyzAbcVersion('^', '(?:-rc\\.?\\d+)'))
}

function isKnownBranch(ver) {
return ['main', 'master', 'maint'].includes(ver)
}

function getRunnerOSVersion() {
const ImageOSToContainer = {
ubuntu18: 'ubuntu-18.04',
Expand Down
12 changes: 12 additions & 0 deletions test/setup-beam.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,18 @@ async function testOTPVersions() {
expected = 'OTP-20.0.5'
got = await setupBeam.getOTPVersion(spec, osVersion)
assert.deepStrictEqual(got, expected)

spec = 'maint'
osVersion = 'ubuntu-22.04'
expected = 'maint'
got = await setupBeam.getOTPVersion(spec, osVersion, hexMirrors)
assert.deepStrictEqual(got, expected)

spec = 'master'
osVersion = 'ubuntu-22.04'
expected = 'master'
got = await setupBeam.getOTPVersion(spec, osVersion, hexMirrors)
assert.deepStrictEqual(got, expected)
}

if (process.platform === 'win32') {
Expand Down

0 comments on commit 7100c00

Please sign in to comment.