Newer
Older
AUTOBUILD_BUILD_ID: $CI_PIPELINE_ID
AUTOBUILD_INSTALLABLE_CACHE: "$CI_PROJECT_DIR/.cache/autobuild"
PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip"
stage: build
tags:
- autobuild
- windows
cache:
key:
files:
- autobuild.xml
prefix: ${CI_JOB_NAME}
paths:
- .cache/autobuild
- .cache/pip
- .venv/
when: 'always'

Rye Mutt
committed
variables:
USE_SENTRY: "TRUE"
- virtualenv -p C:\Python39\python.exe .venv
- pip3 install --upgrade autobuild -i https://ci-job-token:${CI_JOB_TOKEN}@git.alchemyviewer.org/api/v4/projects/54/packages/pypi/simple --extra-index-url https://pypi.org/simple
- autobuild configure -c ReleaseOS -- -DUSE_FMODSTUDIO=ON -DUSE_NVAPI=ON -DUSE_LTO=ON -DDISABLE_FATAL_WARNINGS=ON -DREVISION_FROM_VCS=FALSE
- autobuild build -c ReleaseOS --no-configure
- autobuild graph -c ReleaseOS --graph-file alchemy-windows${AUTOBUILD_ADDRSIZE}-dependencies.svg
artifacts:
name: "$env:CI_COMMIT_REF_NAME-$env:CI_COMMIT_SHORT_SHA"
paths:
- build-vc-*/newview/Release/build_data.json
- build-vc-*/newview/Release/alchemy-bin.exe

