Files
PyG2O/.gitlab-ci.yml
2024-03-03 14:56:14 +01:00

93 lines
2.7 KiB
YAML

variables:
GIT_SUBMODULE_STRATEGY: recursive
stages:
- build
- release
.build:
stage: build
when: manual
script:
- cmake . --preset ${SYSTEM}-${ARCHITECTURE}-Release
- cmake --build --preset ${SYSTEM}-${ARCHITECTURE}-Release
- cp out/build/${SYSTEM}-${ARCHITECTURE}-Release/${CI_PROJECT_NAME}.${ARCHITECTURE}${SHARED_LIB_SUFFIX} ./
artifacts:
name: ${CI_PROJECT_NAME}
paths:
- ${CI_PROJECT_NAME}.${ARCHITECTURE}${SHARED_LIB_SUFFIX}
expire_in: never
reports:
dotenv: job.env
build:windows:
extends: .build
tags: [windows]
variables:
SYSTEM: "Windows"
SHARED_LIB_SUFFIX: ".dll"
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"
}
loadenv "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Auxiliary\Build\vcvarsall.bat" ${ARCHITECTURE}
after_script:
- Add-Content -Path job.env -Value "${SYSTEM}_${ARCHITECTURE}_job_id=${CI_JOB_ID}"
parallel:
matrix:
- ARCHITECTURE: [x86, x64]
build:linux:
extends: .build
image: registry.gitlab.com/gothicmultiplayerteam/buildimage:ubuntu-18.04
variables:
SYSTEM: "Linux"
SHARED_LIB_SUFFIX: ".so"
after_script:
- echo "${SYSTEM}_${ARCHITECTURE}_job_id=${CI_JOB_ID}" >> job.env
parallel:
matrix:
- ARCHITECTURE: [x64, arm, arm64]
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}.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"