Skip to content
Snippets Groups Projects
.gitlab-ci.yml 5.36 KiB
Newer Older
Rye Mutt's avatar
Rye Mutt committed
stages:
  - build
Rye Mutt's avatar
Rye Mutt committed
  # - deploy
Rye Mutt's avatar
Rye Mutt committed

variables:
  VIEWER_USE_CRASHPAD: "TRUE"
  VIEWER_CRASHPAD_URL: $SENTRY_DSN

Rye Mutt's avatar
Rye Mutt committed
# .win_build: &win_build
#   stage: build
#   tags:
#     - autobuild
#     - windows
#   before_script:
#     - pipenv install
#   script:
#     - If ($env:VIEWER_CHANNEL_TYPE -eq 'Project') 
#       { 
#           $env:VIEWER_CHANNEL_CODENAME = $env:CI_COMMIT_REF_NAME[8..100] -join '' 
#       }
#     - pipenv run autobuild configure -c ReleaseOS -- -DUSE_FMODSTUDIO=ON -DUSE_NVAPI=ON -DUSE_LTO=ON -DVS_DISABLE_FATAL_WARNINGS=ON
#     - pipenv run autobuild build -c ReleaseOS --no-configure
#     - If ($env:VIEWER_USE_CRASHPAD -eq 'TRUE') {
#     - Push-Location .\build-vc-*\newview\Release\
#     - sentry-cli upload-dif --include-sources alchemy-bin.exe alchemy-bin.pdb crashpad_handler.exe crashpad_handler.pdb openjpeg.pdb openjpeg.dll 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 nghttp2.dll glod.dll
#     - Pop-Location }
#   artifacts:
#     name: "$env:CI_COMMIT_REF_NAME-$env:CI_COMMIT_SHORT_SHA"
#     expire_in: 2 week
#     paths:
#       - build-vc-*/newview/Release/build_data.json
#       - build-vc-*/newview/Release/alchemy-bin.pdb
#       - build-vc-*/newview/Release/Alchemy_*_Setup.exe

.lnx_build: &lnx_build
Rye Mutt's avatar
Rye Mutt committed
  stage: build
Rye Mutt's avatar
Rye Mutt committed
  image: r.alchemyviewer.org/alchemy/infrastructure/debian-build-image:latest
Rye Mutt's avatar
Rye Mutt committed
  tags:
Rye Mutt's avatar
Rye Mutt committed
    - linux
    - docker
Rye Mutt's avatar
Rye Mutt committed
  script:
Rye Mutt's avatar
Rye Mutt committed
    - autobuild configure -c ReleaseOS -- -DUSE_FMODSTUDIO=ON -DUSE_NVAPI=ON -DUSE_LTO=ON -DUNIX_DISABLE_FATAL_WARNINGS=ON
Rye Mutt's avatar
Rye Mutt committed
    - autobuild build -c ReleaseOS --no-configure
Rye Mutt's avatar
Rye Mutt committed
  artifacts:
    name: "$env:CI_COMMIT_REF_NAME-$env:CI_COMMIT_SHORT_SHA"
    expire_in: 2 week
    paths:
      - build-linux-*/build_data.json
      - build-linux-*/newview/Alchemy_*.tar.bz2
Rye Mutt's avatar
Rye Mutt committed

Rye Mutt's avatar
Rye Mutt committed
build:master:linux64:
  <<: *lnx_build
Rye Mutt's avatar
Rye Mutt committed
  interruptible: true
  variables:
    AUTOBUILD_ADDRSIZE: 64
    VIEWER_CHANNEL_TYPE: Test
    VIEWER_USE_CRASHPAD: "FALSE"
  only:
    - schedules
Rye Mutt's avatar
Rye Mutt committed
    - web


# .beta_rules: &beta_rules
#   only:
#     - /^.*-beta$/
#   except:
#     - branches

# .release_rules: &release_rules
#   only:
#     - /^.*-release$/
#   except:
#     - branches

# build:master:windows32:
#   <<: *win_build
#   interruptible: true
#   variables:
#     AUTOBUILD_ADDRSIZE: 32
#     VIEWER_CHANNEL_TYPE: Test
#     VIEWER_USE_CRASHPAD: "FALSE"
#   only:
#     - schedules

