Skip to content

Commit

Permalink
chore(ci): add conformance pipelines
Browse files Browse the repository at this point in the history
This was missed when moving to GHA.

Signed-off-by: Noel Georgi <git@frezbo.dev>
  • Loading branch information
frezbo committed Jun 12, 2024
1 parent 7fcb521 commit 8e15621
Show file tree
Hide file tree
Showing 5 changed files with 237 additions and 3 deletions.
92 changes: 91 additions & 1 deletion .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT.
#
# Generated on 2024-05-27T16:20:10Z by kres bcb280a.
# Generated on 2024-06-11T15:17:44Z by kres 7360563.

name: default
concurrency:
Expand Down Expand Up @@ -1106,6 +1106,96 @@ jobs:
- name: cloud-images
run: |
make cloud-images
integration-conformance:
permissions:
actions: read
contents: write
issues: read
packages: write
pull-requests: read
runs-on:
- self-hosted
- talos
if: contains(fromJSON(needs.default.outputs.labels), 'integration/conformance')
needs:
- default
steps:
- name: gather-system-info
id: system-info
uses: kenchan0130/actions-system-info@v1.3.0
continue-on-error: true
- name: print-system-info
run: |
MEMORY_GB=$((${{ steps.system-info.outputs.totalmem }}/1024/1024/1024))
OUTPUTS=(
"CPU Core: ${{ steps.system-info.outputs.cpu-core }}"
"CPU Model: ${{ steps.system-info.outputs.cpu-model }}"
"Hostname: ${{ steps.system-info.outputs.hostname }}"
"NodeName: ${NODE_NAME}"
"Kernel release: ${{ steps.system-info.outputs.kernel-release }}"
"Kernel version: ${{ steps.system-info.outputs.kernel-version }}"
"Name: ${{ steps.system-info.outputs.name }}"
"Platform: ${{ steps.system-info.outputs.platform }}"
"Release: ${{ steps.system-info.outputs.release }}"
"Total memory: ${MEMORY_GB} GB"
)
for OUTPUT in "${OUTPUTS[@]}";do
echo "${OUTPUT}"
done
continue-on-error: true
- name: checkout
uses: actions/checkout@v4
- name: Unshallow
run: |
git fetch --prune --unshallow
- name: Set up Docker Buildx
id: setup-buildx
uses: docker/setup-buildx-action@v3
with:
driver: remote
endpoint: tcp://buildkit-amd64.ci.svc.cluster.local:1234
timeout-minutes: 10
- name: Download artifacts
if: github.event_name != 'schedule'
uses: actions/download-artifact@v4
with:
name: talos-artifacts
path: _out
- name: Fix artifact permissions
if: github.event_name != 'schedule'
run: |
xargs -a _out/executable-artifacts -I {} chmod +x {}
- name: build
if: github.event_name == 'schedule'
env:
IMAGE_REGISTRY: registry.dev.siderolabs.io
PLATFORM: linux/amd64
PUSH: "true"
run: |
make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64
- name: talosctl-cni-bundle
if: github.event_name == 'schedule'
run: |
make talosctl-cni-bundle
- name: conformance-qemu
env:
IMAGE_REGISTRY: registry.dev.siderolabs.io
QEMU_CPUS: "4"
QEMU_WORKERS: "2"
TEST_MODE: fast-conformance
run: |
sudo -E make e2e-qemu
- name: save artifacts
if: always()
uses: actions/upload-artifact@v4
with:
name: talos-logs-integration-qemu
path: |-
~/.talos/clusters/**/*.log
!~/.talos/clusters/**/swtpm.log
retention-days: "5"
integration-equinix-metal:
permissions:
actions: read
Expand Down
93 changes: 93 additions & 0 deletions .github/workflows/integration-conformance-cron.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
# THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT.
#
# Generated on 2024-06-11T15:17:44Z by kres 7360563.

