product-build-linux.yml 4.4 KB
Newer Older
J
Joao Moreno 已提交
1 2 3
steps:
- task: NodeTool@0
  inputs:
4
    versionSpec: "8.12.0"
J
Joao Moreno 已提交
5 6 7

- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@2
  inputs:
8
    versionSpec: "1.10.1"
J
Joao Moreno 已提交
9 10 11 12 13 14 15 16 17

- script: |
    set -e
    export npm_config_arch="$(VSCODE_ARCH)"
    if [[ "$(VSCODE_ARCH)" == "ia32" ]]; then
      export PKG_CONFIG_PATH="/usr/lib/i386-linux-gnu/pkgconfig"
    fi

    echo "machine monacotools.visualstudio.com password $(VSO_PAT)" > ~/.netrc
J
Joao Moreno 已提交
18
    CHILD_CONCURRENCY=1 yarn
J
Joao Moreno 已提交
19 20
    npm run gulp -- hygiene
    npm run monaco-compile-check
21
    npm run strict-null-check
J
Joao Moreno 已提交
22
    VSCODE_MIXIN_PASSWORD="$(VSCODE_MIXIN_PASSWORD)" npm run gulp -- mixin
J
Joao Moreno 已提交
23
    node build/azure-pipelines/common/installDistro.js
J
Joao Moreno 已提交
24 25 26 27 28 29 30
    node build/lib/builtInExtensions.js

- script: |
    set -e
    VSCODE_MIXIN_PASSWORD="$(VSCODE_MIXIN_PASSWORD)" npm run gulp -- vscode-linux-$(VSCODE_ARCH)-min
  name: build

J
Joao Moreno 已提交
31 32 33
- script: |
    set -e
    npm run gulp -- "electron-$(VSCODE_ARCH)"
J
Joao Moreno 已提交
34

J
Joao Moreno 已提交
35 36
    # xvfb seems to be crashing often, let's make sure it's always up
    service xvfb start
J
Joao Moreno 已提交
37

J
Joao Moreno 已提交
38 39 40
    DISPLAY=:10 ./scripts/test.sh --build --tfs "Unit Tests"
    # yarn smoketest -- --build "$(agent.builddirectory)/VSCode-linux-$(VSCODE_ARCH)"
  name: test
J
Joao Moreno 已提交
41 42 43

- script: |
    set -e
J
Joao Moreno 已提交
44 45
    REPO="$(pwd)"
    ROOT="$REPO/.."
J
Joao Moreno 已提交
46
    ARCH="$(VSCODE_ARCH)"
J
Joao Moreno 已提交
47 48

    # Publish tarball
J
Joao Moreno 已提交
49
    PLATFORM_LINUX="linux-$(VSCODE_ARCH)"
J
Joao Moreno 已提交
50 51 52 53 54 55 56 57 58 59
    [[ "$ARCH" == "ia32" ]] && DEB_ARCH="i386" || DEB_ARCH="amd64"
    [[ "$ARCH" == "ia32" ]] && RPM_ARCH="i386" || RPM_ARCH="x86_64"
    BUILDNAME="VSCode-$PLATFORM_LINUX"
    BUILD="$ROOT/$BUILDNAME"
    BUILD_VERSION="$(date +%s)"
    [ -z "$VSCODE_QUALITY" ] && TARBALL_FILENAME="code-$BUILD_VERSION.tar.gz" || TARBALL_FILENAME="code-$VSCODE_QUALITY-$BUILD_VERSION.tar.gz"
    TARBALL_PATH="$ROOT/$TARBALL_FILENAME"
    PACKAGEJSON="$BUILD/resources/app/package.json"
    VERSION=$(node -p "require(\"$PACKAGEJSON\").version")

J
Joao Moreno 已提交
60 61
    rm -rf $ROOT/code-*.tar.*
    (cd $ROOT && tar -czf $TARBALL_PATH $BUILDNAME)
J
Joao Moreno 已提交
62

J
Joao Moreno 已提交
63 64 65
    AZURE_DOCUMENTDB_MASTERKEY="$(AZURE_DOCUMENTDB_MASTERKEY)" \
    AZURE_STORAGE_ACCESS_KEY_2="$(AZURE_STORAGE_ACCESS_KEY_2)" \
    MOONCAKE_STORAGE_ACCESS_KEY="$(MOONCAKE_STORAGE_ACCESS_KEY)" \
J
Joao Moreno 已提交
66
    node build/azure-pipelines/common/publish.js "$VSCODE_QUALITY" "$PLATFORM_LINUX" archive-unsigned "$TARBALL_FILENAME" "$VERSION" true "$TARBALL_PATH"
