Windows builds with Azure Pipelines (#58)
This commit is contained in:
parent
dc649ff259
commit
098cab67bd
4 changed files with 114 additions and 9 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -1 +1,2 @@
|
|||
vscode
|
||||
VS*/*
|
65
azure-pipelines.yml
Normal file
65
azure-pipelines.yml
Normal file
|
@ -0,0 +1,65 @@
|
|||
# Node.js with Grunt
|
||||
# Build a Node.js project using the Grunt task runner.
|
||||
# Add steps that analyze code, save build artifacts, deploy, and more:
|
||||
# https://docs.microsoft.com/azure/devops/pipelines/languages/javascript
|
||||
|
||||
pool:
|
||||
vmImage: 'vs2017-win2016'
|
||||
|
||||
steps:
|
||||
- script: |
|
||||
choco install jq
|
||||
displayName: 'install jq from choco'
|
||||
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@2
|
||||
displayName: 'Install Yarn'
|
||||
- task: UsePythonVersion@0
|
||||
displayName: 'Use Python 2.x'
|
||||
inputs:
|
||||
versionSpec: 2.x
|
||||
- task: ShellScript@2
|
||||
displayName: 'get VSCode sources'
|
||||
inputs:
|
||||
scriptPath: get_repo.sh
|
||||
#args: '' # Optional
|
||||
#disableAutoCwd: false # Optional
|
||||
#cwd: '' # Optional
|
||||
#failOnStandardError: false
|
||||
- powershell: |
|
||||
$LATEST_MS_TAG="$(git -C vscode describe --tags)"
|
||||
Write-Host "##vso[task.setvariable variable=LATEST_MS_TAG]$LATEST_MS_TAG"
|
||||
displayName: 'set env LATEST_MS_TAG'
|
||||
- task: PowerShell@2
|
||||
inputs:
|
||||
filePath: 'check_tags.ps1'
|
||||
env:
|
||||
GITHUB_TOKEN: $(GITHUB_TOKEN)
|
||||
- script: |
|
||||
git -C vscode status
|
||||
displayName: 'vscode status'
|
||||
- powershell: |
|
||||
bash ./build.sh
|
||||
displayName: 'go build it!'
|
||||
- bash: |
|
||||
mv vscode\\.build\\win32-x64\\system-setup\\VSCodeSetup.exe VSCodiumSetup-x64-${LATEST_MS_TAG}.exe
|
||||
displayName: 'move the system setup'
|
||||
- bash: |
|
||||
mv vscode\\.build\\win32-x64\\user-setup\\VSCodeSetup.exe VSCodiumUserSetup-x64-${LATEST_MS_TAG}.exe
|
||||
displayName: 'move the user setup'
|
||||
- bash: |
|
||||
mv vscode\\.build\\win32-x64\\archive\\VSCode-win32-x64.zip VSCodium-win32-x64-${LATEST_MS_TAG}.zip
|
||||
displayName: 'move the zip folder'
|
||||
- task: PublishBuildArtifacts@1
|
||||
displayName: 'Publish artifacts: system-setup'
|
||||
inputs:
|
||||
PathtoPublish: 'VSCodiumSetup-x64-$(LATEST_MS_TAG).exe'
|
||||
ArtifactName: 'system_setup'
|
||||
- task: PublishBuildArtifacts@1
|
||||
displayName: 'Publish artifacts: user-setup'
|
||||
inputs:
|
||||
PathtoPublish: 'VSCodiumUserSetup-x64-$(LATEST_MS_TAG).exe'
|
||||
ArtifactName: 'user_setup'
|
||||
- task: PublishBuildArtifacts@1
|
||||
displayName: 'Publish artifacts: archive'
|
||||
inputs:
|
||||
PathtoPublish: 'VSCodium-win32-x64-$(LATEST_MS_TAG).zip'
|
||||
ArtifactName: 'archive'
|
25
build.sh
25
build.sh
|
@ -1,5 +1,4 @@
|
|||
#!/bin/bash
|
||||
|
||||
if [[ "$SHOULD_BUILD" == "yes" ]]; then
|
||||
cp -rp src/* vscode/
|
||||
cd vscode
|
||||
|
@ -7,7 +6,6 @@ if [[ "$SHOULD_BUILD" == "yes" ]]; then
|
|||
if [[ "$BUILDARCH" == "ia32" ]]; then
|
||||
export npm_config_arch=ia32
|
||||
fi
|
||||
|
||||
../update_settings.sh
|
||||
|
||||
yarn
|
||||
|
@ -18,28 +16,37 @@ if [[ "$SHOULD_BUILD" == "yes" ]]; then
|
|||
|
||||
export NODE_ENV=production
|
||||
|
||||
if [[ "$TRAVIS_OS_NAME" != "osx" ]]; then
|
||||
if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
|
||||
# microsoft adds their apt repo to sources
|
||||
# unless the app name is code-oss
|
||||
# as we are renaming the application to vscodium
|
||||
# we need to edit a line in the post install template
|
||||
sed -i "s/code-oss/vscodium/" resources/linux/debian/postinst.template
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
|
||||
npm run gulp vscode-darwin-min
|
||||
elif [[ "$BUILDARCH" == "ia32" ]]; then
|
||||
npm run gulp vscode-linux-ia32-min
|
||||
npm run gulp vscode-linux-ia32-build-deb
|
||||
npm run gulp vscode-linux-ia32-build-rpm
|
||||
unset npm_config_arch
|
||||
npm run gulp vscode-linux-ia32-min
|
||||
npm run gulp vscode-linux-ia32-build-deb
|
||||
npm run gulp vscode-linux-ia32-build-rpm
|
||||
unset npm_config_arch
|
||||
elif [[ "$BUILDARCH" == "arm64" ]]; then
|
||||
npm run gulp vscode-linux-arm64-min
|
||||
npm run gulp vscode-linux-arm64-build-deb
|
||||
# npm run gulp vscode-linux-arm64-build-rpm
|
||||
elif [[ "$CI_WINDOWS" == "True" ]]; then
|
||||
npx gulp vscode-win32-x64-min
|
||||
npx gulp vscode-win32-x64-copy-inno-updater
|
||||
npx gulp vscode-win32-x64-inno-updater
|
||||
npx gulp vscode-win32-x64-system-setup
|
||||
npx gulp vscode-win32-x64-user-setup
|
||||
npx gulp vscode-win32-x64-archive
|
||||
else
|
||||
npm run gulp vscode-linux-x64-min
|
||||
npm run gulp vscode-linux-x64-build-deb
|
||||
npm run gulp vscode-linux-x64-build-rpm
|
||||
fi
|
||||
fi
|
||||
|
||||
cd ..
|
||||
fi
|
||||
|
|
32
check_tags.ps1
Normal file
32
check_tags.ps1
Normal file
|
@ -0,0 +1,32 @@
|
|||
echo "token: $env:GITHUB_TOKEN"
|
||||
echo "tag: $env:LATEST_MS_TAG"
|
||||
$GITHUB_RESPONSE = curl.exe -s -H "Authorization: token $env:GITHUB_TOKEN" "https://api.github.com/repos/vscodium/vscodium/releases/tags/$env:LATEST_MS_TAG"
|
||||
echo "Github response: ${GITHUB_RESPONSE}"
|
||||
$VSCODIUM_ASSETS= $GITHUB_RESPONSE | jq '.assets'
|
||||
echo "VSCodium assets: ${VSCODIUM_ASSETS}"
|
||||
|
||||
# if we just don't have the github token, get out fast
|
||||
if (!$env:GITHUB_TOKEN) {
|
||||
return
|
||||
}
|
||||
if (!$VSCODIUM_ASSETS) {
|
||||
echo "Release assets do not exist at all, continuing build"
|
||||
$SHOULD_BUILD = 'yes'
|
||||
}
|
||||
|
||||
$WindowsAssets = ($VSCODIUM_ASSETS | ConvertFrom-Json) | Where-Object { $_.name.Contains('exe') }
|
||||
$SYSTEM_SETUP = $WindowsAssets | Where-Object { $_.name.Contains('Setup') }
|
||||
$USER_SETUP = $WindowsAssets | Where-Object { $_.name.Contains('User') }
|
||||
if (!$SYSTEM_SETUP) {
|
||||
echo "Building on Windows because we have no system-setup.exe";
|
||||
$SHOULD_BUILD = 'yes'
|
||||
}
|
||||
elseif (!$USER_SETUP) {
|
||||
echo "Building on Windows because we have no user-setup.exe";
|
||||
$SHOULD_BUILD = 'yes'
|
||||
}
|
||||
else {
|
||||
echo "Already have all the Windows builds"
|
||||
}
|
||||
|
||||
Write-Host "##vso[task.setvariable variable=SHOULD_BUILD]$SHOULD_BUILD"
|
Loading…
Reference in a new issue