name: integration-conformance-cron
concurrency:
group: ${{ github.head_ref || github.run_id }}
cancel-in-progress: true
"on":
schedule:
- cron: 30 4 * * *
jobs:
default:
runs-on:
- self-hosted
- talos
steps:
- name: gather-system-info
id: system-info
uses: kenchan0130/actions-system-info@v1.3.0
continue-on-error: true
- name: print-system-info
run: |
MEMORY_GB=$((${{ steps.system-info.outputs.totalmem }}/1024/1024/1024))
OUTPUTS=(
"CPU Core: ${{ steps.system-info.outputs.cpu-core }}"
"CPU Model: ${{ steps.system-info.outputs.cpu-model }}"
"Hostname: ${{ steps.system-info.outputs.hostname }}"
"NodeName: ${NODE_NAME}"
"Kernel release: ${{ steps.system-info.outputs.kernel-release }}"
"Kernel version: ${{ steps.system-info.outputs.kernel-version }}"
"Name: ${{ steps.system-info.outputs.name }}"
"Platform: ${{ steps.system-info.outputs.platform }}"
"Release: ${{ steps.system-info.outputs.release }}"
"Total memory: ${MEMORY_GB} GB"
)
for OUTPUT in "${OUTPUTS[@]}";do
echo "${OUTPUT}"
done
continue-on-error: true
- name: checkout
uses: actions/checkout@v4
- name: Unshallow
run: |
git fetch --prune --unshallow
- name: Set up Docker Buildx
id: setup-buildx
uses: docker/setup-buildx-action@v3
with:
driver: remote
endpoint: tcp://buildkit-amd64.ci.svc.cluster.local:1234
timeout-minutes: 10
- name: Download artifacts
if: github.event_name != 'schedule'
uses: actions/download-artifact@v4
with:
name: talos-artifacts
path: _out
- name: Fix artifact permissions
if: github.event_name != 'schedule'
run: |
xargs -a _out/executable-artifacts -I {} chmod +x {}
- name: build
if: github.event_name == 'schedule'
env:
IMAGE_REGISTRY: registry.dev.siderolabs.io
PLATFORM: linux/amd64
PUSH: "true"
run: |
make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64
- name: talosctl-cni-bundle
if: github.event_name == 'schedule'
run: |
make talosctl-cni-bundle
- name: conformance-qemu
env:
IMAGE_REGISTRY: registry.dev.siderolabs.io
QEMU_CPUS: "4"
QEMU_WORKERS: "2"
TEST_MODE: fast-conformance
run: |
sudo -E make e2e-qemu
- name: save artifacts
if: always()
uses: actions/upload-artifact@v4
with:
name: talos-logs-integration-qemu
path: |-
~/.talos/clusters/**/*.log
!~/.talos/clusters/**/swtpm.log
retention-days: "5"
3 changes: 2 additions & 1 deletion .github/workflows/slack-notify.yaml
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
# THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT.
#
# Generated on 2024-05-24T15:02:03Z by kres b5844f8.
# Generated on 2024-06-11T15:17:44Z by kres 7360563.

name: slack-notify
"on":
workflow_run:
workflows:
- default
- integration-qemu-cron
- integration-conformance-cron
- integration-trusted-boot-cron
- integration-provision-0-cron
- integration-provision-1-cron
Expand Down
50 changes: 50 additions & 0 deletions .kres.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ spec:
- integration-misc-4
- integration-extensions
- integration-cilium
- integration-conformance
- integration-qemu-encrypted-vip
- integration-qemu-race
- integration-qemu-csi
Expand Down Expand Up @@ -348,6 +349,55 @@ spec:
artifactPath: ~/.talos/clusters/**/*.log
additionalArtifacts:
- "!~/.talos/clusters/**/swtpm.log"
- name: integration-conformance
buildxOptions:
enabled: true
depends:
- default
runners:
- self-hosted
- talos
crons:
- '30 4 * * *'
triggerLabels:
- integration/conformance
steps:
- name: download-artifacts
conditions:
- not-on-schedule
artifactStep:
type: download
artifactName: talos-artifacts
artifactPath: _out
- name: build
conditions:
- only-on-schedule
command: talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64
environment:
PLATFORM: linux/amd64
IMAGE_REGISTRY: registry.dev.siderolabs.io
PUSH: true
- name: talosctl-cni-bundle
conditions:
- only-on-schedule
- name: conformance-qemu
command: e2e-qemu
withSudo: true
environment:
QEMU_WORKERS: 2
QEMU_CPUS: 4
TEST_MODE: fast-conformance
IMAGE_REGISTRY: registry.dev.siderolabs.io
- name: save-talos-logs
conditions:
- always
artifactStep:
type: upload
artifactName: talos-logs-integration-qemu
disableExecutableListGeneration: true
artifactPath: ~/.talos/clusters/**/*.log
additionalArtifacts:
- "!~/.talos/clusters/**/swtpm.log"
- name: integration-trusted-boot
buildxOptions:
enabled: true
Expand Down
2 changes: 1 addition & 1 deletion hack/test/e2e-cloud-tf.sh
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ cp "${ARTIFACTS}/e2e-${TF_E2E_TEST_TYPE}-generated"/* "${TF_SCRIPT_DIR}/examples
terraform -chdir="${TF_SCRIPT_DIR}/examples/terraform/${TF_E2E_TEST_TYPE}" \
init \
-backend-config="bucket=${BUCKET_NAME}" \
-backend-config="key=cloud-tf/${TF_E2E_TEST_TYPE}-${GITHUB_SHA}-terraform.tfstate"
-backend-config="key=cloud-tf/${TF_E2E_TEST_TYPE}-${GITHUB_SHA}-${GITHUB_RUN_NUMBER}-terraform.tfstate"

case "${TF_E2E_ACTION}" in
"apply")
Expand Down

0 comments on commit 8e15621

Please sign in to comment.