# build:master:windows64:
#   <<: *win_build
#   interruptible: true
#   variables:
#     AUTOBUILD_ADDRSIZE: 64
#     VIEWER_CHANNEL_TYPE: Test
#     VIEWER_USE_CRASHPAD: "FALSE"
#   only:
#     - schedules

# build:project:windows32:
#   <<: *win_build
#   interruptible: true
#   variables:
#     AUTOBUILD_ADDRSIZE: 32
#     VIEWER_CHANNEL_TYPE: Project
#   only:
#     - /^project-.*$/

# build:project:windows64:
#   <<: *win_build
#   interruptible: true
#   variables:
#     AUTOBUILD_ADDRSIZE: 64
#     VIEWER_CHANNEL_TYPE: Project
#   only:
#     - /^project-.*$/

# build:beta:windows32:
#   <<: *win_build
#   variables:
#     AUTOBUILD_ADDRSIZE: 32
#     VIEWER_CHANNEL_TYPE: Beta
#   <<: *beta_rules

# build:beta:windows64:
#   <<: *win_build
#   variables:
#     AUTOBUILD_ADDRSIZE: 64
#     VIEWER_CHANNEL_TYPE: Beta
#   <<: *beta_rules

# build:release:windows32:
#   <<: *win_build
#   variables:
#     AUTOBUILD_ADDRSIZE: 32
#     VIEWER_CHANNEL_TYPE: Release
#   <<: *release_rules

# build:release:windows64:
#   <<: *win_build
#   variables:
#     AUTOBUILD_ADDRSIZE: 64
#     VIEWER_CHANNEL_TYPE: Release
#   <<: *release_rules

# .deploy_template: &deploy_template
#   stage: deploy
#   tags:
#     - autobuild
#     - windows
#   script:
#     - $BuildData = Get-Content .\build-vc-64\newview\Release\build_data.json | ConvertFrom-Json
#     - $BuildChannelVersion = $BuildData."Channel" + ' ' + $BuildData."Version"
#     - $UploadDestViewerDir = $BuildChannelVersion.ToLower().Replace(" ", "/")
#     - $UploadDestURL = "https://pkg.alchemyviewer.org/repository/viewer/${UploadDestViewerDir}"

#     - $UploadParams = @{ UseBasicParsing = $true;
#       Method = "PUT";
#       Headers = @{
#         ContentType = "application/x-executable";
#         Authorization = "Basic $([System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes("$env:AUTOBUILD_HTTP_USER`:$env:AUTOBUILD_HTTP_PASS")))"; };
#       Verbose = $true; };

#     - Push-Location .\build-vc-32\newview\Release\
#     - $FileNameWin32 = Get-ChildItem -Path . -Name -Include Alchemy_*_Setup.exe
#     - Invoke-WebRequest @UploadParams -InFile .\$FileNameWin32 -Uri "${UploadDestURL}/${FileNameWin32}"
#     - Pop-Location

#     - Push-Location .\build-vc-64\newview\Release\
#     - $FileNameWin64 = Get-ChildItem -Path . -Name -Include Alchemy_*_Setup.exe
#     - Invoke-WebRequest @UploadParams -InFile .\$FileNameWin64 -Uri "${UploadDestURL}/${FileNameWin64}"
#     - Pop-Location
Rye Mutt's avatar
Rye Mutt committed
    
Rye Mutt's avatar
Rye Mutt committed
#     - sentry-cli releases new $BuildChannelVersion
#     - sentry-cli releases set-commits --auto $BuildChannelVersion
#     - sentry-cli releases finalize $BuildChannelVersion
#   when: manual

# deploy_project:
#   <<: *deploy_template
#   environment:
#     name: qa
#   only:
#     - /^project-.*$/

# deploy_beta:
#   <<: *deploy_template
#   environment:
#     name: staging
#   <<: *beta_rules

# deploy_release:
#   <<: *deploy_template
#   environment:
#     name: production
#   <<: *release_rules