134 lines
3.8 KiB
YAML
134 lines
3.8 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.7
|
|
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/owner/repo/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/owner/repo/releases/$RELEASE_ID/assets?name=oe_editor" \
|
|
-H "Authorization: token @secret:Gitea@" \
|
|
-H "Content-Type: application/octet-stream" \
|
|
--data-binary editor/oe_editor
|
|
envVars:
|
|
- name: ONEDEV_BUILD_NUMBER
|
|
value: '1'
|
|
useTTY: true
|
|
condition: SUCCESSFUL
|
|
optional: false
|
|
jobExecutor: terra-executor
|
|
jobDependencies:
|
|
- jobName: Compile for Linux
|
|
requireSuccessful: true
|
|
artifacts: '**'
|
|
retryCondition: never
|
|
maxRetries: 3
|
|
retryDelay: 30
|
|
timeout: 14400
|