J
Joao Moreno 已提交
67 68

    # Publish hockeyapp symbols
J
Joao Moreno 已提交
69
    node build/azure-pipelines/common/symbols.js "$(VSCODE_MIXIN_PASSWORD)" "$(VSCODE_HOCKEYAPP_TOKEN)" "$(VSCODE_ARCH)" "$(VSCODE_HOCKEYAPP_ID_LINUX64)"
J
Joao Moreno 已提交
70

J
Joao Moreno 已提交
71
    # Publish DEB
J
Joao Moreno 已提交
72 73 74 75 76
    npm run gulp -- "vscode-linux-$(VSCODE_ARCH)-build-deb"
    PLATFORM_DEB="linux-deb-$ARCH"
    [[ "$ARCH" == "ia32" ]] && DEB_ARCH="i386" || DEB_ARCH="amd64"
    DEB_FILENAME="$(ls $REPO/.build/linux/deb/$DEB_ARCH/deb/)"
    DEB_PATH="$REPO/.build/linux/deb/$DEB_ARCH/deb/$DEB_FILENAME"
J
Joao Moreno 已提交
77

J
Joao Moreno 已提交
78 79 80
    AZURE_DOCUMENTDB_MASTERKEY="$(AZURE_DOCUMENTDB_MASTERKEY)" \
    AZURE_STORAGE_ACCESS_KEY_2="$(AZURE_STORAGE_ACCESS_KEY_2)" \
    MOONCAKE_STORAGE_ACCESS_KEY="$(MOONCAKE_STORAGE_ACCESS_KEY)" \
J
Joao Moreno 已提交
81
    node build/azure-pipelines/common/publish.js "$VSCODE_QUALITY" "$PLATFORM_DEB" package "$DEB_FILENAME" "$VERSION" true "$DEB_PATH"
J
Joao Moreno 已提交
82 83

    # Publish RPM
J
Joao Moreno 已提交
84 85 86 87 88
    npm run gulp -- "vscode-linux-$(VSCODE_ARCH)-build-rpm"
    PLATFORM_RPM="linux-rpm-$ARCH"
    [[ "$ARCH" == "ia32" ]] && RPM_ARCH="i386" || RPM_ARCH="x86_64"
    RPM_FILENAME="$(ls $REPO/.build/linux/rpm/$RPM_ARCH/ | grep .rpm)"
    RPM_PATH="$REPO/.build/linux/rpm/$RPM_ARCH/$RPM_FILENAME"
J
Joao Moreno 已提交
89

J
Joao Moreno 已提交
90 91 92
    AZURE_DOCUMENTDB_MASTERKEY="$(AZURE_DOCUMENTDB_MASTERKEY)" \
    AZURE_STORAGE_ACCESS_KEY_2="$(AZURE_STORAGE_ACCESS_KEY_2)" \
    MOONCAKE_STORAGE_ACCESS_KEY="$(MOONCAKE_STORAGE_ACCESS_KEY)" \
J
Joao Moreno 已提交
93
    node build/azure-pipelines/common/publish.js "$VSCODE_QUALITY" "$PLATFORM_RPM" package "$RPM_FILENAME" "$VERSION" true "$RPM_PATH"
J
Joao Moreno 已提交
94 95

    # Publish Snap
J
Joao Moreno 已提交
96
    npm run gulp -- "vscode-linux-$(VSCODE_ARCH)-prepare-snap"
J
build  
Joao Moreno 已提交
97 98

    # Pack snap tarball artifact, in order to preserve file perms
J
Joao Moreno 已提交
99 100
    mkdir -p $REPO/.build/linux/snap-tarball
    SNAP_TARBALL_PATH="$REPO/.build/linux/snap-tarball/snap-$(VSCODE_ARCH).tar.gz"
J
build  
Joao Moreno 已提交
101 102
    rm -rf $SNAP_TARBALL_PATH
    (cd .build/linux && tar -czf $SNAP_TARBALL_PATH snap)
103

J
Joao Moreno 已提交
104 105
- task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0
  displayName: 'Component Detection'
J
build  
Joao Moreno 已提交
106 107 108 109

- task: PublishPipelineArtifact@0
  displayName: 'Publish Pipeline Artifact'
  inputs:
J
Joao Moreno 已提交
110
    artifactName: snap-$(VSCODE_ARCH)
J
Joao Moreno 已提交
111
    targetPath: .build/linux/snap-tarball