ci: split workflow per arch to fix cross-arch PVC scheduling
A single-workflow with steps spanning amd64 and arm64 shares one PVC. The clone step binds the PV to whichever arch ran first, and the other arch's pod is then permanently Unschedulable (node affinity mismatch on the PV). Splitting into separate workflow files gives each arch its own clone, its own PVC, and its own node binding.
This commit is contained in:
@@ -1,79 +0,0 @@
|
||||
# Build flake-hub packages for all architectures and push to attic
|
||||
|
||||
when:
|
||||
- event: push
|
||||
branch: main
|
||||
|
||||
clone:
|
||||
- name: clone
|
||||
image: woodpeckerci/plugin-git
|
||||
environment:
|
||||
CI_NETRC_MACHINE: git.oleks.space
|
||||
CI_NETRC_USERNAME: oleks
|
||||
CI_NETRC_PASSWORD:
|
||||
from_secret: gitea_clone_token
|
||||
PLUGIN_TAGS: "false"
|
||||
PLUGIN_DEPTH: "1"
|
||||
|
||||
# Build packages for each architecture in parallel
|
||||
steps:
|
||||
- name: build-amd64
|
||||
image: git.oleks.space/oleks/nix-ci:latest
|
||||
depends_on: []
|
||||
environment:
|
||||
ATTIC_TOKEN:
|
||||
from_secret: attic_token
|
||||
GITEA_CLONE_TOKEN:
|
||||
from_secret: gitea_clone_token
|
||||
backend_options:
|
||||
kubernetes:
|
||||
nodeSelector:
|
||||
kubernetes.io/arch: amd64
|
||||
labels:
|
||||
commit-tag: "${CI_COMMIT_TAG}"
|
||||
commit-branch: "${CI_COMMIT_BRANCH}"
|
||||
pipeline-number: "${CI_PIPELINE_NUMBER}"
|
||||
commands:
|
||||
- sh ci/setup.sh
|
||||
- python3 ci/build.py x86_64-linux
|
||||
|
||||
- name: build-arm64
|
||||
image: git.oleks.space/oleks/nix-ci:latest
|
||||
depends_on: []
|
||||
environment:
|
||||
ATTIC_TOKEN:
|
||||
from_secret: attic_token
|
||||
GITEA_CLONE_TOKEN:
|
||||
from_secret: gitea_clone_token
|
||||
backend_options:
|
||||
kubernetes:
|
||||
nodeSelector:
|
||||
kubernetes.io/arch: arm64
|
||||
labels:
|
||||
commit-tag: "${CI_COMMIT_TAG}"
|
||||
commit-branch: "${CI_COMMIT_BRANCH}"
|
||||
pipeline-number: "${CI_PIPELINE_NUMBER}"
|
||||
commands:
|
||||
- sh ci/setup.sh
|
||||
- python3 ci/build.py aarch64-linux
|
||||
|
||||
# s390x disabled: no builder available
|
||||
# - name: build-s390x
|
||||
# image: git.oleks.space/oleks/nix-ci:latest
|
||||
# depends_on: []
|
||||
# environment:
|
||||
# ATTIC_TOKEN:
|
||||
# from_secret: attic_token
|
||||
# GITEA_CLONE_TOKEN:
|
||||
# from_secret: gitea_clone_token
|
||||
# backend_options:
|
||||
# kubernetes:
|
||||
# nodeSelector:
|
||||
# kubernetes.io/arch: amd64
|
||||
# labels:
|
||||
# commit-tag: "${CI_COMMIT_TAG}"
|
||||
# commit-branch: "${CI_COMMIT_BRANCH}"
|
||||
# pipeline-number: "${CI_PIPELINE_NUMBER}"
|
||||
# commands:
|
||||
# - sh ci/setup.sh
|
||||
# - python3 ci/build.py s390x-linux
|
||||
@@ -0,0 +1,39 @@
|
||||
# Build flake-hub packages for x86_64-linux and push to attic.
|
||||
# Separate workflow per arch — sharing one PVC across arches makes
|
||||
# the second pod permanently Unschedulable (PV node affinity binds
|
||||
# to the first arch's node).
|
||||
|
||||
when:
|
||||
- event: push
|
||||
branch: main
|
||||
|
||||
clone:
|
||||
- name: clone
|
||||
image: woodpeckerci/plugin-git
|
||||
environment:
|
||||
CI_NETRC_MACHINE: git.oleks.space
|
||||
CI_NETRC_USERNAME: oleks
|
||||
CI_NETRC_PASSWORD:
|
||||
from_secret: gitea_clone_token
|
||||
PLUGIN_TAGS: "false"
|
||||
PLUGIN_DEPTH: "1"
|
||||
|
||||
steps:
|
||||
- name: build-amd64
|
||||
image: git.oleks.space/oleks/nix-ci:latest
|
||||
environment:
|
||||
ATTIC_TOKEN:
|
||||
from_secret: attic_token
|
||||
GITEA_CLONE_TOKEN:
|
||||
from_secret: gitea_clone_token
|
||||
backend_options:
|
||||
kubernetes:
|
||||
nodeSelector:
|
||||
kubernetes.io/arch: amd64
|
||||
labels:
|
||||
commit-tag: "${CI_COMMIT_TAG}"
|
||||
commit-branch: "${CI_COMMIT_BRANCH}"
|
||||
pipeline-number: "${CI_PIPELINE_NUMBER}"
|
||||
commands:
|
||||
- sh ci/setup.sh
|
||||
- python3 ci/build.py x86_64-linux
|
||||
@@ -0,0 +1,37 @@
|
||||
# Build flake-hub packages for aarch64-linux and push to attic.
|
||||
# Separate workflow per arch — see amd64.yaml for rationale.
|
||||
|
||||
when:
|
||||
- event: push
|
||||
branch: main
|
||||
|
||||
clone:
|
||||
- name: clone
|
||||
image: woodpeckerci/plugin-git
|
||||
environment:
|
||||
CI_NETRC_MACHINE: git.oleks.space
|
||||
CI_NETRC_USERNAME: oleks
|
||||
CI_NETRC_PASSWORD:
|
||||
from_secret: gitea_clone_token
|
||||
PLUGIN_TAGS: "false"
|
||||
PLUGIN_DEPTH: "1"
|
||||
|
||||
steps:
|
||||
- name: build-arm64
|
||||
image: git.oleks.space/oleks/nix-ci:latest
|
||||
environment:
|
||||
ATTIC_TOKEN:
|
||||
from_secret: attic_token
|
||||
GITEA_CLONE_TOKEN:
|
||||
from_secret: gitea_clone_token
|
||||
backend_options:
|
||||
kubernetes:
|
||||
nodeSelector:
|
||||
kubernetes.io/arch: arm64
|
||||
labels:
|
||||
commit-tag: "${CI_COMMIT_TAG}"
|
||||
commit-branch: "${CI_COMMIT_BRANCH}"
|
||||
pipeline-number: "${CI_PIPELINE_NUMBER}"
|
||||
commands:
|
||||
- sh ci/setup.sh
|
||||
- python3 ci/build.py aarch64-linux
|
||||
Reference in New Issue
Block a user