From 67a4e8fec95f284caa502d297bf8f3c512c24a69 Mon Sep 17 00:00:00 2001 From: Jane Chu <7559015+janechu@users.noreply.github.com> Date: Tue, 3 Dec 2024 13:04:27 -0800 Subject: [PATCH] Add azure pipeline CI (#7039) --- azure-pipelines-ci.yml | 87 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 azure-pipelines-ci.yml diff --git a/azure-pipelines-ci.yml b/azure-pipelines-ci.yml new file mode 100644 index 00000000000..ce7f16a3d0c --- /dev/null +++ b/azure-pipelines-ci.yml @@ -0,0 +1,87 @@ +trigger: + - master + +# The `resources` specify the location and version of the 1ES PT. +resources: + repositories: + - repository: 1esPipelines + type: git + name: 1ESPipelineTemplates/1ESPipelineTemplates + ref: refs/tags/release + +extends: + # The pipeline extends the 1ES PT which will inject different SDL and compliance tasks. + # For non-production pipelines, use "Unofficial" as defined below. + # For productions pipelines, use "Official". + template: v1/1ES.Official.PipelineTemplate.yml@1esPipelines + parameters: + # Update the pool with your team's 1ES hosted pool. + pool: + name: OneESPool # Name of your hosted pool + image: HostedPoolLinuxImage # Name of the image in your pool. If not specified, first image of the pool is used + os: linux # OS of the image. This value cannot be a variable. Allowed values: windows, linux, macOS + sdl: + sourceAnalysisPool: + name: OneESPool # Name of your hosted pool + image: HostedPoolWindowsImage # Name of the image in your pool. If not specified, first image of the pool is used + os: windows # OS of the image. Allowed values: windows, linux, macOS + containers: + playwright_container: + image: mcr.microsoft.com/playwright:v1.47.2-noble + stages: + - stage: Stage + jobs: + - job: HostJob + # If the pipeline publishes artifacts, use `templateContext` to define the artifacts. + # This will enable 1ES PT to run SDL analysis tools on the artifacts and then upload them. + templateContext: + outputs: + - output: pipelineArtifact + targetPath: $(System.ArtifactsDirectory) + artifactName: drop + + container: playwright_container + + variables: + npm_config_cache: $(Pipeline.Workspace)/.npm + + steps: + - checkout: self + persistCredentials: "true" + + - task: UseNode@1 + inputs: + version: "20.x" + displayName: "Install Node.js" + + - task: Cache@2 + inputs: + key: 'npm | "$(Agent.OS)" | package-lock.json' + restoreKeys: | + npm | "$(Agent.OS)" + path: $(npm_config_cache) + displayName: "Cache npm" + + - script: | + npm ci + displayName: "Install package dependencies" + + - script: | + npm run checkchange + displayName: "Check for the presence of changed files inside ./change" + + - script: | + npm run format:check + displayName: "Test Prettier format" + + - script: | + npm run build + displayName: "Build workspaces" + + - script: | + npm run test + displayName: "Testing unit tests" + + - script: | + npm run test:validation + displayName: "Testing final validation"