metaforce/.gitlab-ci.yml

191 lines
5.1 KiB
YAML

.build:variables:
variables: &build_variables
GIT_SUBMODULE_STRATEGY: recursive
build:macos:universal:
stage: build
tags:
- macos
- arm64
variables:
<<: *build_variables
script:
- export PATH="/opt/homebrew/bin:$PATH"
- mkdir build-{arm64,x86_64}
- cd build-arm64
- >
cmake
-GNinja
-DCMAKE_BUILD_TYPE=RelWithDebInfo
-DURDE_DLPACKAGE=urde-$CI_PIPELINE_ID-macos-universal
..
- ninja urde hecl visigen
- cd ../build-x86_64
- >
cmake
-GNinja
-DCMAKE_BUILD_TYPE=RelWithDebInfo
-DCMAKE_APPLE_SILICON_PROCESSOR=x86_64
-DURDE_DLPACKAGE=urde-$CI_PIPELINE_ID-macos-universal
-DURDE_VECTOR_ISA=sse41
..
- ninja urde hecl visigen
- cd Binaries
- cp -R urde.app $CI_PROJECT_DIR/URDE.app
- cd $CI_PROJECT_DIR
- lipo -create -output URDE.app/Contents/MacOS/urde build-{x86_64,arm64}/Binaries/urde.app/Contents/MacOS/urde
- lipo -create -output URDE.app/Contents/MacOS/hecl build-{x86_64,arm64}/Binaries/urde.app/Contents/MacOS/hecl
- lipo -create -output URDE.app/Contents/MacOS/visigen build-{x86_64,arm64}/Binaries/urde.app/Contents/MacOS/visigen
- strip -S -o URDE.app/Contents/MacOS/urde URDE.app/Contents/MacOS/urde
- strip -S -o URDE.app/Contents/MacOS/hecl URDE.app/Contents/MacOS/hecl
- strip -S -o URDE.app/Contents/MacOS/visigen URDE.app/Contents/MacOS/visigen
- (if [ "${URDE_MACOS_CODESIGN_UID}" != "" ]; then codesign -s $URDE_MACOS_CODESIGN_UID --deep URDE.app; else echo "Unable to sign app bundle :("; fi);
only:
- release
- dev
artifacts:
name: "urde-$CI_PIPELINE_ID-macos-universal"
paths:
- URDE.app/
expire_in: 1 week
#.build:linux: &linux_definition
# stage: build
# tags:
# - linux
# script:
# - mkdir build
# - cd build
# - >
# cmake
# -GNinja
# -DCMAKE_BUILD_TYPE=RelWithDebInfo
# -DURDE_DLPACKAGE=urde-$CI_PIPELINE_ID-linux-x86_64-$URDE_VECTOR_ISA
# -DURDE_VECTOR_ISA=$URDE_VECTOR_ISA
# ..
# - nice -n19 ninja -j8 urde hecl visigen
# - cp Binaries/urde $CI_PROJECT_DIR
# - strip --strip-debug -o $CI_PROJECT_DIR/urde Binaries/urde
# - rm -r $CI_PROJECT_DIR/hecl
# - strip --strip-debug -o $CI_PROJECT_DIR/hecl Binaries/hecl
# - rm -r $CI_PROJECT_DIR/visigen
# - strip --strip-debug -o $CI_PROJECT_DIR/visigen Binaries/visigen
# only:
# - release
# - dev
# artifacts:
# name: "urde-$CI_PIPELINE_ID-linux-x86_64-$URDE_VECTOR_ISA"
# paths:
# - urde
# - hecl
# - visigen
# expire_in: 1 week
#
#build:linux:sse3:
# <<: *linux_definition
# variables:
# <<: *build_variables
# URDE_VECTOR_ISA: sse3
#
#build:linux:sse41:
# <<: *linux_definition
# variables:
# <<: *build_variables
# URDE_VECTOR_ISA: sse41
#
#build:linux:avx:
# <<: *linux_definition
# variables:
# <<: *build_variables
# URDE_VECTOR_ISA: avx
#
#build:linux:avx2:
# <<: *linux_definition
# variables:
# <<: *build_variables
# URDE_VECTOR_ISA: avx2
#
#.build:win32: &win32_definition
# stage: build
# tags:
# - win32
# script:
# - cmd.exe /c "call `"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat`" && set > %temp%\vcvars.txt"
# - >
# Get-Content "$env:temp\vcvars.txt" | Foreach-Object {
# if ($_ -match "^(.*?)=(.*)$") {
# Set-Content "env:\$($matches[1])" $matches[2]
# }
# }
# - mkdir build
# - cd build
# - >
# cmake
# -GNinja
# -DCMAKE_BUILD_TYPE=RelWithDebInfo
# -DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded
# -DURDE_DLPACKAGE="urde-$env:CI_PIPELINE_ID-win32-x86_64-$env:URDE_VECTOR_ISA"
# -DURDE_VECTOR_ISA="$env:URDE_VECTOR_ISA"
# -DLLVM_ROOT_DIR=C:\projects\deps\llvm
# -DCMAKE_C_FLAGS=
# -DCMAKE_CXX_FLAGS=
# ..
# - ninja urde hecl visigen
# - 'copy Binaries\urde.exe "$env:CI_PROJECT_DIR\urde.exe"'
# - 'pdbcopy Binaries\urde.pdb "$env:CI_PROJECT_DIR\urde.pdb" -p'
# - 'copy Binaries\hecl.exe "$env:CI_PROJECT_DIR\hecl.exe"'
# - 'pdbcopy Binaries\hecl.pdb "$env:CI_PROJECT_DIR\hecl.pdb" -p'
# - 'copy Binaries\visigen.exe "$env:CI_PROJECT_DIR\visigen.exe"'
# - 'pdbcopy Binaries\visigen.pdb "$env:CI_PROJECT_DIR\visigen.pdb" -p'
# only:
# - release
# - dev
# artifacts:
# name: "urde-$env:CI_PIPELINE_ID-win32-x86_64-$env:URDE_VECTOR_ISA"
# paths:
# - urde.exe
# - urde.pdb
# - hecl.exe
# - hecl.pdb
# - visigen.exe
# - visigen.pdb
# expire_in: 1 week
#
#build:win32:sse2:
# <<: *win32_definition
# variables:
# <<: *build_variables
# URDE_VECTOR_ISA: sse2
#
#build:win32:sse41:
# <<: *win32_definition
# variables:
# <<: *build_variables
# URDE_VECTOR_ISA: sse41
#
#build:win32:avx:
# <<: *win32_definition
# variables:
# <<: *build_variables
# URDE_VECTOR_ISA: avx
#
#build:win32:avx2:
# <<: *win32_definition
# variables:
# <<: *build_variables
# URDE_VECTOR_ISA: avx2
deploy:
stage: deploy
only:
- release
- dev
dependencies: []
tags:
- server
variables:
GIT_STRATEGY: none
script:
- python3 /var/lib/gitlab-runner/deploy_urde.py $CI_PIPELINE_ID $CI_COMMIT_REF_NAME