Files
OpenEngine/.onedev-buildspec.yml
2026-03-10 23:34:04 +01:00

137 lines
3.9 KiB
YAML

version: 46
jobs:
- name: Push to Gitea
steps:
- type: PushRepository
name: Push to Gitea
remoteUrl: https://gitea.anfer.fr/anfer/OpenEngine
passwordSecret: Gitea
force: false
condition: SUCCESSFUL
optional: false
jobExecutor: terra-executor
triggers:
- type: BranchUpdateTrigger
branches: main
userMatch: anyone
projects: OpenEngine
- type: TagCreateTrigger
branches: main
projects: OpenEngine
retryCondition: never
maxRetries: 3
retryDelay: 30
timeout: 14400
- name: Compile for Linux
steps:
- type: SetupCacheStep
name: conan-cache
key: conan-cache-@file:conanfile.py@
paths:
- /root/.conan2
uploadStrategy: UPLOAD_IF_CHANGED
changeDetectionExcludes: /root/.conan2/p/*/dl /root/.conan2/logs
condition: SUCCESSFUL
optional: true
- type: CheckoutStep
name: Checkout
cloneCredential:
type: DefaultCredential
withLfs: false
withSubmodules: false
condition: SUCCESSFUL
optional: false
- type: CommandStep
name: Compile for Linux
runInContainer: true
image: erriss/erris-build_tools:V0.7
interpreter:
type: DefaultInterpreter
commands: |
#git clone --depth 1 https://github.com/dotnet/runtime.git
#cd runtime
#./build.sh -c Release -subset host
#cp artifacts/bin/native/net10.0-linux-Release-x64/nethost/libnethost.a /onedev-build/workspace/lib/
git submodule update --init --recursive
conan profile detect --force
conan install . -c tools.system.package_manager:mode=install --output-folder=build --build=missing -s build_type=${BUILD_TYPE}
cmake -S . -G Ninja -B build -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DCMAKE_TOOLCHAIN_FILE=conan_toolchain.cmake
echo ====== Building =============================
cmake --build build --config ${BUILD_TYPE}
envVars:
- name: BUILD_TYPE
value: Debug
- name: CC
value: clang
- name: CXX
value: clang++
useTTY: true
condition: SUCCESSFUL
optional: false
- type: PublishArtifactStep
name: Get build artifacts
sourcePath: build
artifacts: editor/* open_engine/*
condition: SUCCESSFUL
optional: false
jobExecutor: luna-executor
triggers:
- type: BranchUpdateTrigger
branches: main
userMatch: anyone
projects: OpenEngine
retryCondition: never
maxRetries: 3
retryDelay: 30
timeout: 14400
- name: Release to Gitea
steps:
- type: CommandStep
name: Release to Gitea
runInContainer: true
image: erriss/erris-build_tools:V0.8
interpreter:
type: DefaultInterpreter
commands: |
# 1. Create the Release metadata
RELEASE_JSON=$(printf '{"tag_name":"v1.0.%s","target_commitish":"main","name":"Release v1.0.%s","body":"Automated build from OneDev","draft":false,"prerelease":false}' "$ONEDEV_BUILD_NUMBER" "$ONEDEV_BUILD_NUMBER")
curl -X 'POST' \
"https://gitea.anfer.fr/api/v1/repos/anfer/OpenEngine/releases" \
-H "Authorization: token @secret:Gitea@" \
-H "Content-Type: application/json" \
-d "$RELEASE_JSON" > release_info.json
# 2. Extract the Release ID (using jq)
RELEASE_ID=$(jq '.id' release_info.json)
# 3. Upload your binary (oe_editor)
curl -X 'POST' \
"https://gitea.anfer.fr/api/v1/repos/anfer/OpenEngine/releases/$RELEASE_ID/assets?name=oe_editor" \
-H "Authorization: token @secret:Gitea@" \
-H "Content-Type: application/octet-stream" \
--data-binary=build/editor/oe_editor
envVars:
- name: ONEDEV_BUILD_NUMBER
value: '1'
useTTY: true
condition: SUCCESSFUL
optional: false
jobExecutor: terra-executor
triggers:
- type: DependencyFinishedTrigger
projects: OpenEngine
jobDependencies:
- jobName: Compile for Linux
requireSuccessful: true
artifacts: '**'
retryCondition: never
maxRetries: 3
retryDelay: 30
timeout: 14400