Skip to content

Commit a8fe98e

Browse files
committed
Pin the pnpm versions on GitHub and in tests
1 parent b18c04c commit a8fe98e

File tree

5 files changed

+28
-17
lines changed

5 files changed

+28
-17
lines changed

.github/workflows/build.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ jobs:
2424
node-version: 16
2525
- name: Install yarn
2626
run: npm install -g [email protected]
27+
- name: Install pnpm
28+
run: npm install -g [email protected]
2729
- name: Setup Gradle
2830
uses: gradle/gradle-build-action@v2
2931
with:
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package com.github.gradle.node
2+
3+
class Versions {
4+
static TEST_PNPM_DOWNLOAD_VERSION = "4.12.4"
5+
static TEST_PNPM_LOCAL_VERSION = "4.12.1"
6+
}

src/test/groovy/com/github/gradle/node/pnpm/task/PnpmRule_integTest.groovy

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.github.gradle.node.pnpm.task
22

33
import com.github.gradle.AbstractIntegTest
4+
import com.github.gradle.node.Versions
45
import org.gradle.testkit.runner.TaskOutcome
56

67
import java.util.regex.Pattern
@@ -32,19 +33,19 @@ class PnpmRule_integTest extends AbstractIntegTest {
3233
gv << GRADLE_VERSIONS_UNDER_TEST
3334
}
3435
35-
def 'Use downloaded pnpm version (#gv.version)'()
36+
def 'DEUse downloaded pnpm version (#gv.version)'()
3637
{
3738
given:
3839
gradleVersion = gv
39-
writeBuild( '''
40+
writeBuild( """
4041
plugins {
4142
id 'com.github.node-gradle.node'
4243
}
4344
node {
4445
download = true
45-
pnpmVersion = '4.12.4'
46+
pnpmVersion = '${Versions.TEST_PNPM_DOWNLOAD_VERSION}'
4647
}
47-
''' )
48+
""" )
4849
writeEmptyPackageJson()
4950
5051
when:
@@ -62,18 +63,18 @@ class PnpmRule_integTest extends AbstractIntegTest {
6263
{
6364
given:
6465
gradleVersion = gv
65-
writeBuild( '''
66+
writeBuild( """
6667
plugins {
6768
id 'com.github.node-gradle.node'
6869
}
6970
node {
7071
download = true
7172
}
72-
''' )
73+
""" )
7374
writeEmptyPackageJson()
7475
7576
when:
76-
build( 'pnpm_install_pnpm@4.12.1' )
77+
build( "pnpm_install_pnpm@${Versions.TEST_PNPM_LOCAL_VERSION}" )
7778
def result = build( 'pnpm_--version' )
7879
7980
then:
@@ -133,7 +134,7 @@ class PnpmRule_integTest extends AbstractIntegTest {
133134
then:
134135
result.task(":pnpmInstall").outcome == TaskOutcome.SUCCESS
135136
result.task(":pnpm_run_pnpmVersion").outcome == TaskOutcome.SUCCESS
136-
def versionPattern = Pattern.compile(".*Version\\s+4.12.1.*", Pattern.DOTALL)
137+
def versionPattern = Pattern.compile(".*Version\\s+${Versions.TEST_PNPM_LOCAL_VERSION}.*", Pattern.DOTALL)
137138
versionPattern.matcher(result.output).find()
138139
139140
where:
@@ -181,16 +182,16 @@ class PnpmRule_integTest extends AbstractIntegTest {
181182
{
182183
given:
183184
gradleVersion = gv
184-
writeBuild( '''
185+
writeBuild( """
185186
plugins {
186187
id 'com.github.node-gradle.node'
187188
}
188189
node {
189190
download = true
190-
pnpmVersion = '4.12.4'
191+
pnpmVersion = '${Versions.TEST_PNPM_DOWNLOAD_VERSION}'
191192
nodeModulesDir = file("frontend")
192193
}
193-
''' )
194+
""" )
194195
writeFile( 'frontend/package.json', """{
195196
"name": "example",
196197
"dependencies": {},

src/test/groovy/com/github/gradle/node/pnpm/task/PnpmSetupTaskTest.groovy

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.github.gradle.node.pnpm.task
22

3+
import com.github.gradle.node.Versions
34
import com.github.gradle.node.task.AbstractTaskTest
45
import org.gradle.process.ExecSpec
56

@@ -27,7 +28,7 @@ class PnpmSetupTaskTest
2728

2829
def "exec pnpmSetup task with pnpm version specified"() {
2930
given:
30-
nodeExtension.pnpmVersion.set('4.12.4')
31+
nodeExtension.pnpmVersion.set(Versions.TEST_PNPM_DOWNLOAD_VERSION)
3132
def task = project.tasks.create('simple', PnpmSetupTask)
3233
mockProjectApiHelperExec(task)
3334

@@ -38,8 +39,8 @@ class PnpmSetupTaskTest
3839
then:
3940
1 * execSpec.setArgs({ args ->
4041
def expectedPnpmInstallPath = projectDir.toPath().resolve('.gradle').resolve('pnpm')
41-
.resolve('pnpm-v4.12.4').toAbsolutePath().toString()
42-
def expectedArgs = ['install', '--global', '--no-save', '--prefix', expectedPnpmInstallPath, 'pnpm@4.12.4']
42+
.resolve("pnpm-v${Versions.TEST_PNPM_DOWNLOAD_VERSION}").toAbsolutePath().toString()
43+
def expectedArgs = ['install', '--global', '--no-save', '--prefix', expectedPnpmInstallPath, "pnpm@${Versions.TEST_PNPM_DOWNLOAD_VERSION}"]
4344
// Workaround a strange issue on Github actions macOS hosts
4445
return args.collect { it.replace("^/private/", "/") } == expectedArgs
4546
})

src/test/groovy/com/github/gradle/node/pnpm/task/PnpmTask_integTest.groovy

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.github.gradle.node.pnpm.task
22

33
import com.github.gradle.AbstractIntegTest
4+
import com.github.gradle.node.Versions
45
import org.gradle.testkit.runner.TaskOutcome
56
import org.junit.Rule
67
import org.junit.contrib.java.lang.system.EnvironmentVariables
@@ -48,7 +49,7 @@ class PnpmTask_integTest extends AbstractIntegTest {
4849
4950
then:
5051
result4.task(":version").outcome == TaskOutcome.SUCCESS
51-
result4.output.contains("> Task :version${System.lineSeparator()}4.12.4")
52+
result4.output.contains("> Task :version${System.lineSeparator()}${Versions.TEST_PNPM_DOWNLOAD_VERSION}")
5253
5354
where:
5455
gv << GRADLE_VERSIONS_UNDER_TEST
@@ -146,7 +147,7 @@ class PnpmTask_integTest extends AbstractIntegTest {
146147
147148
then:
148149
result9.task(":version").outcome == TaskOutcome.SUCCESS
149-
result9.output.contains("> Task :version${System.lineSeparator()}4.12.4")
150+
result9.output.contains("> Task :version${System.lineSeparator()}${Versions.TEST_PNPM_DOWNLOAD_VERSION}")
150151
151152
where:
152153
gv << GRADLE_VERSIONS_UNDER_TEST
@@ -163,7 +164,7 @@ class PnpmTask_integTest extends AbstractIntegTest {
163164
164165
then:
165166
result.task(":version").outcome == TaskOutcome.SUCCESS
166-
result.output.contains("> Task :version${System.lineSeparator()}4.12.1")
167+
result.output.contains("> Task :version${System.lineSeparator()}${Versions.TEST_PNPM_LOCAL_VERSION}")
167168
168169
where:
169170
gv << GRADLE_VERSIONS_UNDER_TEST

0 commit comments

Comments
 (0)