fix build

This commit is contained in:
Connor Peet
2022-10-10 11:08:59 -07:00
parent 191dc770d1
commit dc69e22984
14 changed files with 303 additions and 251 deletions

View File

@@ -1,28 +1,22 @@
parameters:
- name: VSCODE_BUILD_LINUX_ALPINE
type: boolean
default: false
- name: VSCODE_BUILD_LINUX
type: boolean
default: false
- name: VSCODE_BUILD_LINUX_ALPINE_ARM64
type: boolean
default: false
- name: VSCODE_BUILD_LINUX_ARM64
type: boolean
default: false
- name: VSCODE_QUALITY
type: string
- name: channel
type: string
default: stable
variables:
- name: VSCODE_CLI_TARGETS
value:
- ${{ if eq(variables.VSCODE_ARCH, 'arm64') }}:
- ${{ if eq(parameters.VSCODE_BUILD_LINUX_ALPINE_ARM64, true) }}:
- { target: aarch64-unknown-linux-musl, artifact: vscode_cli_alpine_arm64_cli }
- ${{ if eq(parameters.VSCODE_BUILD_LINUX_ARM64, true) }}:
- { target: aarch64-unknown-linux-gnu, artifact: vscode_cli_linux_arm64_cli }
- ${{ if eq(parameters.VSCODE_BUILD_ARCH, 'x86') }}:
- ${{ if eq(parameters.VSCODE_BUILD_LINUX_ALPINE, true) }}:
- { target: x86_64-unknown-linux-musl, artifact: vscode_cli_alpine_x64_cli }
- ${{ if eq(parameters.VSCODE_BUILD_LINUX, true) }}:
- { target: x86_64-unknown-linux-gnu, artifact: vscode_cli_linux_x64_cli }
steps:
# inspired by: https://github.com/emk/rust-musl-builder/blob/main/Dockerfile
- bash: |
@@ -48,30 +42,42 @@ steps:
- template: ../cli/install-rust-posix.yml
parameters:
targets: ${{ variables.VSCODE_CLI_TARGETS }}
targets:
- ${{ if eq(parameters.VSCODE_BUILD_LINUX_ALPINE_ARM64, true) }}:
- aarch64-unknown-linux-musl
- ${{ if eq(parameters.VSCODE_BUILD_LINUX_ALPINE, true) }}:
- x86_64-unknown-linux-musl
- ${{ if eq(parameters.VSCODE_BUILD_LINUX_ARM64, true) }}:
- aarch64-unknown-linux-gnu
- ${{ if eq(parameters.VSCODE_BUILD_LINUX, true) }}:
- x86_64-unknown-linux-gnu
- ${{ each target in variables.VSCODE_CLI_TARGETS }}:
- script: cargo build --release --target ${{ target.target }} --bin=code-tunnel
displayName: Compile ${{ target.artifact }}
workingDirectory: $(Build.SourcesDirectory)/cli
env:
VSCODE_CLI_VERSION: $(VSCODE_CLI_VERSION)
VSCODE_CLI_REMOTE_LICENSE_TEXT: $(VSCODE_CLI_REMOTE_LICENSE_TEXT)
VSCODE_CLI_REMOTE_LICENSE_PROMPT: $(VSCODE_CLI_REMOTE_LICENSE_PROMPT)
VSCODE_CLI_ASSET_NAME: ${{ target.artifact }}
VSCODE_CLI_AI_KEY: $(VSCODE_CLI_AI_KEY)
VSCODE_CLI_AI_ENDPOINT: $(VSCODE_CLI_AI_ENDPOINT)
CXX_aarch64-unknown-linux-musl: musl-g++
CC_aarch64-unknown-linux-musl: musl-gcc
- ${{ if eq(parameters.VSCODE_BUILD_LINUX_ALPINE_ARM64, true) }}:
- template: ../cli/cli-compile-and-publish.yml
parameters:
VSCODE_CLI_TARGET: aarch64-unknown-linux-musl
VSCODE_CLI_ARTIFACT: vscode_cli_alpine_arm64_cli
VSCODE_CLI_ENV:
CXX_aarch64-unknown-linux-musl: musl-g++
CC_aarch64-unknown-linux-musl: musl-gcc
- task: ArchiveFiles@2
inputs:
rootFolderOrFile: $(Build.SourcesDirectory)/cli/target/${{ target.target }}/release/code-tunnel
includeRootFolder: false
archiveType: tar
tarCompression: gz
archiveFile: $(Build.ArtifactStagingDirectory)/${{ target.artifact }}.tar.gz
- ${{ if eq(parameters.VSCODE_BUILD_LINUX_ALPINE, true) }}:
- template: ../cli/cli-compile-and-publish.yml
parameters:
VSCODE_CLI_TARGET: x86_64-unknown-linux-musl
VSCODE_CLI_ARTIFACT: vscode_cli_alpine_x64_cli
VSCODE_CLI_ENV:
CXX_aarch64-unknown-linux-musl: musl-g++
CC_aarch64-unknown-linux-musl: musl-gcc
- publish: $(Build.ArtifactStagingDirectory)/${{ target.artifact }}.tar.gz
artifact: ${{ target.artifact }}
displayName: Publish ${{ target.artifact }} artifact
- ${{ if eq(parameters.VSCODE_BUILD_LINUX_ARM64, true) }}:
- template: ../cli/cli-compile-and-publish.yml
parameters:
VSCODE_CLI_TARGET: aarch64-unknown-linux-gnu
VSCODE_CLI_ARTIFACT: vscode_cli_linux_arm64_cli
- ${{ if eq(parameters.VSCODE_BUILD_LINUX, true) }}:
- template: ../cli/cli-compile-and-publish.yml
parameters:
VSCODE_CLI_TARGET: x86_64-unknown-linux-gnu
VSCODE_CLI_ARTIFACT: vscode_cli_linux_x64_cli