Rye Mutt
committed
- build-vc-*/newview/Release/alchemy-bin.pdb
- build-vc-*/packages/lib/release/alut*.dll
- build-vc-*/packages/lib/release/epoxy-*.dll
- build-vc-*/packages/lib/release/glod*.dll
- build-vc-*/packages/lib/release/libapr*.dll
- build-vc-*/packages/lib/release/libexpat*.dll
- build-vc-*/packages/lib/release/libhunspell*.dll
- build-vc-*/packages/lib/release/libogg*.dll
- build-vc-*/packages/lib/release/libvorbis*.dll
- build-vc-*/packages/lib/release/OpenAL32*.dll
- build-vc-*/packages/lib/release/openjp2*.dll
- build-vc-*/packages/lib/release/sentry.dll
- build-vc-*/packages/lib/release/xmlrpc-epi*.dll
- build-vc-*/packages/lib/release/*.pdb
- build-vc-*/newview/Release/Alchemy_*_Setup.exe
cache:
key:
files:
- autobuild.xml
prefix: ${CI_JOB_NAME}
paths:
- .cache/autobuild
- .cache/pip
- .venv
when: 'always'
- pip3 install --upgrade autobuild dmgbuild -i https://ci-job-token:${CI_JOB_TOKEN}@git.alchemyviewer.org/api/v4/projects/54/packages/pypi/simple --extra-index-url https://pypi.org/simple
- autobuild configure -c ReleaseOS -- -DUSE_FMODSTUDIO=ON -DUSE_NVAPI=ON -DUSE_LTO=ON -DDISABLE_FATAL_WARNINGS=ON -DREVISION_FROM_VCS=FALSE
- autobuild build -c ReleaseOS --no-configure
- autobuild graph -c ReleaseOS --graph-file alchemy-darwin${AUTOBUILD_ADDRSIZE}-dependencies.svg
artifacts:
name: "$env:CI_COMMIT_REF_NAME-$env:CI_COMMIT_SHORT_SHA"
expire_in: 1 week
paths:
- build-darwin-*/build_data.json
- build-darwin-*/packages/lib/release/libalut*.dylib
- build-darwin-*/packages/lib/release/libapr*.dylib
- build-darwin-*/packages/lib/release/libepoxy*.dylib
- build-darwin-*/packages/lib/release/libGLOD*.dylib
- build-darwin-*/packages/lib/release/libhunspell*.dylib
- build-darwin-*/packages/lib/release/libndofdev*.dylib
- build-darwin-*/packages/lib/release/libogg*.dylib
- build-darwin-*/packages/lib/release/libopenal*.dylib
- build-darwin-*/packages/lib/release/libvorbis*.dylib
- build-darwin-*/packages/lib/release/libxmlrpc*.dylib
- build-darwin-*/packages/lib/release/Sentry.framework
- build-darwin-*/packages/lib/release/*.dSYM
- build-darwin-*/newview/Release/*.app/Contents/MacOS/*
- build-darwin-*/newview/Release/*.dSYM
image: r.alchemyviewer.org/alchemy/infrastructure/ubuntu-build-image:latest-llvm
cache:
key:
files:
- autobuild.xml
prefix: ${CI_JOB_NAME}
paths:
- .cache/autobuild
- .cache/pip
- .venv
when: 'always'
before_script:
- pip3 install --upgrade autobuild -i https://ci-job-token:${CI_JOB_TOKEN}@git.alchemyviewer.org/api/v4/projects/54/packages/pypi/simple --extra-index-url https://pypi.org/simple
- autobuild configure -c ReleaseOS -- -DUSE_FMODSTUDIO=ON -DUSE_NVAPI=ON -DUSE_LTO=ON -DDISABLE_FATAL_WARNINGS=ON -DREVISION_FROM_VCS=FALSE
- autobuild build -c ReleaseOS --no-configure
- autobuild graph -c ReleaseOS --graph-file alchemy-linuxs${AUTOBUILD_ADDRSIZE}-dependencies.svg
artifacts:
name: "$env:CI_COMMIT_REF_NAME-$env:CI_COMMIT_SHORT_SHA"
- build-linux-*/newview/Alchemy_*.tar.xz
.win32_build:
extends: .win_build
variables:
AUTOBUILD_ADDRSIZE: 32
cache:
key:
prefix: windows32
.mac64_build:
extends: .mac_build
variables:
AUTOBUILD_ADDRSIZE: 64
cache:
key:
prefix: darwin64
.linux32_build:
extends: .linux_build
variables:
AUTOBUILD_ADDRSIZE: 32
cache:
key:
prefix: linux32
cache:
key:
prefix: linux64
.master_rules:
rules:
- if: $BUILD_CHANNEL || $CI_COMMIT_TAG
when: never
- if: '$CI_PIPELINE_SOURCE == "web"'
- if: '$CI_PIPELINE_SOURCE == "schedule"'
#- if: '$CI_COMMIT_BRANCH == "master" && $CI_PIPELINE_SOURCE == "push"'
# when: delayed
# start_in: '12 hours'
VIEWER_CHANNEL_TYPE: Test
VIEWER_USE_CRASHPAD: "FALSE"
.project_rules:
rules:
- if: '$BUILD_CHANNEL == "Project" && ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "schedule")'
- if: '$CI_COMMIT_TAG =~ /.*-project/'
variables:
VIEWER_CHANNEL_TYPE: Project
.beta_rules:
rules:
- if: '$BUILD_CHANNEL == "Beta" && ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "schedule")'
- if: '$CI_COMMIT_TAG =~ /.*-beta/'
variables:
VIEWER_CHANNEL_TYPE: Beta
.release_rules:
rules:
- if: '$BUILD_CHANNEL == "Release" && ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "schedule")'
- if: '$CI_COMMIT_TAG =~ /.*-release/'
VIEWER_CHANNEL_TYPE: Release
build:master:linux64:
extends:
- .linux64_build
- .master_rules
build:master:mac64:
extends:
- .mac64_build
- .master_rules
.build:master:windows32:
extends:
- .win32_build
- .master_rules
build:master:windows64:
extends:
- .win64_build
- .master_rules
build:project:linux64:
extends:
- .linux64_build
- .project_rules
build:project:mac64:
extends:
- .mac64_build
- .project_rules
.build:project:windows64:
extends:
- .win32_build
- .project_rules
build:project:windows64:
extends:
- .win64_build
- .project_rules
build:beta:mac64:
extends:
- .mac64_build
- .beta_rules
.build:beta:windows32:
extends:
- .win32_build
- .beta_rules
build:release:mac64:
extends:
- .mac64_build
- .release_rules
.build:release:windows32:
extends:
- .win32_build
- .release_rules
allow_failure: false
$BuildData = Get-Content ./build-vc-64/newview/Release/build_data.json | ConvertFrom-Json
$BuildChannelVersion = $BuildData."Channel" + ' ' + $BuildData."Version"
$PkgName = $BuildData.Channel.Replace(" ", "_")
$PkgVer = $BuildData.Version
$UploadDestURL = "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/${PkgName}/${PkgVer}"
$UploadParams = @{ UseBasicParsing = $true;
Method = "PUT";
Headers = @{
Verbose = $true; };
If ($env:USE_SENTRY -eq 'TRUE')
{
sentry-cli releases new $BuildChannelVersion
sentry-cli releases set-commits --auto $BuildChannelVersion
}
Push-Location ./build-linux-64/newview/
$FileNameLnx64 = Get-ChildItem -Path . -Name -Include Alchemy_*.tar.xz
Invoke-WebRequest @UploadParams -InFile ./$FileNameLnx64 -Uri "${UploadDestURL}/${FileNameLnx64}"
Push-Location ./build-darwin-64/
Push-Location ./newview/
$FileNameMac64 = Get-ChildItem -Path . -Name -Include Alchemy_*.dmg
Invoke-WebRequest @UploadParams -InFile ./$FileNameMac64 -Uri "${UploadDestURL}/${FileNameMac64}"
Pop-Location
If ($env:USE_SENTRY -eq 'TRUE')
{
sentry-cli upload-dif --include-sources newview/Release/
sentry-cli upload-dif packages/
}

Rye Mutt
committed
Push-Location ./build-vc-64/
Push-Location ./newview/Release/
$FileNameWin64 = Get-ChildItem -Path . -Name -Include Alchemy_*_Setup.exe
Invoke-WebRequest @UploadParams -InFile ./$FileNameWin64 -Uri "${UploadDestURL}/${FileNameWin64}"
Pop-Location
If ($env:USE_SENTRY -eq 'TRUE')
{
sentry-cli upload-dif --include-sources newview/Release/alchemy-bin.*
sentry-cli upload-dif packages/
}
{
sentry-cli releases finalize $BuildChannelVersion
}
upload:project:
extends:
- .upload_template
rules:
- if: '$BUILD_CHANNEL == "Project" && ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "schedule")'
when: manual
- if: '$CI_COMMIT_TAG =~ /.*-project/'
when: manual
upload:beta:
extends:
- .upload_template
rules:
- if: '$BUILD_CHANNEL == "Beta" && ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "schedule")'
when: manual
- if: '$CI_COMMIT_TAG =~ /.*-beta/'
when: manual
upload:release:
extends:
- .upload_template
rules:
- if: '$BUILD_CHANNEL == "Release" && ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "schedule")'
when: manual
- if: '$CI_COMMIT_TAG =~ /.*-release/'
when: manual