|
| 1 | +stages: |
| 2 | + - build |
| 3 | + - deploy |
| 4 | + |
| 5 | +variables: |
| 6 | + VIEWER_USE_CRASHPAD: "TRUE" |
| 7 | + VIEWER_CRASHPAD_URL: $SENTRY_DSN |
| 8 | + |
| 9 | +.win_build: &win_build |
| 10 | + stage: build |
| 11 | + tags: |
| 12 | + - autobuild |
| 13 | + - windows |
| 14 | + before_script: |
| 15 | + - pipenv install |
| 16 | + script: |
| 17 | + - If ($env:VIEWER_CHANNEL_TYPE -eq 'Project') |
| 18 | + { |
| 19 | + $env:VIEWER_CHANNEL_CODENAME = $env:CI_COMMIT_REF_NAME[8..100] -join '' |
| 20 | + } |
| 21 | + - pipenv run autobuild configure -c Release -- -DUSE_FMODSTUDIO=ON -DUSE_NVAPI=ON -DUSE_LTO=ON -DVS_DISABLE_FATAL_WARNINGS=ON |
| 22 | + - pipenv run autobuild build -c Release --no-configure |
| 23 | + - If ($env:VIEWER_USE_CRASHPAD -eq 'TRUE') { |
| 24 | + - Push-Location .\build-vc-*\newview\Release\ |
| 25 | + - sentry-cli upload-dif --include-sources singularity-bin.exe singularity-bin.pdb crashpad_handler.exe crashpad_handler.pdb fmod.dll libcrypto-1_1.dll libcrypto-1_1.pdb libssl-1_1.dll libssl-1_1.pdb libcrypto-1_1-x64.dll libcrypto-1_1-x64.pdb libssl-1_1-x64.dll libssl-1_1-x64.pdb vcruntime140.dll msvcp140.dll libhunspell.dll libhunspell.pdb glod.dll |
| 26 | + - Pop-Location } |
| 27 | + artifacts: |
| 28 | + name: "$env:CI_COMMIT_REF_NAME-$env:CI_COMMIT_SHORT_SHA" |
| 29 | + expire_in: 2 week |
| 30 | + paths: |
| 31 | + - build-vc-*/newview/Release/build_data.json |
| 32 | + - build-vc-*/newview/Release/singularity-bin.pdb |
| 33 | + - build-vc-*/newview/Release/Singularity_*_Setup.exe |
| 34 | + |
| 35 | +.beta_rules: &beta_rules |
| 36 | + only: |
| 37 | + - /^.*-beta$/ |
| 38 | + except: |
| 39 | + - branches |
| 40 | + |
| 41 | +.release_rules: &release_rules |
| 42 | + only: |
| 43 | + - /^.*-release$/ |
| 44 | + except: |
| 45 | + - branches |
| 46 | + |
| 47 | +build:master:windows32: |
| 48 | + <<: *win_build |
| 49 | + interruptible: true |
| 50 | + variables: |
| 51 | + AUTOBUILD_ADDRSIZE: 32 |
| 52 | + VIEWER_CHANNEL_TYPE: Test |
| 53 | + VIEWER_USE_CRASHPAD: "FALSE" |
| 54 | + only: |
| 55 | + - schedules |
| 56 | + |
| 57 | +build:master:windows64: |
| 58 | + <<: *win_build |
| 59 | + interruptible: true |
| 60 | + variables: |
| 61 | + AUTOBUILD_ADDRSIZE: 64 |
| 62 | + VIEWER_CHANNEL_TYPE: Test |
| 63 | + VIEWER_USE_CRASHPAD: "FALSE" |
| 64 | + only: |
| 65 | + - schedules |
| 66 | + |
| 67 | +build:project:windows32: |
| 68 | + <<: *win_build |
| 69 | + interruptible: true |
| 70 | + variables: |
| 71 | + AUTOBUILD_ADDRSIZE: 32 |
| 72 | + VIEWER_CHANNEL_TYPE: Project |
| 73 | + VIEWER_USE_CRASHPAD: "FALSE" |
| 74 | + only: |
| 75 | + - /^project-.*$/ |
| 76 | + |
| 77 | +build:project:windows64: |
| 78 | + <<: *win_build |
| 79 | + interruptible: true |
| 80 | + variables: |
| 81 | + AUTOBUILD_ADDRSIZE: 64 |
| 82 | + VIEWER_CHANNEL_TYPE: Project |
| 83 | + only: |
| 84 | + - /^project-.*$/ |
| 85 | + |
| 86 | +build:beta:windows32: |
| 87 | + <<: *win_build |
| 88 | + variables: |
| 89 | + AUTOBUILD_ADDRSIZE: 32 |
| 90 | + VIEWER_CHANNEL_TYPE: Beta |
| 91 | + VIEWER_USE_CRASHPAD: "FALSE" |
| 92 | + <<: *beta_rules |
| 93 | + |
| 94 | +build:beta:windows64: |
| 95 | + <<: *win_build |
| 96 | + variables: |
| 97 | + AUTOBUILD_ADDRSIZE: 64 |
| 98 | + VIEWER_CHANNEL_TYPE: Beta |
| 99 | + <<: *beta_rules |
| 100 | + |
| 101 | +build:release:windows32: |
| 102 | + <<: *win_build |
| 103 | + variables: |
| 104 | + AUTOBUILD_ADDRSIZE: 32 |
| 105 | + VIEWER_CHANNEL_TYPE: Release |
| 106 | + VIEWER_USE_CRASHPAD: "FALSE" |
| 107 | + <<: *release_rules |
| 108 | + |
| 109 | +build:release:windows64: |
| 110 | + <<: *win_build |
| 111 | + variables: |
| 112 | + AUTOBUILD_ADDRSIZE: 64 |
| 113 | + VIEWER_CHANNEL_TYPE: Release |
| 114 | + <<: *release_rules |
| 115 | + |
| 116 | +.deploy_template: &deploy_template |
| 117 | + stage: deploy |
| 118 | + tags: |
| 119 | + - autobuild |
| 120 | + - windows |
| 121 | + script: |
| 122 | + - $BuildData = Get-Content .\build-vc-64\newview\Release\build_data.json | ConvertFrom-Json |
| 123 | + - $BuildChannelVersion = $BuildData."Channel" + ' ' + $BuildData."Version" |
| 124 | + - $UploadDestViewerDir = $BuildChannelVersion.ToLower().Replace(" ", "/") |
| 125 | + - $UploadDestURL = "https://pkg.alchemyviewer.org/repository/viewer/${UploadDestViewerDir}" |
| 126 | + |
| 127 | + - $UploadParams = @{ UseBasicParsing = $true; |
| 128 | + Method = "PUT"; |
| 129 | + Headers = @{ |
| 130 | + ContentType = "application/x-executable"; |
| 131 | + Authorization = "Basic $([System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes("$env:AUTOBUILD_HTTP_USER`:$env:AUTOBUILD_HTTP_PASS")))"; }; |
| 132 | + Verbose = $true; }; |
| 133 | + |
| 134 | + - Push-Location .\build-vc-32\newview\Release\ |
| 135 | + - $FileNameWin32 = Get-ChildItem -Path . -Name -Include Singularity_*_Setup.exe |
| 136 | + - Invoke-WebRequest @UploadParams -InFile .\$FileNameWin32 -Uri "${UploadDestURL}/${FileNameWin32}" |
| 137 | + - Pop-Location |
| 138 | + |
| 139 | + - Push-Location .\build-vc-64\newview\Release\ |
| 140 | + - $FileNameWin64 = Get-ChildItem -Path . -Name -Include Singularity_*_Setup.exe |
| 141 | + - Invoke-WebRequest @UploadParams -InFile .\$FileNameWin64 -Uri "${UploadDestURL}/${FileNameWin64}" |
| 142 | + - Pop-Location |
| 143 | + |
| 144 | + - sentry-cli releases new $BuildChannelVersion |
| 145 | + - sentry-cli releases set-commits --auto $BuildChannelVersion |
| 146 | + - sentry-cli releases finalize $BuildChannelVersion |
| 147 | + when: manual |
| 148 | + |
| 149 | +deploy_project: |
| 150 | + <<: *deploy_template |
| 151 | + environment: |
| 152 | + name: qa |
| 153 | + only: |
| 154 | + - /^project-.*$/ |
| 155 | + |
| 156 | +deploy_beta: |
| 157 | + <<: *deploy_template |
| 158 | + environment: |
| 159 | + name: staging |
| 160 | + <<: *beta_rules |
| 161 | + |
| 162 | +deploy_release: |
| 163 | + <<: *deploy_template |
| 164 | + environment: |
| 165 | + name: production |
| 166 | + <<: *release_rules |
0 commit comments