Skip to content

Commit

Permalink
Switch to 1es pipelines (#265)
Browse files Browse the repository at this point in the history
  • Loading branch information
ejizba authored May 31, 2024
1 parent dda9db9 commit f5ddd07
Show file tree
Hide file tree
Showing 7 changed files with 148 additions and 102 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

|Branch|Status|Support level|Node.js Versions|
|---|---|---|---|
|v4.x (default)|[![Build Status](https://img.shields.io/azure-devops/build/azfunc/Azure%2520Functions/145/v4.x)](https://azfunc.visualstudio.com/Azure%20Functions/_build/latest?definitionId=145&branchName=v4.x) [![Test Status](https://img.shields.io/azure-devops/tests/azfunc/Azure%2520Functions/146/v4.x?compact_message)](https://azfunc.visualstudio.com/Azure%20Functions/_build/latest?definitionId=146&branchName=v4.x)|GA|20, 18|
|v3.x|[![Build Status](https://img.shields.io/azure-devops/build/azfunc/Azure%2520Functions/145/v3.x)](https://azfunc.visualstudio.com/Azure%20Functions/_build/latest?definitionId=145&branchName=v3.x) [![Test Status](https://img.shields.io/azure-devops/tests/azfunc/Azure%2520Functions/146/v3.x?compact_message)](https://azfunc.visualstudio.com/Azure%20Functions/_build/latest?definitionId=146&branchName=v3.x)|GA|20, 18, 16, 14|
|v4.x (default)|[![Build Status](https://img.shields.io/azure-devops/build/azfunc/public/514/v4.x)](https://azfunc.visualstudio.com/public/_build/latest?definitionId=514&branchName=v4.x) [![Test Status](https://img.shields.io/azure-devops/tests/azfunc/public/514/v4.x?compact_message)](https://azfunc.visualstudio.com/public/_build/latest?definitionId=514&branchName=v4.x)|GA|20, 18|
|v3.x|[![Build Status](https://img.shields.io/azure-devops/build/azfunc/public/514/v3.x)](https://azfunc.visualstudio.com/public/_build/latest?definitionId=514&branchName=v3.x) [![Test Status](https://img.shields.io/azure-devops/tests/azfunc/public/514/v3.x?compact_message)](https://azfunc.visualstudio.com/public/_build/latest?definitionId=514&branchName=v3.x)|GA|20, 18, 16, 14|

> _**Version 4 is Generally Available! 🎉✨ Read our [blog post](https://aka.ms/AzFuncNodeV4) and let us know what you think by reacting or commenting on our [GA discussion thread](https://aka.ms/AzFuncNodeV4Discussion)**_
Expand Down
50 changes: 50 additions & 0 deletions azure-pipelines/official-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
parameters:
- name: IsPrerelease
type: boolean
default: true

trigger:
batch: true
branches:
include:
- v4.x

# CI only, does not trigger on PRs.
pr: none

resources:
repositories:
- repository: 1es
type: git
name: 1ESPipelineTemplates/1ESPipelineTemplates
ref: refs/tags/release

extends:
template: v1/1ES.Official.PipelineTemplate.yml@1es
parameters:
pool:
name: 1es-pool-azfunc
image: 1es-windows-2022
os: windows

stages:
- stage: WindowsUnitTests
dependsOn: []
jobs:
- template: /azure-pipelines/templates/test.yml@self

- stage: LinuxUnitTests
dependsOn: []
jobs:
- template: /azure-pipelines/templates/test.yml@self
pool:
name: 1es-pool-azfunc
image: 1es-ubuntu-22.04
os: linux

- stage: Build
dependsOn: []
jobs:
- template: /azure-pipelines/templates/build.yml@self
parameters:
IsPrerelease: ${{ parameters.IsPrerelease }}
49 changes: 49 additions & 0 deletions azure-pipelines/public-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# This build is used for public PR and CI builds.

trigger:
batch: true
branches:
include:
- v4.x

pr:
branches:
include:
- v4.x

resources:
repositories:
- repository: 1es
type: git
name: 1ESPipelineTemplates/1ESPipelineTemplates
ref: refs/tags/release

extends:
template: v1/1ES.Unofficial.PipelineTemplate.yml@1es
parameters:
pool:
name: 1es-pool-azfunc-public
image: 1es-windows-2022
os: windows

stages:
- stage: WindowsUnitTests
dependsOn: []
jobs:
- template: /azure-pipelines/templates/test.yml@self

- stage: LinuxUnitTests
dependsOn: []
jobs:
- template: /azure-pipelines/templates/test.yml@self
pool:
name: 1es-pool-azfunc-public
image: 1es-ubuntu-22.04
os: linux

- stage: Build
dependsOn: []
jobs:
- template: /azure-pipelines/templates/build.yml@self
parameters:
IsPrerelease: true
58 changes: 15 additions & 43 deletions azure-pipelines/build.yml → azure-pipelines/templates/build.yml
Original file line number Diff line number Diff line change
@@ -1,26 +1,18 @@
parameters:
- name: IsPrerelease
type: boolean
default: true

pr:
branches:
include:
- v4.x

trigger:
- v4.x

jobs:
- job: BuildArtifacts
pool:
name: '1ES-Hosted-AzFunc'
demands:
- ImageOverride -equals MMS2019TLS
- job:
templateContext:
outputs:
- output: pipelineArtifact
path: $(Build.ArtifactStagingDirectory)/dropOutput
artifact: drop
sbomBuildDropPath: '$(Build.ArtifactStagingDirectory)/dropInput'
sbomPackageName: 'Azure Functions Node.js Programming Model'
# The list of components can't be determined from the webpacked file in the staging dir, so reference the original node_modules folder
sbomBuildComponentPath: '$(Build.SourcesDirectory)/node_modules'
steps:
- task: NodeTool@0
inputs:
versionSpec: 18.x
versionSpec: 20.x
displayName: 'Install Node.js'
- script: npm ci
displayName: 'npm ci'
Expand All @@ -42,33 +34,13 @@ jobs:
LICENSE
package.json
README.md
targetFolder: '$(Build.ArtifactStagingDirectory)'
targetFolder: '$(Build.ArtifactStagingDirectory)/dropInput'
cleanTargetFolder: true
- script: npm prune --production
displayName: 'npm prune --production' # so that only production dependencies are included in SBOM
- task: ManifestGeneratorTask@0
displayName: 'Generate SBOM'
inputs:
BuildDropPath: '$(Build.ArtifactStagingDirectory)'
# The list of components can't be determined from the webpacked file in the staging dir, so reference the original node_modules folder
BuildComponentPath: '$(Build.SourcesDirectory)/node_modules'
PackageName: 'Azure Functions Node.js Framework'
- script: npm pack
displayName: 'npm pack'
workingDirectory: '$(Build.ArtifactStagingDirectory)/dropInput'
- script: mkdir dropOutput && mv dropInput/*.tgz dropOutput
displayName: 'Move package to dropOutput'
workingDirectory: '$(Build.ArtifactStagingDirectory)'
- task: CopyFiles@2
displayName: 'Copy package to staging drop folder'
inputs:
sourceFolder: '$(Build.ArtifactStagingDirectory)'
contents: |
*.tgz
targetFolder: '$(Build.ArtifactStagingDirectory)/drop'
cleanTargetFolder: true
- task: PublishPipelineArtifact@1
displayName: 'Publish drop'
inputs:
targetPath: '$(Build.ArtifactStagingDirectory)/drop'
artifact: 'drop'
publishLocation: 'pipeline'
- task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0
displayName: 'Component Detection'
31 changes: 31 additions & 0 deletions azure-pipelines/templates/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
jobs:
- job: UnitTests

strategy:
matrix:
Node18:
NODE_VERSION: '18.x'
Node20:
NODE_VERSION: '20.x'

steps:
- task: NodeTool@0
inputs:
versionSpec: $(NODE_VERSION)
displayName: 'Install Node.js'
- script: npm ci
displayName: 'npm ci'
- script: npm run build
displayName: 'npm run build'
- script: npm run lint
displayName: 'npm run lint'
- script: npm run updateVersion -- --validate
displayName: 'validate version'
- script: npm test
displayName: 'Run unit tests'
- task: PublishTestResults@2
displayName: 'Publish Unit Test Results'
inputs:
testResultsFiles: 'test/unit-test-results.xml'
testRunTitle: '$(Agent.JobName)'
condition: succeededOrFailed()
55 changes: 0 additions & 55 deletions azure-pipelines/test.yml

This file was deleted.

3 changes: 1 addition & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,7 @@
"src/",
"types/",
"LICENSE",
"README.md",
"_manifest"
"README.md"
],
"engines": {
"node": ">=18.0"
Expand Down

0 comments on commit f5ddd07

Please sign in to comment.