Every Linux step now runs under ci/guard-step.py. The first step that fails, is cancelled or times out marks the pipeline; running steps get SIGTERM (so traps release flock and Buildah state) then SIGKILL, steps that have not started exit at once, and any process a step leaves behind is killed. A pipeline deadline is the last resort. build-linux-agent.sh now prints the lookup error, store configuration and the restore images present when the prepared restore image cannot be found.
119 lines
3.6 KiB
YAML
119 lines
3.6 KiB
YAML
labels:
|
|
ci: domain-linux-native
|
|
platform: linux/amd64
|
|
|
|
clone:
|
|
- name: git
|
|
image: plugin-git
|
|
settings:
|
|
lfs: false
|
|
# 要拿到 tag 才算得出开发版本号(ci/version.sh:自最近 tag 的提交数)
|
|
tags: true
|
|
|
|
when:
|
|
- event: push
|
|
branch: main
|
|
evaluate: 'CI_COMMIT_MESSAGE contains "[CI]"'
|
|
|
|
# 镜像构建和 verify(后端快速测试)、web-build 并行跑,不再等它们:构建好之后、推送之前由 ci/wait-for-checks.sh 等这两个 workflow 都成功
|
|
# (任何一个失败就不推;提交信息写 [SKIP TESTS] 只跳过后端测试,verify 照样是成功)。机器有 6 个 workflow 槽(WOODPECKER_MAX_WORKFLOWS),三个同时跑放得下。
|
|
|
|
concurrency: 1
|
|
|
|
steps:
|
|
- name: restore-linux-dependencies
|
|
image: bash
|
|
environment:
|
|
NUGET_PACKAGES: /home/justme/woodpecker/cache/nuget/packages
|
|
commands:
|
|
- python3 ci/guard-step.py restore-linux-dependencies 3600 bash ci/restore-linux-dependencies.sh dev
|
|
depends_on: []
|
|
|
|
- name: build-linux-amd64-backend
|
|
image: bash
|
|
environment:
|
|
NUGET_PACKAGES: /home/justme/woodpecker/cache/nuget/packages
|
|
ZOT_REGISTRY: registry.oeo.one
|
|
ZOT_USERNAME: justme
|
|
ZOT_SECRET:
|
|
from_secret: zot_secret
|
|
RELEASE_API_URL: https://mo.oeo.one
|
|
RELEASE_SIGNING_KEY:
|
|
from_secret: release_signing_key
|
|
commands:
|
|
- python3 ci/guard-step.py build-linux-amd64-backend 1800 bash ci/build-dev-image.sh backend
|
|
depends_on:
|
|
- restore-linux-dependencies
|
|
|
|
- name: build-arm64-agent-musl
|
|
image: bash
|
|
environment:
|
|
GITEA_BASE: http://127.0.0.1:3100
|
|
GITEA_TOKEN:
|
|
from_secret: gitea_token
|
|
RELEASE_SIGNING_KEY:
|
|
from_secret: release_signing_key
|
|
commands:
|
|
- python3 ci/guard-step.py build-arm64-agent-musl 3600 bash ci/build-linux-agent.sh linux-musl-arm64
|
|
depends_on:
|
|
- restore-linux-dependencies
|
|
|
|
- name: build-amd64-agent
|
|
image: bash
|
|
environment:
|
|
GITEA_BASE: http://127.0.0.1:3100
|
|
GITEA_TOKEN:
|
|
from_secret: gitea_token
|
|
RELEASE_SIGNING_KEY:
|
|
from_secret: release_signing_key
|
|
commands:
|
|
- python3 ci/guard-step.py build-amd64-agent 3600 bash ci/build-linux-agent.sh linux-x64
|
|
depends_on:
|
|
- restore-linux-dependencies
|
|
|
|
- name: build-arm64-agent
|
|
image: bash
|
|
environment:
|
|
GITEA_BASE: http://127.0.0.1:3100
|
|
GITEA_TOKEN:
|
|
from_secret: gitea_token
|
|
RELEASE_SIGNING_KEY:
|
|
from_secret: release_signing_key
|
|
commands:
|
|
- python3 ci/guard-step.py build-arm64-agent 3600 bash ci/build-linux-agent.sh linux-arm64
|
|
depends_on:
|
|
- restore-linux-dependencies
|
|
|
|
- name: publish-agent-images
|
|
image: bash
|
|
environment:
|
|
GITEA_BASE: http://127.0.0.1:3100
|
|
GITEA_TOKEN:
|
|
from_secret: gitea_token
|
|
ZOT_REGISTRY: registry.oeo.one
|
|
ZOT_USERNAME: justme
|
|
ZOT_SECRET:
|
|
from_secret: zot_secret
|
|
RELEASE_API_URL: https://mo.oeo.one
|
|
RELEASE_SIGNING_KEY:
|
|
from_secret: release_signing_key
|
|
commands:
|
|
- python3 ci/guard-step.py publish-agent-images 900 bash ci/release-node-images.sh
|
|
depends_on:
|
|
- build-amd64-agent
|
|
- build-arm64-agent-musl
|
|
|
|
- name: backend-e2e-tests
|
|
image: bash
|
|
when:
|
|
- evaluate: 'not (CI_COMMIT_MESSAGE contains "[SKIP TESTS]")'
|
|
environment:
|
|
NUGET_PACKAGES: /home/justme/woodpecker/cache/nuget/packages
|
|
commands:
|
|
- python3 ci/guard-step.py backend-e2e-tests 1500 bash ci/verify-backend.sh slow
|
|
depends_on:
|
|
- publish-agent-images
|
|
- build-linux-amd64-backend
|
|
- build-amd64-agent
|
|
- build-arm64-agent
|