Welcome to mirror list, hosted at ThFree Co, Russian Federation.

product-build-linux-server.yml « linux « azure-pipelines « build - github.com/microsoft/vscode.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: bae164fd660df7880bf39aeff148a3eeaa6e006c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
parameters:
  - name: VSCODE_QUALITY
    type: string

steps:
  - task: NodeTool@0
    inputs:
      versionSpec: "16.x"

  - ${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
      - task: AzureKeyVault@1
        displayName: "Azure Key Vault: Get Secrets"
        inputs:
          azureSubscription: "vscode-builds-subscription"
          KeyVaultName: vscode-build-secrets
          SecretsFilter: "github-distro-mixin-password,ESRP-PKI,esrp-aad-username,esrp-aad-password"

  - ${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
      - task: Docker@1
        displayName: "Pull Docker image"
        inputs:
          azureSubscriptionEndpoint: "vscode-builds-subscription"
          azureContainerRegistry: vscodehub.azurecr.io
          command: "Run an image"
          imageName: "vscode-linux-build-agent:centos7-devtoolset8-arm64"
          containerCommand: uname
        condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'arm64'))

  - ${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
      - script: |
          set -e
          cat << EOF > ~/.netrc
          machine github.com
          login vscode
          password $(github-distro-mixin-password)
          EOF

          git config user.email "vscode@microsoft.com"
          git config user.name "VSCode"
        displayName: Prepare tooling

  - ${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
      - script: |
          set -e
          git fetch https://github.com/$(VSCODE_MIXIN_REPO).git $VSCODE_DISTRO_REF
          echo "##vso[task.setvariable variable=VSCODE_DISTRO_COMMIT;]$(git rev-parse FETCH_HEAD)"
          git checkout FETCH_HEAD
        condition: and(succeeded(), ne(variables.VSCODE_DISTRO_REF, ' '))
        displayName: Checkout override commit

  - ${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
      - script: |
          set -e
          git pull --no-rebase https://github.com/$(VSCODE_MIXIN_REPO).git $(node -p "require('./package.json').distro")
        displayName: Merge distro

  - script: |
      set -e
      npm config set registry "$NPM_REGISTRY" --location=project
      npm config set always-auth=true --location=project
      yarn config set registry "$NPM_REGISTRY"
    condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'), ne(variables['NPM_REGISTRY'], 'none'))
    displayName: Setup NPM & Yarn

  - task: npmAuthenticate@0
    inputs:
      workingFile: .npmrc
    condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'), ne(variables['NPM_REGISTRY'], 'none'))
    displayName: Setup NPM Authentication

  - script: node build/setup-npm-registry.js $NPM_REGISTRY
    condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'), ne(variables['NPM_REGISTRY'], 'none'))
    displayName: Setup NPM Registry

  - script: |
      set -e
      $(pwd)/build/azure-pipelines/linux/scripts/install-remote-dependencies.sh
    displayName: Install dependencies
    env:
      GITHUB_TOKEN: "$(github-distro-mixin-password)"
    condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'))

  - ${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
      - script: docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
        displayName: Register Docker QEMU
        condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'arm64'))

  - ${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
      - script: |
          set -e
          docker run -e VSCODE_QUALITY -e GITHUB_TOKEN -v $(pwd):/root/vscode -v ~/.netrc:/root/.netrc vscodehub.azurecr.io/vscode-linux-build-agent:centos7-devtoolset8-arm64 /root/vscode/build/azure-pipelines/linux/scripts/install-remote-dependencies.sh
        displayName: Install dependencies via qemu
        env:
          GITHUB_TOKEN: "$(github-distro-mixin-password)"
        condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'arm64'))

  - script: |
      set -e
      tar -cz --ignore-failed-read -f $(Build.ArtifactStagingDirectory)/reh_node_modules-$(VSCODE_ARCH).tar.gz -C $(Build.SourcesDirectory)/remote node_modules
    displayName: Compress node_modules output

  - task: PublishPipelineArtifact@0
    displayName: "Publish remote node_modules"
    inputs:
      artifactName: "reh_node_modules-$(VSCODE_ARCH)"
      targetPath: $(Build.ArtifactStagingDirectory)/reh_node_modules-$(VSCODE_ARCH).tar.gz