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
|
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'
|
23
build.sh
23
build.sh
|
@ -1,5 +1,4 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
if [[ "$SHOULD_BUILD" == "yes" ]]; then
|
if [[ "$SHOULD_BUILD" == "yes" ]]; then
|
||||||
cp -rp src/* vscode/
|
cp -rp src/* vscode/
|
||||||
cd vscode
|
cd vscode
|
||||||
|
@ -7,7 +6,6 @@ if [[ "$SHOULD_BUILD" == "yes" ]]; then
|
||||||
if [[ "$BUILDARCH" == "ia32" ]]; then
|
if [[ "$BUILDARCH" == "ia32" ]]; then
|
||||||
export npm_config_arch=ia32
|
export npm_config_arch=ia32
|
||||||
fi
|
fi
|
||||||
|
|
||||||
../update_settings.sh
|
../update_settings.sh
|
||||||
|
|
||||||
yarn
|
yarn
|
||||||
|
@ -18,28 +16,37 @@ if [[ "$SHOULD_BUILD" == "yes" ]]; then
|
||||||
|
|
||||||
export NODE_ENV=production
|
export NODE_ENV=production
|
||||||
|
|
||||||
if [[ "$TRAVIS_OS_NAME" != "osx" ]]; then
|
if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
|
||||||
# microsoft adds their apt repo to sources
|
# microsoft adds their apt repo to sources
|
||||||
# unless the app name is code-oss
|
# unless the app name is code-oss
|
||||||
# as we are renaming the application to vscodium
|
# as we are renaming the application to vscodium
|
||||||
# we need to edit a line in the post install template
|
# we need to edit a line in the post install template
|
||||||
sed -i "s/code-oss/vscodium/" resources/linux/debian/postinst.template
|
sed -i "s/code-oss/vscodium/" resources/linux/debian/postinst.template
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
|
if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
|
||||||
npm run gulp vscode-darwin-min
|
npm run gulp vscode-darwin-min
|
||||||
elif [[ "$BUILDARCH" == "ia32" ]]; then
|
elif [[ "$BUILDARCH" == "ia32" ]]; then
|
||||||
npm run gulp vscode-linux-ia32-min
|
npm run gulp vscode-linux-ia32-min
|
||||||
npm run gulp vscode-linux-ia32-build-deb
|
npm run gulp vscode-linux-ia32-build-deb
|
||||||
npm run gulp vscode-linux-ia32-build-rpm
|
npm run gulp vscode-linux-ia32-build-rpm
|
||||||
unset npm_config_arch
|
unset npm_config_arch
|
||||||
elif [[ "$BUILDARCH" == "arm64" ]]; then
|
elif [[ "$BUILDARCH" == "arm64" ]]; then
|
||||||
npm run gulp vscode-linux-arm64-min
|
npm run gulp vscode-linux-arm64-min
|
||||||
npm run gulp vscode-linux-arm64-build-deb
|
npm run gulp vscode-linux-arm64-build-deb
|
||||||
# npm run gulp vscode-linux-arm64-build-rpm
|
# 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
|
else
|
||||||
npm run gulp vscode-linux-x64-min
|
npm run gulp vscode-linux-x64-min
|
||||||
npm run gulp vscode-linux-x64-build-deb
|
npm run gulp vscode-linux-x64-build-deb
|
||||||
npm run gulp vscode-linux-x64-build-rpm
|
npm run gulp vscode-linux-x64-build-rpm
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
cd ..
|
||||||
fi
|
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