Compare commits

...

88 Commits

Author SHA1 Message Date
Alena Sviridenko 7ac82af1b6 Merge pull request #65 from actions/update-versions-manifest-file 2021-07-02 08:50:21 +03:00
Service account 6d939f1dbe Update versions-manifest 2021-07-01 20:33:39 +00:00
Alena Sviridenko 2b6ee4852f Merge pull request #64 from actions/update-versions-manifest-file
[versions-manifest] Update for release from 06/23/2021
2021-06-23 16:42:04 +03:00
Service account b3a2ff96e2 Update versions-manifest 2021-06-23 13:38:00 +00:00
Maxim Lobanov 0141b50275 Merge pull request #63 from actions/malob/add-lts-labels
Add support for LTS labels in node-versions manifest
2021-06-16 14:43:23 +03:00
Maxim Lobanov 7481b6b090 update submodules 2021-06-16 11:25:56 +00:00
Maxim Lobanov 4fcc8f116d add LTS labels 2021-06-16 09:43:50 +00:00
Alena Sviridenko e5f055b1c1 Merge pull request #62 from actions/update-versions-manifest-file
[versions-manifest] Update for release from 06/15/2021
2021-06-15 16:38:49 +03:00
Service account 34f35b5cb6 Update versions-manifest 2021-06-15 13:30:47 +00:00
Alena Sviridenko e21cafedd8 Merge pull request #61 from actions/update-versions-manifest-file
[versions-manifest] Update for release from 06/03/2021
2021-06-03 18:11:29 +03:00
Service account b6e0bccc9f Update versions-manifest 2021-06-03 15:08:12 +00:00
MaksimZhukov 3e0c0eb0d6 Merge pull request #60 from actions/update-versions-manifest-file
[versions-manifest] Update for release from 05/19/2021
2021-05-19 18:15:10 +03:00
Service account 62cc8fa6fb Update versions-manifest 2021-05-19 15:08:44 +00:00
MaksimZhukov 5fa4e704be Merge pull request #59 from actions/update-versions-manifest-file
[versions-manifest] Update for release from 05/12/2021
2021-05-12 09:27:44 +03:00
Service account 60911f3d0a Update versions-manifest 2021-05-12 06:15:55 +00:00
Mikhail Timofeev 1aa2fc42b8 Merge pull request #58 from actions/update-versions-manifest-file
[versions-manifest] Update for release from 05/05/2021
2021-05-05 11:11:41 +03:00
Service account 6a059f6c80 Update versions-manifest 2021-05-05 07:17:54 +00:00
MaksimZhukov 48cfd035f5 Merge pull request #57 from actions/update-versions-manifest-file
[versions-manifest] Update for release from 04/21/2021
2021-04-21 11:22:23 +03:00
Service account 4066cc83f8 Update versions-manifest 2021-04-21 08:14:47 +00:00
MaksimZhukov 2277f8c8a4 Merge pull request #56 from actions/update-versions-manifest-file
[versions-manifest] Update for release from 04/07/2021
2021-04-07 09:49:47 +03:00
Service account 28cdbd7c2e Update versions-manifest 2021-04-07 06:35:11 +00:00
Maxim Lobanov a0e1e3c90e Merge pull request #55 from actions/update-versions-manifest-file
[versions-manifest] Update for release from 03/30/2021
2021-03-30 18:19:27 +03:00
Service account 3716ed3c6e Update versions-manifest 2021-03-30 15:12:38 +00:00
Maxim Lobanov 6fd0e71a0a Merge pull request #54 from actions/update-versions-manifest-file
[versions-manifest] Update for release from 02/23/2021
2021-02-24 08:59:31 +03:00
Service account 5093d2b929 Update versions-manifest 2021-02-23 15:26:42 +00:00
Maxim Lobanov 2fa5a9904c Merge pull request #53 from actions/update-versions-manifest-file
[versions-manifest] Update for release from 02/11/2021
2021-02-11 09:45:06 +03:00
Service account ab76c432fe Update versions-manifest 2021-02-11 06:38:54 +00:00
MaksimZhukov ead568a146 Merge pull request #52 from actions/update-versions-manifest-file
[versions-manifest] Update for release from 02/10/2021
2021-02-10 10:41:10 +03:00
Service account 6fdbc6deb3 Update versions-manifest 2021-02-10 07:36:27 +00:00
MaksimZhukov 69ae188e0e Merge pull request #51 from actions/update-versions-manifest-file
[versions-manifest] Update for release from 01/27/2021
2021-01-27 10:24:29 +03:00
Service account 75b1a9f3f2 Update versions-manifest 2021-01-27 06:23:21 +00:00
Maxim Lobanov ea5fefae18 Merge pull request #50 from actions/add-codeowners
Create CODEOWNERS
2021-01-20 21:38:21 +03:00
Maxim Lobanov 8b33f33473 Update CODEOWNERS 2021-01-11 19:48:16 +03:00
Maxim Lobanov d92adb7da1 Create CODEOWNERS 2021-01-08 12:32:59 +03:00
Maxim Lobanov c2b002c470 Merge pull request #49 from actions/update-versions-manifest-file
[versions-manifest] Update for release from 01/06/2021
2021-01-06 10:30:23 +03:00
Service account 649c1ec0c7 Update versions-manifest 2021-01-06 07:29:39 +00:00
MaksimZhukov fbeb7d747d Merge pull request #48 from actions/update-versions-manifest-file
[versions-manifest] Update for release from 12/18/2020
2020-12-18 10:52:26 +03:00
Service account 445b5079f1 Update versions-manifest 2020-12-18 07:15:09 +00:00
MaksimZhukov 07c6e38e3e Merge pull request #47 from actions/update-versions-manifest-file
[versions-manifest] Update for release from 12/16/2020
2020-12-16 15:06:29 +03:00
Service account 805c28590c Update versions-manifest 2020-12-16 11:40:15 +00:00
Maxim Lobanov 72562f08b4 Merge pull request #46 from actions/update-versions-manifest-file
[versions-manifest] Update for release from 11/25/2020
2020-11-25 11:49:50 +03:00
Service account adde90d079 Update versions-manifest 2020-11-25 07:40:49 +00:00
Maxim Lobanov 6772ce992e Merge pull request #45 from actions/update-versions-manifest-file
[versions-manifest] Update for release from 11/17/2020
2020-11-17 21:12:15 +03:00
Service account 196a7ffaab Update versions-manifest 2020-11-17 18:02:52 +00:00
MaksimZhukov 5803dd40ce Merge pull request #44 from MaksimZhukov/v-mazhuk/fix-powerhell-issue-with-paths
Fix PowerShell issue with relative paths
2020-11-17 20:54:45 +03:00
MaksimZhukov 15c3ac315a Fix powershell issue with paths 2020-11-17 19:54:37 +03:00
MaksimZhukov 4790533e80 Merge pull request #43 from MaksimZhukov/v-mazhuk/add-pull-request-event-trigger
Add ability to trigger packages generation on PRs
2020-11-03 15:14:48 +03:00
MaksimZhukov c01749b1c4 Add ability to trigger packages generation on PRs 2020-11-02 15:38:27 +03:00
Maxim Lobanov 01407a89d3 Merge pull request #42 from actions/update-versions-manifest-file
[versions-manifest] Update for release from 10/28/2020
2020-10-28 10:20:56 +03:00
Service account ff6bcb4ec0 Update versions-manifest 2020-10-28 06:37:18 +00:00
MaksimZhukov a229d53240 Merge pull request #41 from actions/update-versions-manifest-file
[versions-manifest] Update for release from 10/16/2020
2020-10-16 18:22:35 +03:00
Service account 593745d7c2 Update versions-manifest 2020-10-16 15:09:09 +00:00
Maxim Lobanov e459abbdbe Merge pull request #40 from actions/update-versions-manifest-file
[versions-manifest] Update for release from 10/08/2020
2020-10-08 09:42:19 +03:00
Service account f01c560f7f Update versions-manifest 2020-10-08 06:36:38 +00:00
Alena Sviridenko 2b37bf1f1e Merge pull request #39 from actions/update-versions-manifest-file
[versions-manifest] Update for release from 10/07/2020
2020-10-07 11:18:42 +03:00
Service account fe299f9388 Update versions-manifest 2020-10-07 08:17:04 +00:00
Alena Sviridenko bbb4ceccb0 Merge pull request #37 from actions/update-versions-manifest-file
[versions-manifest] Update for release from 09/30/2020
2020-09-30 18:10:00 +03:00
Service account d8a00be11c Update versions-manifest 2020-09-30 07:13:33 +00:00
MaksimZhukov cb6506c1cc Merge pull request #36 from actions/update-versions-manifest-file
[versions-manifest] Update for release from 09/23/2020
2020-09-23 13:23:49 +03:00
Service account 69c87ed4ce Update versions-manifest 2020-09-23 09:55:09 +00:00
MaksimZhukov 36757fae02 Merge pull request #35 from actions/update-versions-manifest-file
[versions-manifest] Update for release from 09/16/2020
2020-09-16 11:15:04 +03:00
Service account 05026253f5 Update versions-manifest 2020-09-16 08:03:57 +00:00
MaksimZhukov 2da30901b3 Merge pull request #34 from actions/update-versions-manifest-file
[versions-manifest] Update for release from 09/10/2020
2020-09-10 20:21:06 +03:00
Service account d2b2d6cf72 Update versions-manifest 2020-09-10 17:12:45 +00:00
Dibir Magomedsaygitov b6945a3f95 Merge pull request #33 from actions/update-versions-manifest-file
[versions-manifest] Update for release from 09/09/2020
2020-09-09 10:45:59 +03:00
Service account 17f4719d01 Update versions-manifest 2020-09-09 07:42:57 +00:00
MaksimZhukov 19ff3f1812 Merge pull request #32 from actions/update-versions-manifest-file
[versions-manifest] Update for release from 08/27/2020
2020-08-27 19:33:45 +03:00
Service account 6a38aba626 Update versions-manifest 2020-08-27 16:22:37 +00:00
MaksimZhukov 25173f9ae7 Merge pull request #31 from akv-platform/main
Migrate node-versions CI to GitHub Actions
2020-08-25 16:52:20 +03:00
MaksimZhukov c52043a439 Get rid of azure-pipelines folder 2020-08-25 13:32:41 +03:00
MaksimZhukov 70f1fd4673 Merge pull request #2 from akv-platform/v-mazhuk/move-ci-to-actions
Move CI
2020-08-25 12:23:17 +03:00
MaksimZhukov 02194c5c42 Update helpers 2020-08-25 12:14:24 +03:00
MaksimZhukov 47471a527c Move defaults section 2020-08-25 11:45:06 +03:00
MaksimZhukov 978acceff5 Update to Pester 5 2020-08-24 20:07:31 +03:00
MaksimZhukov ed56a19091 Remove Create-ArtifactDirectories function 2020-08-24 15:22:05 +03:00
MaksimZhukov 1a9656d766 Fix comments 2020-08-24 11:10:43 +03:00
MaksimZhukov 414a9c4d19 Move CI 2020-08-19 13:38:27 +03:00
MaksimZhukov dea9e4ccea Merge pull request #30 from actions/update-versions-manifest-file
[versions-manifest] Update for release from 08/12/2020
2020-08-12 11:21:19 +03:00
Service account 070efd5a09 Update versions-manifest based on build from 20200812.4 2020-08-12 08:17:46 +00:00
Maxim Lobanov 60042303e5 Merge pull request #29 from actions/v-mazhuk/update-modules
Update Git submodule
2020-07-30 14:22:56 +03:00
MaksimZhukov 690c39139f Update Git submodule 2020-07-30 12:47:21 +03:00
Maxim Lobanov dbc462f6f0 Merge pull request #28 from actions/update-versions-manifest-file
[versions-manifest] Update for release from 07/30/2020
2020-07-30 09:04:09 +03:00
Service account 2d85084834 Update versions-manifest based on build from 20200730.1 2020-07-30 05:59:25 +00:00
Maxim Lobanov 71dc6cf704 Merge pull request #27 from actions/update-versions-manifest-file
[versions-manifest] Update for release from 07/23/2020
2020-07-23 08:54:11 +03:00
Service account 2275f3fe19 Update versions-manifest based on build from 20200723.1 2020-07-23 05:43:29 +00:00
Maxim Lobanov deeaedc1f4 Merge pull request #26 from actions/update-versions-manifest-file
[versions-manifest] Update for release from 07/22/2020
2020-07-22 11:40:33 +03:00
Service account 82819ecf50 Update versions-manifest based on build from 20200722.2 2020-07-22 08:30:47 +00:00
Maxim Lobanov 73c7229556 Update README.md 2020-07-15 13:32:45 +03:00
16 changed files with 1571 additions and 196 deletions
+1
View File
@@ -0,0 +1 @@
* @actions/virtual-environments-owners
+172
View File
@@ -0,0 +1,172 @@
name: Generate Node.js package
on:
workflow_dispatch:
inputs:
VERSION:
description: 'Node.js version to build and upload'
required: true
default: '14.2.0'
PUBLISH_RELEASES:
description: 'Whether to publish releases'
required: true
default: 'false'
pull_request:
paths-ignore:
- 'versions-manifest.json'
- 'LICENSE'
- '**.md'
branches:
- 'main'
env:
VERSION: ${{ github.event.inputs.VERSION || '14.0.0' }}
defaults:
run:
shell: pwsh
jobs:
build_node:
name: Build Node.js ${{ github.event.inputs.VERSION || '14.0.0' }} [${{ matrix.platform }}]
runs-on: ubuntu-latest
env:
ARTIFACT_NAME: node-${{ github.event.inputs.VERSION || '14.0.0' }}-${{ matrix.platform }}-x64
strategy:
fail-fast: false
matrix:
platform: [linux, darwin, win32]
steps:
- uses: actions/checkout@v2
with:
submodules: true
- name: Build Node.js ${{ env.VERSION }}
run: |
./builders/build-node.ps1 -Version $env:VERSION `
-Platform ${{ matrix.platform }}
- name: Publish artifact
uses: actions/upload-artifact@v2
with:
name: ${{ env.ARTIFACT_NAME }}
path: ${{ runner.temp }}/artifact
test_node:
name: Test Node.js ${{ github.event.inputs.VERSION || '14.0.0' }} [${{ matrix.platform }}]
needs: build_node
runs-on: ${{ matrix.os }}
env:
ARTIFACT_NAME: node-${{ github.event.inputs.VERSION || '14.0.0' }}-${{ matrix.platform }}-x64
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
platform: linux
- os: macos-latest
platform: darwin
- os: windows-latest
platform: win32
steps:
- uses: actions/checkout@v2
with:
submodules: true
- name: Fully cleanup the toolcache directory before testing
run: ./helpers/clean-toolcache.ps1 -ToolName "node"
- name: Download artifact
uses: actions/download-artifact@v2
with:
path: ${{ runner.temp }}
- name: Extract files
run: |
if ('${{ matrix.platform }}' -eq 'win32') {
$artifactName = "${{ env.ARTIFACT_NAME }}.7z"
7z.exe x "$artifactName" -y | Out-Null
} else {
$artifactName = "${{ env.ARTIFACT_NAME }}.tar.gz"
tar -xzf $artifactName
}
working-directory: ${{ runner.temp }}/${{ env.ARTIFACT_NAME }}
- name: Apply build artifact to the local machine
run: |
if ('${{ matrix.platform }}' -eq 'win32') { powershell ./setup.ps1 } else { sh ./setup.sh }
working-directory: ${{ runner.temp }}/${{ env.ARTIFACT_NAME }}
- name: Setup Node.js ${{ env.VERSION }}
uses: actions/setup-node@v2.1.2
with:
node-version: ${{ env.VERSION }}
- name: Wait for the logs
run: |
Write-Host "Fake step that do nothing"
Write-Host "We need it because log of previous step 'Setup Node' is not available here yet."
Write-Host "In testing step (Node.Tests.ps1) we analyze build log of 'Setup Node' task"
Write-Host "to determine if Node.js version was consumed from cache and was downloaded"
for ($i = 0; $i -lt 200; $i++) { Get-Random }
- name: Run tests
run: |
Install-Module Pester -Force -Scope CurrentUser
Import-Module Pester
Invoke-Pester -Script ./Node.Tests.ps1 -EnableExit
working-directory: ./tests
publish_release:
name: Publish release
if: github.event_name == 'workflow_dispatch' && github.event.inputs.PUBLISH_RELEASES == 'true'
needs: test_node
runs-on: ubuntu-latest
steps:
- uses: actions/download-artifact@v2
- name: Publish Release ${{ env.VERSION }}
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ env.VERSION }}-${{ github.run_id }}
release_name: ${{ env.VERSION }}
body: |
Node.js ${{ env.VERSION }}
- name: Upload release assets
uses: actions/github-script@v2
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const fs = require('fs');
for (let artifactDir of fs.readdirSync('.')) {
let artifactName = fs.readdirSync(`${artifactDir}`)[0];
console.log(`Upload ${artifactName} asset`);
github.repos.uploadReleaseAsset({
owner: context.repo.owner,
repo: context.repo.repo,
release_id: ${{ steps.create_release.outputs.id }},
name: artifactName,
data: fs.readFileSync(`./${artifactDir}/${artifactName}`)
});
}
trigger_pr:
name: Trigger "Create Pull Request" workflow
needs: publish_release
runs-on: ubuntu-latest
steps:
- name: Trigger "Create Pull Request" workflow
uses: actions/github-script@v3
with:
github-token: ${{ secrets.PERSONAL_TOKEN }}
script: |
github.actions.createWorkflowDispatch({
owner: context.repo.owner,
repo: context.repo.repo,
workflow_id: 'create-pr.yml',
ref: 'main'
});
+33
View File
@@ -0,0 +1,33 @@
name: Create Pull Request
on:
workflow_dispatch:
defaults:
run:
shell: pwsh
jobs:
create_pr:
name: Create Pull Request
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
submodules: true
- name: Create versions-manifest.json
run: |
./helpers/packages-generation/manifest-generator.ps1 -RepositoryFullName "$env:GITHUB_REPOSITORY" `
-GitHubAccessToken "${{secrets.GITHUB_TOKEN}}" `
-OutputFile "./versions-manifest.json" `
-ConfigurationFile "./config/node-manifest-config.json"
- name: Create GitHub PR
run: |
$formattedDate = Get-Date -Format "MM/dd/yyyy"
./helpers/github/create-pull-request.ps1 `
-RepositoryFullName "$env:GITHUB_REPOSITORY" `
-AccessToken "${{secrets.GITHUB_TOKEN}}" `
-BranchName "update-versions-manifest-file" `
-CommitMessage "Update versions-manifest" `
-PullRequestTitle "[versions-manifest] Update for release from ${formattedDate}" `
-PullRequestBody "Update versions-manifest.json for release from ${formattedDate}"
+4 -6
View File
@@ -29,22 +29,20 @@ Here are a few things you can do that will increase the likelihood of your pull
### Directory structure
```
├── azure-pipelines/
| └──templates/
├── .github/
| └──workflows/
├── builders/
├── helpers/
├── installers/
└── tests/
└──sources/
```
- `azure-pipelines*` - contains global YAML definitions for build pipelines. Reusable templates for specific jobs are located in `templates` subfolder.
- `.github/workflows` - contains repository workflow files.
- `builders` - contains Node.js builder classes and functions.
- `helpers` - contains global helper functions and functions.
- `helpers` - contains global helper classes and functions.
- `installers` - contains installation script templates.
- `tests` - contains test scripts. Required tests sources are located in `sources` subfolder.
\* _We use Azure Pipelines because there are a few features that Actions is still missing, we'll move to Actions as soon as possible_.
## Resources
- [How to Contribute to Open Source](https://opensource.guide/how-to-contribute/)
+2 -2
View File
@@ -6,10 +6,10 @@ The file [versions-manifest.json](./versions-manifest.json) contains the list of
**Status**: Currently under development and in use for beta and preview actions. This repo is undergoing rapid changes.
Latest of LTS versions will be installed on the [virtual-environments](https://github.com/actions/virtual-environments) images. Other versions will be pulled JIT using the [`setup-node`](https://github.com/actions/setup-node) action.
Latest of LTS versions will be installed on the [virtual-environments](https://github.com/actions/virtual-environments) images. Other versions will be pulled JIT using the [`setup-node`](https://github.com/actions/setup-node) action.
## Adding new versions
We are trying to prepare packages for new versions of Node.js as soon as they are released. Please open an issue if any versions are missing.
We are trying to prepare packages for new versions of Node.js as soon as they are released. Please open an issue in [actions/virtual-environments](https://github.com/actions/virtual-environments) if any versions are missing.
## Contribution
Contributions are welcome! See [Contributor's Guide](./CONTRIBUTING.md) for more details about contribution process and code structure
-65
View File
@@ -1,65 +0,0 @@
name: $(date:yyyyMMdd)$(rev:.r)-Node.js-$(VERSION)
trigger: none
pr:
autoCancel: true
branches:
include:
- main
paths:
exclude:
- versions-manifest.json
stages:
- stage: Build_Node_Darwin
dependsOn: []
variables:
Platform: darwin
Architecture: x64
jobs:
- template: /azure-pipelines/templates/build-job.yml
- stage: Test_Node_Darwin
condition: succeeded()
dependsOn: Build_Node_Darwin
variables:
VmImage: macOS-latest
Platform: darwin
Architecture: x64
jobs:
- template: /azure-pipelines/templates/test-job.yml
- stage: Build_Node_Linux
dependsOn: []
variables:
Platform: linux
Architecture: x64
jobs:
- template: /azure-pipelines/templates/build-job.yml
- stage: Test_Node_Linux
condition: succeeded()
dependsOn: Build_Node_Linux
variables:
VmImage: ubuntu-latest
Platform: linux
Architecture: x64
jobs:
- template: /azure-pipelines/templates/test-job.yml
- stage: Build_Node_Windows
dependsOn: []
variables:
Platform: win32
Architecture: x64
jobs:
- template: /azure-pipelines/templates/build-job.yml
- stage: Test_Node_Windows
condition: succeeded()
dependsOn: Build_Node_Windows
variables:
VmImage: windows-latest
Platform: win32
Architecture: x64
jobs:
- template: /azure-pipelines/templates/test-job.yml
-21
View File
@@ -1,21 +0,0 @@
jobs:
- job: Build_Node
timeoutInMinutes: 90
pool:
name: Azure Pipelines
vmImage: ubuntu-latest
steps:
- checkout: self
- task: PowerShell@2
displayName: 'Build Node $(Version)'
inputs:
targetType: filePath
filePath: './builders/build-node.ps1'
arguments: '-Version $(Version) -Platform $(Platform) -Architecture $(Architecture)'
- task: PublishPipelineArtifact@1
displayName: 'Publish Artifact: Node.js $(Version)'
inputs:
targetPath: '$(Build.ArtifactStagingDirectory)'
artifactName: 'node-$(Version)-$(Platform)-$(Architecture)'
-75
View File
@@ -1,75 +0,0 @@
jobs:
- job: Test_Node
pool:
name: Azure Pipelines
vmImage: $(VmImage)
steps:
- checkout: self
submodules: true
- task: PowerShell@2
displayName: Fully cleanup the toolcache directory before testing
inputs:
targetType: filePath
filePath: helpers/clean-toolcache.ps1
arguments: -ToolName "node"
- task: DownloadPipelineArtifact@2
inputs:
source: 'current'
artifact: 'node-$(Version)-$(Platform)-$(Architecture)'
path: $(Build.ArtifactStagingDirectory)
- task: ExtractFiles@1
inputs:
archiveFilePatterns: '$(Build.ArtifactStagingDirectory)/node-$(Version)-$(Platform)-$(Architecture).*'
destinationFolder: $(Build.BinariesDirectory)
cleanDestinationFolder: false
- task: PowerShell@2
displayName: 'Apply build artifact to the local machines'
inputs:
targetType: inline
script: |
if ("$(Platform)" -match 'win32') { powershell ./setup.ps1 } else { sh ./setup.sh }
workingDirectory: '$(Build.BinariesDirectory)'
- task: NodeTool@0
displayName: 'Use Node $(Version)'
inputs:
versionSpec: $(Version)
- task: PowerShell@2
displayName: 'Wait for the logs'
inputs:
targetType: inline
script: |
Write-Host "Fake step that do nothing"
Write-Host "We need it because log of previous step 'Use Node' is not available here yet."
Write-Host "In testing step (Node.Tests.ps1) we analyze build log of 'Use Node' task"
Write-Host "to determine if Node.js version was consumed from cache and was downloaded"
- task: PowerShell@2
displayName: 'Run tests'
inputs:
TargetType: inline
script: |
Install-Module Pester -Force -Scope CurrentUser -RequiredVersion 4.10.1
Import-Module Pester
$pesterParams = @{
Path="./Node.Tests.ps1";
Parameters=@{
Version="$(Version)";
}
}
Invoke-Pester -Script $pesterParams -OutputFile "test_results.xml" -OutputFormat NUnitXml
workingDirectory: '$(Build.SourcesDirectory)/tests'
- task: PublishTestResults@2
displayName: 'Publish test results'
inputs:
testResultsFiles: '*.xml'
testResultsFormat: NUnit
searchFolder: 'tests'
failTaskOnFailedTests: true
testRunTitle: "Node.js $(Version)-$(Platform)"
condition: always()
+2 -2
View File
@@ -1,5 +1,5 @@
using module "./builders/win-node-builder.psm1"
using module "./builders/nix-node-builder.psm1"
using module "./win-node-builder.psm1"
using module "./nix-node-builder.psm1"
<#
.SYNOPSIS
+1 -1
View File
@@ -1,4 +1,4 @@
using module "./builders/node-builder.psm1"
using module "./node-builder.psm1"
class NixNodeBuilder : NodeBuilder {
<#
+12 -6
View File
@@ -16,10 +16,13 @@ class NodeBuilder {
The architecture with which Node.js should be built.
.PARAMETER TempFolderLocation
The location of temporary files that will be used during Node.js package generation. Using system BUILD_STAGINGDIRECTORY variable value.
The location of temporary files that will be used during Node.js package generation.
.PARAMETER ArtifactLocation
The location of generated Node.js artifact. Using system environment BUILD_BINARIESDIRECTORY variable value.
.PARAMETER WorkFolderLocation
The location of installation files.
.PARAMETER ArtifactFolderLocation
The location of generated Node.js artifact.
.PARAMETER InstallationTemplatesLocation
The location of installation script template. Using "installers" folder from current repository.
@@ -40,9 +43,8 @@ class NodeBuilder {
$this.Architecture = $architecture
$this.TempFolderLocation = [IO.Path]::GetTempPath()
$this.WorkFolderLocation = $env:BUILD_BINARIESDIRECTORY
$this.ArtifactFolderLocation = $env:BUILD_STAGINGDIRECTORY
$this.WorkFolderLocation = Join-Path $env:RUNNER_TEMP "binaries"
$this.ArtifactFolderLocation = Join-Path $env:RUNNER_TEMP "artifact"
$this.InstallationTemplatesLocation = Join-Path -Path $PSScriptRoot -ChildPath "../installers"
}
@@ -84,6 +86,10 @@ class NodeBuilder {
Generates Node.js artifact from downloaded binaries.
#>
Write-Host "Create WorkFolderLocation and ArtifactFolderLocation folders"
New-Item -Path $this.WorkFolderLocation -ItemType "directory"
New-Item -Path $this.ArtifactFolderLocation -ItemType "directory"
Write-Host "Download Node.js $($this.Version) [$($this.Architecture)] executable..."
$binariesArchivePath = $this.Download()
+1 -1
View File
@@ -1,4 +1,4 @@
using module "./builders/node-builder.psm1"
using module "./node-builder.psm1"
class WinNodeBuilder : NodeBuilder {
<#
+2 -1
View File
@@ -3,5 +3,6 @@
"groups": {
"arch": 2,
"platform": 1
}
},
"lts_rule_expression": "(Invoke-RestMethod 'https://raw.githubusercontent.com/nodejs/Release/main/schedule.json').PSObject.Properties | Where-Object { $_.Value.codename } | ForEach-Object { @{ Name = $_.Name.TrimStart('v'); Value = $_.Value.codename } }"
}
+1 -1
Submodule helpers updated: 1069e7a4ec...46a901fa87
+17 -15
View File
@@ -1,18 +1,17 @@
param (
[Version] [Parameter (Mandatory = $true)] [ValidateNotNullOrEmpty()]
$Version
)
Import-Module (Join-Path $PSScriptRoot "../helpers/pester-extensions.psm1")
function Get-UseNodeLogs {
$logsFolderPath = Join-Path -Path $env:AGENT_HOMEDIRECTORY -ChildPath "_diag" | Join-Path -ChildPath "pages"
BeforeAll {
function Get-UseNodeLogs {
# GitHub Windows images don't have `HOME` variable
$homeDir = $env:HOME ?? $env:HOMEDRIVE
$logsFolderPath = Join-Path -Path $homeDir -ChildPath "runners/*/_diag/pages" -Resolve
$useNodeLogFile = Get-ChildItem -Path $logsFolderPath | Where-Object {
$logContent = Get-Content $_.Fullname -Raw
return $logContent -match "Use Node"
} | Select-Object -First 1
return $useNodeLogFile.Fullname
$useNodeLogFile = Get-ChildItem -Path $logsFolderPath | Where-Object {
$logContent = Get-Content $_.Fullname -Raw
return $logContent -match "setup-node@v"
} | Select-Object -First 1
return $useNodeLogFile.Fullname
}
}
Describe "Node.js" {
@@ -22,13 +21,16 @@ Describe "Node.js" {
It "version is correct" {
$versionOutput = Invoke-Expression "node --version"
$versionOutput | Should -Match $Version
$versionOutput | Should -Match $env:VERSION
}
It "is used from tool-cache" {
$nodePath = (Get-Command "node").Path
$nodePath | Should -Not -BeNullOrEmpty
$expectedPath = Join-Path -Path $env:AGENT_TOOLSDIRECTORY -ChildPath "node"
# GitHub Windows images don't have `AGENT_TOOLSDIRECTORY` variable
$toolcacheDir = $env:AGENT_TOOLSDIRECTORY ?? $env:RUNNER_TOOL_CACHE
$expectedPath = Join-Path -Path $toolcacheDir -ChildPath "node"
$nodePath.startsWith($expectedPath) | Should -BeTrue -Because "'$nodePath' is not started with '$expectedPath'"
}
@@ -37,7 +39,7 @@ Describe "Node.js" {
$useNodeLogFile = Get-UseNodeLogs
$useNodeLogFile | Should -Exist
$useNodeLogContent = Get-Content $useNodeLogFile -Raw
$useNodeLogContent | Should -Match "Found tool in cache"
$useNodeLogContent | Should -Match "Found in cache"
}
It "Run simple code" {
File diff suppressed because it is too large Load Diff