Files
PyG2O/.gitlab-ci.yml

100 lines
2.8 KiB
YAML

variables:
GIT_SUBMODULE_STRATEGY: recursive
stages:
- build
- release
build:windows:
stage: build
tags:
- windows
when: manual
before_script: |
function loadenv($bat_file)
{
$env_file = New-TemporaryFile
cmd /c " `"$bat_file`" $args && set > `"$env_file`" "
foreach($line in Get-Content "$env_file")
{
if($line -match "^(.*?)=(.*)$")
{
Set-Content "env:\$($matches[1])" $matches[2]
}
}
Remove-Item "$env_file"
}
script:
- loadenv "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Auxiliary\Build\vcvarsall.bat" ${PLATFORM}
- cmake . --preset Windows-${PLATFORM}-Release
- cmake --build --preset Windows-${PLATFORM}-Release
- cp out/build/Windows-${PLATFORM}-Release/${CI_PROJECT_NAME}.*.dll ./
after_script:
- Add-Content -Path job.env -Value "windows_${PLATFORM}_JOB_ID=${CI_JOB_ID}"
parallel:
matrix:
- PLATFORM: [x86, x64]
artifacts:
name: ${CI_PROJECT_NAME}
paths:
- ${CI_PROJECT_NAME}.*.dll
expire_in: never
reports:
dotenv: job.env
build:linux:
stage: build
image: registry.gitlab.com/gothicmultiplayerteam/buildimage:ubuntu-18.04
when: manual
script:
- cmake . -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE="$TOOLCHAIN.cmake"
- cmake --build . && exit $?
after_script:
- echo "${TOOLCHAIN}_JOB_ID=$CI_JOB_ID" | tr - _ >> job.env
parallel:
matrix:
- TOOLCHAIN: [linux-x86, linux-x64, linux-arm, linux-arm64]
artifacts:
name: $CI_PROJECT_NAME
paths:
- $CI_PROJECT_NAME.*
expire_in: never
reports:
dotenv: job.env
release:
stage: release
image: registry.gitlab.com/gitlab-org/release-cli:latest
when: manual
needs: [build:linux, build:windows]
variables:
TAG: '0.1'
script:
- echo "Create Release $TAG"
release:
tag_name: '$TAG'
description: "./CHANGELOG.md"
assets:
links:
- name: "$CI_PROJECT_NAME.x86.dll"
url: "$CI_PROJECT_URL/-/jobs/$windows_x86_JOB_ID/artifacts/download"
link_type: "package"
- name: "$CI_PROJECT_NAME.x64.dll"
url: "$CI_PROJECT_URL/-/jobs/$windows_x64_JOB_ID/artifacts/download"
link_type: "package"
- name: "$CI_PROJECT_NAME.x86.so"
url: "$CI_PROJECT_URL/-/jobs/$linux_x86_JOB_ID/artifacts/download"
link_type: "package"
- name: "$CI_PROJECT_NAME.x64.so"
url: "$CI_PROJECT_URL/-/jobs/$linux_x64_JOB_ID/artifacts/download"
link_type: "package"
- name: "$CI_PROJECT_NAME.arm.so"
url: "$CI_PROJECT_URL/-/jobs/$linux_arm_JOB_ID/artifacts/download"
link_type: "package"
- name: "$CI_PROJECT_NAME.arm64.so"
url: "$CI_PROJECT_URL/-/jobs/$linux_arm64_JOB_ID/artifacts/download"
link_type: "package"