mirror of
https://github.com/lingble/talos.git
synced 2026-03-20 04:03:37 +00:00
Save `support.zip` always, also use a different folder for saving logs, so we can save artifacts of multi cluster tests. Signed-off-by: Noel Georgi <git@frezbo.dev>
3648 lines
123 KiB
YAML
3648 lines
123 KiB
YAML
# THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT.
|
|
#
|
|
# Generated on 2024-11-08T11:46:41Z by kres 1fc767a.
|
|
|
|
name: default
|
|
concurrency:
|
|
group: ${{ github.head_ref || github.run_id }}
|
|
cancel-in-progress: true
|
|
"on":
|
|
push:
|
|
branches:
|
|
- main
|
|
- release-*
|
|
tags:
|
|
- v*
|
|
pull_request:
|
|
branches:
|
|
- main
|
|
- release-*
|
|
jobs:
|
|
default:
|
|
permissions:
|
|
actions: read
|
|
contents: write
|
|
issues: read
|
|
packages: write
|
|
pull-requests: read
|
|
runs-on:
|
|
- self-hosted
|
|
- talos
|
|
if: (!startsWith(github.head_ref, 'renovate/') && !startsWith(github.head_ref, 'dependabot/')) && github.event_name == 'pull_request'
|
|
outputs:
|
|
labels: ${{ steps.retrieve-pr-labels.outputs.result }}
|
|
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: ci-temp-release-tag
|
|
run: |
|
|
make ci-temp-release-tag
|
|
- name: external-artifacts
|
|
run: |
|
|
make external-artifacts
|
|
- name: generate
|
|
run: |
|
|
make generate docs
|
|
- name: uki-certs
|
|
env:
|
|
PLATFORM: linux/amd64
|
|
run: |
|
|
make uki-certs
|
|
- name: check-dirty
|
|
run: |
|
|
make check-dirty
|
|
- name: build
|
|
env:
|
|
IMAGE_REGISTRY: registry.dev.siderolabs.io
|
|
PLATFORM: linux/amd64,linux/arm64
|
|
PUSH: "true"
|
|
run: |
|
|
make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64
|
|
- name: lint
|
|
run: |
|
|
make lint
|
|
- name: talosctl-cni-bundle
|
|
run: |
|
|
make talosctl-cni-bundle
|
|
- name: iso
|
|
env:
|
|
IMAGE_REGISTRY: registry.dev.siderolabs.io
|
|
run: |
|
|
make iso secureboot-iso
|
|
- name: images-essential
|
|
env:
|
|
IMAGE_REGISTRY: registry.dev.siderolabs.io
|
|
PLATFORM: linux/amd64,linux/arm64
|
|
run: |
|
|
make images-essential
|
|
- name: unit-tests
|
|
run: |
|
|
make unit-tests
|
|
- name: unit-tests-race
|
|
run: |
|
|
make unit-tests-race
|
|
- name: coverage
|
|
uses: codecov/codecov-action@v4
|
|
with:
|
|
files: _out/coverage.txt
|
|
token: ${{ secrets.CODECOV_TOKEN }}
|
|
timeout-minutes: 3
|
|
- name: Generate executable list
|
|
run: |
|
|
find _out -type f -executable > _out/executable-artifacts
|
|
- name: save artifacts
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: talos-artifacts
|
|
path: |-
|
|
_out
|
|
!_out/coverage.txt
|
|
retention-days: "5"
|
|
- name: Retrieve PR labels
|
|
id: retrieve-pr-labels
|
|
uses: actions/github-script@v7
|
|
with:
|
|
retries: "3"
|
|
script: |
|
|
if (context.eventName != "pull_request") { return "[]" }
|
|
|
|
const resp = await github.rest.issues.get({
|
|
issue_number: context.issue.number,
|
|
owner: context.repo.owner,
|
|
repo: context.repo.repo,
|
|
})
|
|
|
|
return resp.data.labels.map(label => label.name)
|
|
e2e-docker-short:
|
|
permissions:
|
|
actions: read
|
|
contents: write
|
|
issues: read
|
|
packages: write
|
|
pull-requests: read
|
|
runs-on:
|
|
- self-hosted
|
|
- talos
|
|
if: (!startsWith(github.head_ref, 'renovate/') && !startsWith(github.head_ref, 'dependabot/'))
|
|
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: Download artifacts
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: talos-artifacts
|
|
path: _out
|
|
- name: Fix artifact permissions
|
|
run: |
|
|
xargs -a _out/executable-artifacts -I {} chmod +x {}
|
|
- name: ci-temp-release-tag
|
|
run: |
|
|
make ci-temp-release-tag
|
|
- name: e2e-docker
|
|
env:
|
|
IMAGE_REGISTRY: registry.dev.siderolabs.io
|
|
SHORT_INTEGRATION_TEST: "yes"
|
|
run: |
|
|
make e2e-docker
|
|
- name: save artifacts
|
|
if: always()
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: talos-logs-e2e-docker-short
|
|
path: |-
|
|
~/.talos/clusters/**/*.log
|
|
~/.talos/clusters/**/support.zip
|
|
/tmp/support-*.zip
|
|
!~/.talos/clusters/**/swtpm.log
|
|
retention-days: "5"
|
|
e2e-iso:
|
|
permissions:
|
|
actions: read
|
|
contents: write
|
|
issues: read
|
|
packages: write
|
|
pull-requests: read
|
|
runs-on:
|
|
- self-hosted
|
|
- talos
|
|
if: (!startsWith(github.head_ref, 'renovate/') && !startsWith(github.head_ref, 'dependabot/'))
|
|
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: Download artifacts
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: talos-artifacts
|
|
path: _out
|
|
- name: Fix artifact permissions
|
|
run: |
|
|
xargs -a _out/executable-artifacts -I {} chmod +x {}
|
|
- name: ci-temp-release-tag
|
|
run: |
|
|
make ci-temp-release-tag
|
|
- name: e2e-iso
|
|
env:
|
|
IMAGE_REGISTRY: registry.dev.siderolabs.io
|
|
run: |
|
|
sudo -E make e2e-iso
|
|
- name: save artifacts
|
|
if: always()
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: talos-logs-e2e-iso
|
|
path: |-
|
|
~/.talos/clusters/**/*.log
|
|
~/.talos/clusters/**/support.zip
|
|
/tmp/support-*.zip
|
|
!~/.talos/clusters/**/swtpm.log
|
|
retention-days: "5"
|
|
e2e-qemu-short:
|
|
permissions:
|
|
actions: read
|
|
contents: write
|
|
issues: read
|
|
packages: write
|
|
pull-requests: read
|
|
runs-on:
|
|
- self-hosted
|
|
- talos
|
|
if: (!startsWith(github.head_ref, 'renovate/') && !startsWith(github.head_ref, 'dependabot/'))
|
|
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: Download artifacts
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: talos-artifacts
|
|
path: _out
|
|
- name: Fix artifact permissions
|
|
run: |
|
|
xargs -a _out/executable-artifacts -I {} chmod +x {}
|
|
- name: ci-temp-release-tag
|
|
run: |
|
|
make ci-temp-release-tag
|
|
- name: e2e-qemu
|
|
env:
|
|
IMAGE_REGISTRY: registry.dev.siderolabs.io
|
|
SHORT_INTEGRATION_TEST: "yes"
|
|
run: |
|
|
sudo -E make e2e-qemu
|
|
- name: save artifacts
|
|
if: always()
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: talos-logs-e2e-qemu-short
|
|
path: |-
|
|
~/.talos/clusters/**/*.log
|
|
~/.talos/clusters/**/support.zip
|
|
/tmp/support-*.zip
|
|
!~/.talos/clusters/**/swtpm.log
|
|
retention-days: "5"
|
|
integration-aws:
|
|
permissions:
|
|
actions: read
|
|
contents: write
|
|
issues: read
|
|
packages: write
|
|
pull-requests: read
|
|
runs-on:
|
|
- self-hosted
|
|
- generic
|
|
if: contains(fromJSON(needs.default.outputs.labels), 'integration/aws')
|
|
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: Mask secrets
|
|
run: |
|
|
echo "$(sops -d .secrets.yaml | yq -e '.secrets | to_entries[] | "::add-mask::" + .value')"
|
|
- name: Set secrets for job
|
|
run: |
|
|
sops -d .secrets.yaml | yq -e '.secrets | to_entries[] | .key + "=" + .value' >> "$GITHUB_ENV"
|
|
- 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: ci-temp-release-tag
|
|
if: github.event_name != 'schedule'
|
|
run: |
|
|
make ci-temp-release-tag
|
|
- name: uki-certs
|
|
if: github.event_name == 'schedule'
|
|
env:
|
|
PLATFORM: linux/amd64
|
|
run: |
|
|
make uki-certs
|
|
- 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: images-essential
|
|
if: github.event_name == 'schedule'
|
|
env:
|
|
IMAGE_REGISTRY: registry.dev.siderolabs.io
|
|
PLATFORM: linux/amd64
|
|
run: |
|
|
make images-essential
|
|
- name: e2e-aws-prepare
|
|
env:
|
|
E2E_AWS_TARGET: default
|
|
IMAGE_REGISTRY: registry.dev.siderolabs.io
|
|
run: |
|
|
make e2e-aws-prepare
|
|
- name: checkout contrib
|
|
uses: actions/checkout@v4
|
|
with:
|
|
path: _out/contrib
|
|
ref: main
|
|
repository: siderolabs/contrib
|
|
- name: setup tf
|
|
uses: hashicorp/setup-terraform@v3
|
|
with:
|
|
terraform_wrapper: "false"
|
|
- name: tf apply
|
|
env:
|
|
TF_E2E_ACTION: apply
|
|
TF_E2E_TEST_TYPE: aws
|
|
TF_SCRIPT_DIR: _out/contrib
|
|
run: |
|
|
make e2e-cloud-tf
|
|
- name: e2e-aws
|
|
run: |
|
|
make e2e-aws
|
|
- name: tf destroy
|
|
if: always()
|
|
env:
|
|
TF_E2E_ACTION: destroy
|
|
TF_E2E_TEST_TYPE: aws
|
|
TF_SCRIPT_DIR: _out/contrib
|
|
run: |
|
|
make e2e-cloud-tf
|
|
integration-aws-nvidia-nonfree:
|
|
permissions:
|
|
actions: read
|
|
contents: write
|
|
issues: read
|
|
packages: write
|
|
pull-requests: read
|
|
runs-on:
|
|
- self-hosted
|
|
- generic
|
|
if: contains(fromJSON(needs.default.outputs.labels), 'integration/aws-nvidia-nonfree')
|
|
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: Mask secrets
|
|
run: |
|
|
echo "$(sops -d .secrets.yaml | yq -e '.secrets | to_entries[] | "::add-mask::" + .value')"
|
|
- name: Set secrets for job
|
|
run: |
|
|
sops -d .secrets.yaml | yq -e '.secrets | to_entries[] | .key + "=" + .value' >> "$GITHUB_ENV"
|
|
- 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: ci-temp-release-tag
|
|
if: github.event_name != 'schedule'
|
|
run: |
|
|
make ci-temp-release-tag
|
|
- name: generate
|
|
if: github.event_name == 'schedule'
|
|
run: |
|
|
make generate
|
|
- name: uki-certs
|
|
if: github.event_name == 'schedule'
|
|
env:
|
|
PLATFORM: linux/amd64
|
|
run: |
|
|
make uki-certs
|
|
- 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: images-essential
|
|
if: github.event_name == 'schedule'
|
|
env:
|
|
IMAGE_REGISTRY: registry.dev.siderolabs.io
|
|
PLATFORM: linux/amd64
|
|
run: |
|
|
make images-essential
|
|
- name: checkout extensions
|
|
uses: actions/checkout@v4
|
|
with:
|
|
path: _out/extensions
|
|
ref: main
|
|
repository: siderolabs/extensions
|
|
- name: set variables
|
|
run: |
|
|
cat _out/talos-metadata >> "$GITHUB_ENV"
|
|
- name: build extensions
|
|
env:
|
|
PLATFORM: linux/amd64
|
|
PUSH: "true"
|
|
REGISTRY: registry.dev.siderolabs.io
|
|
run: |
|
|
make nvidia-container-toolkit-lts nonfree-kmod-nvidia-lts extensions-metadata -C _out/extensions
|
|
- name: e2e-aws-prepare
|
|
env:
|
|
E2E_AWS_TARGET: nvidia-nonfree
|
|
EXTENSIONS_METADATA_FILE: _out/extensions/_out/extensions-metadata
|
|
IMAGE_REGISTRY: registry.dev.siderolabs.io
|
|
run: |
|
|
make e2e-aws-prepare
|
|
- name: checkout contrib
|
|
uses: actions/checkout@v4
|
|
with:
|
|
path: _out/contrib
|
|
ref: main
|
|
repository: siderolabs/contrib
|
|
- name: setup tf
|
|
uses: hashicorp/setup-terraform@v3
|
|
with:
|
|
terraform_wrapper: "false"
|
|
- name: tf apply
|
|
env:
|
|
TF_E2E_ACTION: apply
|
|
TF_E2E_TEST_TYPE: aws
|
|
TF_SCRIPT_DIR: _out/contrib
|
|
run: |
|
|
make e2e-cloud-tf
|
|
- name: e2e-aws-nvidia-nonfree
|
|
env:
|
|
EXTRA_TEST_ARGS: -talos.extensions.nvidia
|
|
TEST_NUM_NODES: "4"
|
|
run: |
|
|
make e2e-aws
|
|
- name: tf destroy
|
|
if: always()
|
|
env:
|
|
TF_E2E_ACTION: destroy
|
|
TF_E2E_TEST_TYPE: aws
|
|
TF_SCRIPT_DIR: _out/contrib
|
|
run: |
|
|
make e2e-cloud-tf
|
|
integration-aws-nvidia-oss:
|
|
permissions:
|
|
actions: read
|
|
contents: write
|
|
issues: read
|
|
packages: write
|
|
pull-requests: read
|
|
runs-on:
|
|
- self-hosted
|
|
- generic
|
|
if: contains(fromJSON(needs.default.outputs.labels), 'integration/aws-nvidia-oss')
|
|
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: Mask secrets
|
|
run: |
|
|
echo "$(sops -d .secrets.yaml | yq -e '.secrets | to_entries[] | "::add-mask::" + .value')"
|
|
- name: Set secrets for job
|
|
run: |
|
|
sops -d .secrets.yaml | yq -e '.secrets | to_entries[] | .key + "=" + .value' >> "$GITHUB_ENV"
|
|
- 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: ci-temp-release-tag
|
|
if: github.event_name != 'schedule'
|
|
run: |
|
|
make ci-temp-release-tag
|
|
- name: generate
|
|
if: github.event_name == 'schedule'
|
|
run: |
|
|
make generate
|
|
- name: uki-certs
|
|
if: github.event_name == 'schedule'
|
|
env:
|
|
PLATFORM: linux/amd64
|
|
run: |
|
|
make uki-certs
|
|
- 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: images-essential
|
|
if: github.event_name == 'schedule'
|
|
env:
|
|
IMAGE_REGISTRY: registry.dev.siderolabs.io
|
|
PLATFORM: linux/amd64
|
|
run: |
|
|
make images-essential
|
|
- name: checkout extensions
|
|
uses: actions/checkout@v4
|
|
with:
|
|
path: _out/extensions
|
|
ref: main
|
|
repository: siderolabs/extensions
|
|
- name: set variables
|
|
run: |
|
|
cat _out/talos-metadata >> "$GITHUB_ENV"
|
|
- name: build extensions
|
|
env:
|
|
PLATFORM: linux/amd64
|
|
PUSH: "true"
|
|
REGISTRY: registry.dev.siderolabs.io
|
|
run: |
|
|
make nvidia-container-toolkit-production nvidia-open-gpu-kernel-modules-production zfs extensions-metadata -C _out/extensions
|
|
- name: e2e-aws-prepare
|
|
env:
|
|
E2E_AWS_TARGET: nvidia-oss
|
|
EXTENSIONS_METADATA_FILE: _out/extensions/_out/extensions-metadata
|
|
IMAGE_REGISTRY: registry.dev.siderolabs.io
|
|
run: |
|
|
make e2e-aws-prepare
|
|
- name: checkout contrib
|
|
uses: actions/checkout@v4
|
|
with:
|
|
path: _out/contrib
|
|
ref: main
|
|
repository: siderolabs/contrib
|
|
- name: setup tf
|
|
uses: hashicorp/setup-terraform@v3
|
|
with:
|
|
terraform_wrapper: "false"
|
|
- name: tf apply
|
|
env:
|
|
TF_E2E_ACTION: apply
|
|
TF_E2E_TEST_TYPE: aws
|
|
TF_SCRIPT_DIR: _out/contrib
|
|
run: |
|
|
make e2e-cloud-tf
|
|
- name: e2e-aws-nvidia-oss
|
|
env:
|
|
EXTRA_TEST_ARGS: -talos.extensions.nvidia
|
|
TEST_NUM_NODES: "4"
|
|
run: |
|
|
make e2e-aws
|
|
- name: tf destroy
|
|
if: always()
|
|
env:
|
|
TF_E2E_ACTION: destroy
|
|
TF_E2E_TEST_TYPE: aws
|
|
TF_SCRIPT_DIR: _out/contrib
|
|
run: |
|
|
make e2e-cloud-tf
|
|
integration-azure:
|
|
permissions:
|
|
actions: read
|
|
contents: write
|
|
issues: read
|
|
packages: write
|
|
pull-requests: read
|
|
runs-on:
|
|
- self-hosted
|
|
- generic
|
|
if: contains(fromJSON(needs.default.outputs.labels), 'integration/azure')
|
|
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: Mask secrets
|
|
run: |
|
|
echo "$(sops -d .secrets.yaml | yq -e '.secrets | to_entries[] | "::add-mask::" + .value')"
|
|
- name: Set secrets for job
|
|
run: |
|
|
sops -d .secrets.yaml | yq -e '.secrets | to_entries[] | .key + "=" + .value' >> "$GITHUB_ENV"
|
|
- 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: ci-temp-release-tag
|
|
if: github.event_name != 'schedule'
|
|
run: |
|
|
make ci-temp-release-tag
|
|
- name: uki-certs
|
|
if: github.event_name == 'schedule'
|
|
env:
|
|
PLATFORM: linux/amd64
|
|
run: |
|
|
make uki-certs
|
|
- 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: images-essential
|
|
if: github.event_name == 'schedule'
|
|
env:
|
|
IMAGE_REGISTRY: registry.dev.siderolabs.io
|
|
PLATFORM: linux/amd64
|
|
run: |
|
|
make images-essential
|
|
- name: e2e-azure-prepare
|
|
env:
|
|
IMAGE_REGISTRY: registry.dev.siderolabs.io
|
|
run: |
|
|
make e2e-azure-prepare
|
|
- name: checkout contrib
|
|
uses: actions/checkout@v4
|
|
with:
|
|
path: _out/contrib
|
|
ref: main
|
|
repository: siderolabs/contrib
|
|
- name: setup tf
|
|
uses: hashicorp/setup-terraform@v3
|
|
with:
|
|
terraform_wrapper: "false"
|
|
- name: tf apply
|
|
env:
|
|
ARM_CLIENT_ID: ${{ env.AZURE_CLIENT_ID }}
|
|
ARM_CLIENT_SECRET: ${{ env.AZURE_CLIENT_SECRET }}
|
|
ARM_SUBSCRIPTION_ID: ${{ env.AZURE_SUBSCRIPTION_ID }}
|
|
ARM_TENANT_ID: ${{ env.AZURE_TENANT_ID }}
|
|
TF_E2E_ACTION: apply
|
|
TF_E2E_TEST_TYPE: azure
|
|
TF_SCRIPT_DIR: _out/contrib
|
|
run: |
|
|
make e2e-cloud-tf
|
|
- name: e2e-azure
|
|
run: |
|
|
make e2e-azure
|
|
- name: tf destroy
|
|
if: always()
|
|
env:
|
|
ARM_CLIENT_ID: ${{ env.AZURE_CLIENT_ID }}
|
|
ARM_CLIENT_SECRET: ${{ env.AZURE_CLIENT_SECRET }}
|
|
ARM_SUBSCRIPTION_ID: ${{ env.AZURE_SUBSCRIPTION_ID }}
|
|
ARM_TENANT_ID: ${{ env.AZURE_TENANT_ID }}
|
|
TF_E2E_ACTION: destroy
|
|
TF_E2E_TEST_TYPE: azure
|
|
TF_SCRIPT_DIR: _out/contrib
|
|
run: |
|
|
make e2e-cloud-tf
|
|
integration-cilium:
|
|
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/cilium')
|
|
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: ci-temp-release-tag
|
|
if: github.event_name != 'schedule'
|
|
run: |
|
|
make ci-temp-release-tag
|
|
- 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: e2e-cilium
|
|
env:
|
|
IMAGE_REGISTRY: registry.dev.siderolabs.io
|
|
QEMU_WORKERS: "2"
|
|
SHORT_INTEGRATION_TEST: "yes"
|
|
WITH_CONFIG_PATCH: '@hack/test/patches/cilium-no-kubeproxy.yaml'
|
|
WITH_CUSTOM_CNI: cilium
|
|
WITH_FIREWALL: accept
|
|
WITH_SKIP_K8S_NODE_READINESS_CHECK: "yes"
|
|
run: |
|
|
sudo -E make e2e-qemu
|
|
- name: e2e-cilium-strict
|
|
env:
|
|
CILIUM_INSTALL_TYPE: strict
|
|
IMAGE_REGISTRY: registry.dev.siderolabs.io
|
|
QEMU_WORKERS: "2"
|
|
SHORT_INTEGRATION_TEST: "yes"
|
|
WITH_CONFIG_PATCH: '@hack/test/patches/cilium-kubeproxy.yaml'
|
|
WITH_CUSTOM_CNI: cilium
|
|
WITH_FIREWALL: accept
|
|
WITH_SKIP_K8S_NODE_READINESS_CHECK: "yes"
|
|
run: |
|
|
sudo -E make e2e-qemu
|
|
- name: e2e-cilium-strict-kubespan
|
|
env:
|
|
CILIUM_INSTALL_TYPE: strict
|
|
IMAGE_REGISTRY: registry.dev.siderolabs.io
|
|
QEMU_WORKERS: "2"
|
|
SHORT_INTEGRATION_TEST: "yes"
|
|
WITH_CONFIG_PATCH: '@hack/test/patches/cilium-kubeproxy.yaml'
|
|
WITH_CUSTOM_CNI: cilium
|
|
WITH_FIREWALL: accept
|
|
WITH_KUBESPAN: "true"
|
|
WITH_SKIP_K8S_NODE_READINESS_CHECK: "yes"
|
|
run: |
|
|
sudo -E make e2e-qemu
|
|
- name: save artifacts
|
|
if: always()
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: talos-logs-integration-cilium
|
|
path: |-
|
|
~/.talos/clusters/**/*.log
|
|
~/.talos/clusters/**/support.zip
|
|
/tmp/support-*.zip
|
|
!~/.talos/clusters/**/swtpm.log
|
|
retention-days: "5"
|
|
integration-cloud-images:
|
|
permissions:
|
|
actions: read
|
|
contents: write
|
|
issues: read
|
|
packages: write
|
|
pull-requests: read
|
|
runs-on:
|
|
- self-hosted
|
|
- generic
|
|
if: contains(fromJSON(needs.default.outputs.labels), 'integration/cloud-images')
|
|
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: Mask secrets
|
|
run: |
|
|
echo "$(sops -d .secrets.yaml | yq -e '.secrets | to_entries[] | "::add-mask::" + .value')"
|
|
- name: Set secrets for job
|
|
run: |
|
|
sops -d .secrets.yaml | yq -e '.secrets | to_entries[] | .key + "=" + .value' >> "$GITHUB_ENV"
|
|
- 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: ci-temp-release-tag
|
|
if: github.event_name != 'schedule'
|
|
run: |
|
|
make ci-temp-release-tag
|
|
- 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: images
|
|
env:
|
|
IMAGE_REGISTRY: registry.dev.siderolabs.io
|
|
PLATFORM: linux/amd64,linux/arm64
|
|
run: |
|
|
make images
|
|
- 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: ci-temp-release-tag
|
|
if: github.event_name != 'schedule'
|
|
run: |
|
|
make ci-temp-release-tag
|
|
- 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/**/support.zip
|
|
/tmp/support-*.zip
|
|
!~/.talos/clusters/**/swtpm.log
|
|
retention-days: "5"
|
|
integration-equinix-metal:
|
|
permissions:
|
|
actions: read
|
|
contents: write
|
|
issues: read
|
|
packages: write
|
|
pull-requests: read
|
|
runs-on:
|
|
- self-hosted
|
|
- generic
|
|
if: contains(fromJSON(needs.default.outputs.labels), 'integration/equinix-metal')
|
|
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: Mask secrets
|
|
run: |
|
|
echo "$(sops -d .secrets.yaml | yq -e '.secrets | to_entries[] | "::add-mask::" + .value')"
|
|
- name: Set secrets for job
|
|
run: |
|
|
sops -d .secrets.yaml | yq -e '.secrets | to_entries[] | .key + "=" + .value' >> "$GITHUB_ENV"
|
|
- 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: ci-temp-release-tag
|
|
if: github.event_name != 'schedule'
|
|
run: |
|
|
make ci-temp-release-tag
|
|
- name: build
|
|
if: github.event_name == 'schedule'
|
|
env:
|
|
IMAGE_REGISTRY: registry.dev.siderolabs.io
|
|
PLATFORM: linux/amd64,linux/arm64
|
|
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: e2e-equinix-metal-prepare
|
|
env:
|
|
IMAGE_REGISTRY: registry.dev.siderolabs.io
|
|
run: |
|
|
make e2e-equinix-metal-prepare
|
|
- name: checkout contrib
|
|
uses: actions/checkout@v4
|
|
with:
|
|
path: _out/contrib
|
|
ref: main
|
|
repository: siderolabs/contrib
|
|
- name: setup tf
|
|
uses: hashicorp/setup-terraform@v3
|
|
with:
|
|
terraform_wrapper: "false"
|
|
- name: tf apply
|
|
env:
|
|
TF_E2E_ACTION: apply
|
|
TF_E2E_TEST_TYPE: equinix-metal
|
|
TF_SCRIPT_DIR: _out/contrib
|
|
run: |
|
|
make e2e-cloud-tf
|
|
- name: e2e-equinix-metal
|
|
run: |
|
|
make e2e-equinix-metal
|
|
- name: tf destroy
|
|
if: always()
|
|
env:
|
|
TF_E2E_ACTION: destroy
|
|
TF_E2E_TEST_TYPE: equinix-metal
|
|
TF_SCRIPT_DIR: _out/contrib
|
|
run: |
|
|
make e2e-cloud-tf
|
|
integration-extensions:
|
|
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/extensions')
|
|
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: ci-temp-release-tag
|
|
if: github.event_name != 'schedule'
|
|
run: |
|
|
make ci-temp-release-tag
|
|
- name: generate
|
|
if: github.event_name == 'schedule'
|
|
run: |
|
|
make generate
|
|
- 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: checkout extensions
|
|
uses: actions/checkout@v4
|
|
with:
|
|
path: _out/extensions
|
|
ref: main
|
|
repository: siderolabs/extensions
|
|
- name: unshallow-extensions
|
|
run: |
|
|
git -C _out/extensions fetch --prune --unshallow
|
|
- name: set variables
|
|
run: |
|
|
cat _out/talos-metadata >> "$GITHUB_ENV"
|
|
- name: build extensions
|
|
env:
|
|
PLATFORM: linux/amd64
|
|
PUSH: "true"
|
|
REGISTRY: registry.dev.siderolabs.io
|
|
run: |
|
|
make all extensions-metadata -C _out/extensions
|
|
- name: installer extensions
|
|
env:
|
|
IMAGE_REGISTRY: registry.dev.siderolabs.io
|
|
run: |
|
|
make installer-with-extensions
|
|
- name: e2e-extensions
|
|
env:
|
|
EXTRA_TEST_ARGS: -talos.extensions.qemu
|
|
IMAGE_REGISTRY: registry.dev.siderolabs.io
|
|
QEMU_EXTRA_DISKS: "3"
|
|
QEMU_MEMORY_WORKERS: "4096"
|
|
SHORT_INTEGRATION_TEST: "yes"
|
|
WITH_CONFIG_PATCH_WORKER: '@_out/installer-extensions-patch.yaml:@hack/test/patches/extensions.yaml:@hack/test/patches/dm-raid-module.yaml'
|
|
run: |
|
|
sudo -E make e2e-qemu
|
|
- name: save artifacts
|
|
if: always()
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: talos-logs-integration-extensions
|
|
path: |-
|
|
~/.talos/clusters/**/*.log
|
|
~/.talos/clusters/**/support.zip
|
|
/tmp/support-*.zip
|
|
!~/.talos/clusters/**/swtpm.log
|
|
retention-days: "5"
|
|
integration-gcp:
|
|
permissions:
|
|
actions: read
|
|
contents: write
|
|
issues: read
|
|
packages: write
|
|
pull-requests: read
|
|
runs-on:
|
|
- self-hosted
|
|
- generic
|
|
if: contains(fromJSON(needs.default.outputs.labels), 'integration/gcp')
|
|
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: Mask secrets
|
|
run: |
|
|
echo "$(sops -d .secrets.yaml | yq -e '.secrets | to_entries[] | "::add-mask::" + .value')"
|
|
- name: Set secrets for job
|
|
run: |
|
|
sops -d .secrets.yaml | yq -e '.secrets | to_entries[] | .key + "=" + .value' >> "$GITHUB_ENV"
|
|
- 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: ci-temp-release-tag
|
|
if: github.event_name != 'schedule'
|
|
run: |
|
|
make ci-temp-release-tag
|
|
- name: uki-certs
|
|
if: github.event_name == 'schedule'
|
|
env:
|
|
PLATFORM: linux/amd64
|
|
run: |
|
|
make uki-certs
|
|
- 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: images-essential
|
|
if: github.event_name == 'schedule'
|
|
env:
|
|
IMAGE_REGISTRY: registry.dev.siderolabs.io
|
|
PLATFORM: linux/amd64
|
|
run: |
|
|
make images-essential
|
|
- name: e2e-gcp-prepare
|
|
run: |
|
|
make e2e-gcp-prepare
|
|
- name: checkout contrib
|
|
uses: actions/checkout@v4
|
|
with:
|
|
path: _out/contrib
|
|
ref: main
|
|
repository: siderolabs/contrib
|
|
- name: setup tf
|
|
uses: hashicorp/setup-terraform@v3
|
|
with:
|
|
terraform_wrapper: "false"
|
|
- name: tf apply
|
|
env:
|
|
TF_E2E_ACTION: apply
|
|
TF_E2E_TEST_TYPE: gcp
|
|
TF_SCRIPT_DIR: _out/contrib
|
|
run: |
|
|
make e2e-cloud-tf
|
|
- name: e2e-gcp
|
|
run: |
|
|
make e2e-gcp
|
|
- name: tf destroy
|
|
if: always()
|
|
env:
|
|
TF_E2E_ACTION: destroy
|
|
TF_E2E_TEST_TYPE: gcp
|
|
TF_SCRIPT_DIR: _out/contrib
|
|
run: |
|
|
make e2e-cloud-tf
|
|
integration-image-factory:
|
|
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/image-factory')
|
|
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: ci-temp-release-tag
|
|
if: github.event_name != 'schedule'
|
|
run: |
|
|
make ci-temp-release-tag
|
|
- name: uki-certs
|
|
if: github.event_name == 'schedule'
|
|
env:
|
|
PLATFORM: linux/amd64
|
|
run: |
|
|
make uki-certs
|
|
- name: build
|
|
if: github.event_name == 'schedule'
|
|
env:
|
|
IMAGE_REGISTRY: registry.dev.siderolabs.io
|
|
PLATFORM: linux/amd64,linux/arm64
|
|
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: iso
|
|
if: github.event_name == 'schedule'
|
|
env:
|
|
IMAGE_REGISTRY: registry.dev.siderolabs.io
|
|
IMAGER_ARGS: --extra-kernel-arg=console=ttyS0
|
|
run: |
|
|
make iso secureboot-iso
|
|
- name: images-essential
|
|
if: github.event_name == 'schedule'
|
|
env:
|
|
IMAGE_REGISTRY: registry.dev.siderolabs.io
|
|
IMAGER_ARGS: --extra-kernel-arg=console=ttyS0
|
|
PLATFORM: linux/amd64
|
|
run: |
|
|
make images-essential
|
|
- name: factory-1.7-iso
|
|
env:
|
|
FACTORY_BOOT_METHOD: iso
|
|
FACTORY_SCHEMATIC: 376567988ad370138ad8b2698212367b8edcb69b5fd68c80be1f2ec7d603b4ba
|
|
FACTORY_UPGRADE: "true"
|
|
FACTORY_UPGRADE_SCHEMATIC: cf9b7aab9ed7c365d5384509b4d31c02fdaa06d2b3ac6cc0bc806f28130eff1f
|
|
FACTORY_UPGRADE_VERSION: v1.7.6
|
|
FACTORY_VERSION: v1.7.5
|
|
KUBERNETES_VERSION: 1.30.1
|
|
run: |
|
|
sudo -E make e2e-image-factory
|
|
- name: factory-1.7-image
|
|
env:
|
|
FACTORY_BOOT_METHOD: disk-image
|
|
FACTORY_SCHEMATIC: 376567988ad370138ad8b2698212367b8edcb69b5fd68c80be1f2ec7d603b4ba
|
|
FACTORY_UPGRADE: "true"
|
|
FACTORY_UPGRADE_SCHEMATIC: cf9b7aab9ed7c365d5384509b4d31c02fdaa06d2b3ac6cc0bc806f28130eff1f
|
|
FACTORY_UPGRADE_VERSION: v1.7.6
|
|
FACTORY_VERSION: v1.7.5
|
|
KUBERNETES_VERSION: 1.30.1
|
|
run: |
|
|
sudo -E make e2e-image-factory
|
|
- name: factory-1.7-pxe
|
|
env:
|
|
FACTORY_BOOT_METHOD: pxe
|
|
FACTORY_SCHEMATIC: 376567988ad370138ad8b2698212367b8edcb69b5fd68c80be1f2ec7d603b4ba
|
|
FACTORY_VERSION: v1.7.6
|
|
KUBERNETES_VERSION: 1.30.1
|
|
run: |
|
|
sudo -E make e2e-image-factory
|
|
- name: factory-1.7-secureboot
|
|
env:
|
|
FACTORY_BOOT_METHOD: secureboot-iso
|
|
FACTORY_SCHEMATIC: cf9b7aab9ed7c365d5384509b4d31c02fdaa06d2b3ac6cc0bc806f28130eff1f
|
|
FACTORY_UPGRADE: "true"
|
|
FACTORY_UPGRADE_SCHEMATIC: 376567988ad370138ad8b2698212367b8edcb69b5fd68c80be1f2ec7d603b4ba
|
|
FACTORY_UPGRADE_VERSION: v1.7.6
|
|
FACTORY_VERSION: v1.7.5
|
|
KUBERNETES_VERSION: 1.30.1
|
|
run: |
|
|
sudo -E make e2e-image-factory
|
|
- name: factory-1.6-secureboot
|
|
env:
|
|
FACTORY_BOOT_METHOD: secureboot-iso
|
|
FACTORY_SCHEMATIC: cf9b7aab9ed7c365d5384509b4d31c02fdaa06d2b3ac6cc0bc806f28130eff1f
|
|
FACTORY_UPGRADE: "true"
|
|
FACTORY_UPGRADE_SCHEMATIC: 376567988ad370138ad8b2698212367b8edcb69b5fd68c80be1f2ec7d603b4ba
|
|
FACTORY_UPGRADE_VERSION: v1.6.1
|
|
FACTORY_VERSION: v1.6.0
|
|
KUBERNETES_VERSION: 1.29.0
|
|
run: |
|
|
sudo -E make e2e-image-factory
|
|
- name: factory-1.6-iso
|
|
env:
|
|
FACTORY_BOOT_METHOD: iso
|
|
FACTORY_SCHEMATIC: 376567988ad370138ad8b2698212367b8edcb69b5fd68c80be1f2ec7d603b4ba
|
|
FACTORY_UPGRADE: "true"
|
|
FACTORY_UPGRADE_SCHEMATIC: cf9b7aab9ed7c365d5384509b4d31c02fdaa06d2b3ac6cc0bc806f28130eff1f
|
|
FACTORY_UPGRADE_VERSION: v1.6.1
|
|
FACTORY_VERSION: v1.6.0
|
|
KUBERNETES_VERSION: 1.29.0
|
|
run: |
|
|
sudo -E make e2e-image-factory
|
|
- name: factory-1.5-iso
|
|
env:
|
|
FACTORY_BOOT_METHOD: iso
|
|
FACTORY_SCHEMATIC: 376567988ad370138ad8b2698212367b8edcb69b5fd68c80be1f2ec7d603b4ba
|
|
FACTORY_UPGRADE: "true"
|
|
FACTORY_UPGRADE_SCHEMATIC: cf9b7aab9ed7c365d5384509b4d31c02fdaa06d2b3ac6cc0bc806f28130eff1f
|
|
FACTORY_UPGRADE_VERSION: v1.5.5
|
|
FACTORY_VERSION: v1.5.5
|
|
KUBERNETES_VERSION: 1.28.5
|
|
run: |
|
|
sudo -E make e2e-image-factory
|
|
- name: save artifacts
|
|
if: always()
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: talos-logs-integration-image-factory
|
|
path: |-
|
|
~/.talos/clusters/**/*.log
|
|
~/.talos/clusters/**/support.zip
|
|
/tmp/support-*.zip
|
|
!~/.talos/clusters/**/swtpm.log
|
|
retention-days: "5"
|
|
integration-images:
|
|
permissions:
|
|
actions: read
|
|
contents: write
|
|
issues: read
|
|
packages: write
|
|
pull-requests: read
|
|
runs-on:
|
|
- self-hosted
|
|
- generic
|
|
if: contains(fromJSON(needs.default.outputs.labels), 'integration/images')
|
|
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: ci-temp-release-tag
|
|
if: github.event_name != 'schedule'
|
|
run: |
|
|
make ci-temp-release-tag
|
|
- 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: images
|
|
env:
|
|
IMAGE_REGISTRY: registry.dev.siderolabs.io
|
|
PLATFORM: linux/amd64,linux/arm64
|
|
run: |
|
|
make images
|
|
integration-misc-0:
|
|
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/misc') || contains(fromJSON(needs.default.outputs.labels), 'integration/misc-0')
|
|
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: ci-temp-release-tag
|
|
if: github.event_name != 'schedule'
|
|
run: |
|
|
make ci-temp-release-tag
|
|
- 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: e2e-firewall
|
|
env:
|
|
IMAGE_REGISTRY: registry.dev.siderolabs.io
|
|
SHORT_INTEGRATION_TEST: "yes"
|
|
WITH_FIREWALL: block
|
|
run: |
|
|
sudo -E make e2e-qemu
|
|
- name: e2e-canal-reset
|
|
env:
|
|
CUSTOM_CNI_URL: https://raw.githubusercontent.com/projectcalico/calico/v3.25.0/manifests/canal.yaml
|
|
IMAGE_REGISTRY: registry.dev.siderolabs.io
|
|
INTEGRATION_TEST_RUN: TestIntegration/api.ResetSuite/TestResetWithSpec
|
|
run: |
|
|
sudo -E make e2e-qemu
|
|
- name: e2e-controlplane-port
|
|
env:
|
|
IMAGE_REGISTRY: registry.dev.siderolabs.io
|
|
SHORT_INTEGRATION_TEST: "yes"
|
|
WITH_CONTROL_PLANE_PORT: "443"
|
|
run: |
|
|
sudo -E make e2e-qemu
|
|
- name: save artifacts
|
|
if: always()
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: talos-logs-integration-misc-0
|
|
path: |-
|
|
~/.talos/clusters/**/*.log
|
|
~/.talos/clusters/**/support.zip
|
|
/tmp/support-*.zip
|
|
!~/.talos/clusters/**/swtpm.log
|
|
retention-days: "5"
|
|
integration-misc-1:
|
|
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/misc') || contains(fromJSON(needs.default.outputs.labels), 'integration/misc-1')
|
|
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: ci-temp-release-tag
|
|
if: github.event_name != 'schedule'
|
|
run: |
|
|
make ci-temp-release-tag
|
|
- 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: e2e-no-cluster-discovery
|
|
env:
|
|
IMAGE_REGISTRY: registry.dev.siderolabs.io
|
|
SHORT_INTEGRATION_TEST: "yes"
|
|
WITH_CLUSTER_DISCOVERY: "false"
|
|
run: |
|
|
sudo -E make e2e-qemu
|
|
- name: e2e-kubespan
|
|
env:
|
|
IMAGE_REGISTRY: registry.dev.siderolabs.io\
|
|
SHORT_INTEGRATION_TEST: "yes"
|
|
WITH_CLUSTER_DISCOVERY: "true"
|
|
WITH_KUBESPAN: "true"
|
|
run: |
|
|
sudo -E make e2e-qemu
|
|
- name: e2e-default-hostname
|
|
env:
|
|
DISABLE_DHCP_HOSTNAME: "true"
|
|
IMAGE_REGISTRY: registry.dev.siderolabs.io
|
|
SHORT_INTEGRATION_TEST: "yes"
|
|
VIA_MAINTENANCE_MODE: "true"
|
|
run: |
|
|
sudo -E make e2e-qemu
|
|
- name: save artifacts
|
|
if: always()
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: talos-logs-integration-misc-1
|
|
path: |-
|
|
~/.talos/clusters/**/*.log
|
|
~/.talos/clusters/**/support.zip
|
|
/tmp/support-*.zip
|
|
!~/.talos/clusters/**/swtpm.log
|
|
retention-days: "5"
|
|
integration-misc-2:
|
|
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/misc') || contains(fromJSON(needs.default.outputs.labels), 'integration/misc-2')
|
|
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: ci-temp-release-tag
|
|
if: github.event_name != 'schedule'
|
|
run: |
|
|
make ci-temp-release-tag
|
|
- name: uki-certs
|
|
if: github.event_name == 'schedule'
|
|
env:
|
|
PLATFORM: linux/amd64
|
|
run: |
|
|
make uki-certs
|
|
- 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: images-essential
|
|
if: github.event_name == 'schedule'
|
|
env:
|
|
IMAGE_REGISTRY: registry.dev.siderolabs.io
|
|
PLATFORM: linux/amd64
|
|
run: |
|
|
make images-essential
|
|
- name: e2e-bios-cgroupsv1
|
|
env:
|
|
IMAGE_REGISTRY: registry.dev.siderolabs.io
|
|
SHORT_INTEGRATION_TEST: "yes"
|
|
WITH_CONFIG_PATCH: '@hack/test/patches/cgroupsv1.yaml'
|
|
WITH_UEFI: "false"
|
|
run: |
|
|
sudo -E make e2e-qemu
|
|
- name: e2e-disk-image
|
|
env:
|
|
IMAGE_REGISTRY: registry.dev.siderolabs.io
|
|
SHORT_INTEGRATION_TEST: "yes"
|
|
USE_DISK_IMAGE: "true"
|
|
VIA_MAINTENANCE_MODE: "true"
|
|
WITH_DISK_ENCRYPTION: "true"
|
|
run: |
|
|
sudo -E make e2e-qemu
|
|
- name: save artifacts
|
|
if: always()
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: talos-logs-integration-misc-2
|
|
path: |-
|
|
~/.talos/clusters/**/*.log
|
|
~/.talos/clusters/**/support.zip
|
|
/tmp/support-*.zip
|
|
!~/.talos/clusters/**/swtpm.log
|
|
retention-days: "5"
|
|
integration-misc-3:
|
|
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/misc') || contains(fromJSON(needs.default.outputs.labels), 'integration/misc-3')
|
|
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: ci-temp-release-tag
|
|
if: github.event_name != 'schedule'
|
|
run: |
|
|
make ci-temp-release-tag
|
|
- 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: e2e-network-chaos
|
|
env:
|
|
IMAGE_REGISTRY: registry.dev.siderolabs.io
|
|
SHORT_INTEGRATION_TEST: "yes"
|
|
WITH_NETWORK_CHAOS: "yes"
|
|
run: |
|
|
sudo -E make e2e-qemu
|
|
- name: e2e-metal-iso
|
|
env:
|
|
IMAGE_REGISTRY: registry.dev.siderolabs.io
|
|
SHORT_INTEGRATION_TEST: "yes"
|
|
WITH_CONFIG_INJECTION_METHOD: metal-iso
|
|
run: |
|
|
sudo -E make e2e-qemu
|
|
- name: save artifacts
|
|
if: always()
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: talos-logs-integration-misc-3
|
|
path: |-
|
|
~/.talos/clusters/**/*.log
|
|
~/.talos/clusters/**/support.zip
|
|
/tmp/support-*.zip
|
|
!~/.talos/clusters/**/swtpm.log
|
|
retention-days: "5"
|
|
integration-misc-4:
|
|
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/misc') || contains(fromJSON(needs.default.outputs.labels), 'integration/misc-4')
|
|
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: ci-temp-release-tag
|
|
if: github.event_name != 'schedule'
|
|
run: |
|
|
make ci-temp-release-tag
|
|
- 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: e2e-siderolink
|
|
env:
|
|
IMAGE_REGISTRY: registry.dev.siderolabs.io
|
|
SHORT_INTEGRATION_TEST: "yes"
|
|
VIA_MAINTENANCE_MODE: "true"
|
|
WITH_SIDEROLINK_AGENT: "true"
|
|
run: |
|
|
sudo -E make e2e-qemu
|
|
- name: e2e-siderolink-tunnel
|
|
env:
|
|
IMAGE_REGISTRY: registry.dev.siderolabs.io
|
|
SHORT_INTEGRATION_TEST: "yes"
|
|
VIA_MAINTENANCE_MODE: "true"
|
|
WITH_SIDEROLINK_AGENT: tunnel
|
|
run: |
|
|
sudo -E make e2e-qemu
|
|
- name: e2e-siderolink-tls
|
|
env:
|
|
IMAGE_REGISTRY: registry.dev.siderolabs.io
|
|
SHORT_INTEGRATION_TEST: "yes"
|
|
VIA_MAINTENANCE_MODE: "true"
|
|
WITH_SIDEROLINK_AGENT: wireguard+tls
|
|
run: |
|
|
sudo -E make e2e-qemu
|
|
- name: e2e-apparmor
|
|
env:
|
|
IMAGE_REGISTRY: registry.dev.siderolabs.io
|
|
SHORT_INTEGRATION_TEST: "yes"
|
|
WITH_APPARMOR_LSM_ENABLED: "yes"
|
|
run: |
|
|
sudo -E make e2e-qemu
|
|
- name: e2e-k8s-user-namespace
|
|
env:
|
|
IMAGE_REGISTRY: registry.dev.siderolabs.io
|
|
SHORT_INTEGRATION_TEST: "yes"
|
|
WITH_CONFIG_PATCH: '@hack/test/patches/usernamespace.yaml'
|
|
run: |
|
|
sudo -E make e2e-qemu
|
|
- name: save artifacts
|
|
if: always()
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: talos-logs-integration-misc-4
|
|
path: |-
|
|
~/.talos/clusters/**/*.log
|
|
~/.talos/clusters/**/support.zip
|
|
/tmp/support-*.zip
|
|
!~/.talos/clusters/**/swtpm.log
|
|
retention-days: "5"
|
|
integration-provision-0:
|
|
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/provision') || contains(fromJSON(needs.default.outputs.labels), 'integration/provision-0')
|
|
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: ci-temp-release-tag
|
|
if: github.event_name != 'schedule'
|
|
run: |
|
|
make ci-temp-release-tag
|
|
- 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: provision-tests-prepare
|
|
run: |
|
|
make provision-tests-prepare
|
|
- name: provision-tests-track-0
|
|
env:
|
|
GRPC_ENFORCE_ALPN_ENABLED: "false"
|
|
IMAGE_REGISTRY: registry.dev.siderolabs.io
|
|
run: |
|
|
sudo -E make provision-tests-track-0
|
|
- name: save artifacts
|
|
if: always()
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: talos-logs-integration-provision-0
|
|
path: |-
|
|
~/.talos/clusters/**/*.log
|
|
~/.talos/clusters/**/support.zip
|
|
/tmp/support-*.zip
|
|
!~/.talos/clusters/**/swtpm.log
|
|
retention-days: "5"
|
|
integration-provision-1:
|
|
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/provision') || contains(fromJSON(needs.default.outputs.labels), 'integration/provision-1')
|
|
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: ci-temp-release-tag
|
|
if: github.event_name != 'schedule'
|
|
run: |
|
|
make ci-temp-release-tag
|
|
- 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: provision-tests-prepare
|
|
run: |
|
|
make provision-tests-prepare
|
|
- name: provision-tests-track-1
|
|
env:
|
|
GRPC_ENFORCE_ALPN_ENABLED: "false"
|
|
IMAGE_REGISTRY: registry.dev.siderolabs.io
|
|
run: |
|
|
sudo -E make provision-tests-track-1
|
|
- name: save artifacts
|
|
if: always()
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: talos-logs-integration-provision-1
|
|
path: |-
|
|
~/.talos/clusters/**/*.log
|
|
~/.talos/clusters/**/support.zip
|
|
/tmp/support-*.zip
|
|
!~/.talos/clusters/**/swtpm.log
|
|
retention-days: "5"
|
|
integration-provision-2:
|
|
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/provision') || contains(fromJSON(needs.default.outputs.labels), 'integration/provision-2')
|
|
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: ci-temp-release-tag
|
|
if: github.event_name != 'schedule'
|
|
run: |
|
|
make ci-temp-release-tag
|
|
- 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: provision-tests-prepare
|
|
run: |
|
|
make provision-tests-prepare
|
|
- name: provision-tests-track-2
|
|
env:
|
|
GRPC_ENFORCE_ALPN_ENABLED: "false"
|
|
IMAGE_REGISTRY: registry.dev.siderolabs.io
|
|
run: |
|
|
sudo -E make provision-tests-track-2
|
|
- name: save artifacts
|
|
if: always()
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: talos-logs-integration-provision-2
|
|
path: |-
|
|
~/.talos/clusters/**/*.log
|
|
~/.talos/clusters/**/support.zip
|
|
/tmp/support-*.zip
|
|
!~/.talos/clusters/**/swtpm.log
|
|
retention-days: "5"
|
|
integration-qemu:
|
|
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/qemu')
|
|
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: ci-temp-release-tag
|
|
if: github.event_name != 'schedule'
|
|
run: |
|
|
make ci-temp-release-tag
|
|
- 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: e2e-qemu
|
|
env:
|
|
IMAGE_REGISTRY: registry.dev.siderolabs.io
|
|
QEMU_EXTRA_DISKS: "3"
|
|
QEMU_EXTRA_DISKS_DRIVERS: ide,nvme
|
|
QEMU_EXTRA_DISKS_SIZE: "10240"
|
|
WITH_CONFIG_PATCH_WORKER: '@hack/test/patches/ephemeral-nvme.yaml:@hack/test/patches/dm-raid-module.yaml'
|
|
WITH_JSON_LOGS: "true"
|
|
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/**/support.zip
|
|
/tmp/support-*.zip
|
|
!~/.talos/clusters/**/swtpm.log
|
|
retention-days: "5"
|
|
integration-qemu-csi-longhorn:
|
|
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/qemu-csi') || contains(fromJSON(needs.default.outputs.labels), 'integration/qemu-csi-longhorn')
|
|
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: ci-temp-release-tag
|
|
if: github.event_name != 'schedule'
|
|
run: |
|
|
make ci-temp-release-tag
|
|
- name: generate
|
|
if: github.event_name == 'schedule'
|
|
run: |
|
|
make generate
|
|
- 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: checkout extensions
|
|
uses: actions/checkout@v4
|
|
with:
|
|
path: _out/extensions
|
|
ref: main
|
|
repository: siderolabs/extensions
|
|
- name: set variables
|
|
run: |
|
|
cat _out/talos-metadata >> "$GITHUB_ENV"
|
|
- name: build extensions
|
|
env:
|
|
PLATFORM: linux/amd64
|
|
PUSH: "true"
|
|
REGISTRY: registry.dev.siderolabs.io
|
|
run: |
|
|
make iscsi-tools util-linux-tools extensions-metadata -C _out/extensions
|
|
- name: installer extensions
|
|
env:
|
|
EXTENSIONS_FILTER_COMMAND: grep -E 'iscsi-tools|util-linux-tools'
|
|
IMAGE_REGISTRY: registry.dev.siderolabs.io
|
|
run: |
|
|
make installer-with-extensions
|
|
- name: e2e-qemu-csi-longhorn
|
|
env:
|
|
EXTRA_TEST_ARGS: -talos.csi=longhorn
|
|
IMAGE_REGISTRY: registry.dev.siderolabs.io
|
|
QEMU_WORKERS: "3"
|
|
SHORT_INTEGRATION_TEST: "yes"
|
|
WITH_CONFIG_PATCH: '@_out/installer-extensions-patch.yaml:@hack/test/patches/longhorn.yaml'
|
|
run: |
|
|
sudo -E make e2e-qemu
|
|
- name: save artifacts
|
|
if: always()
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: talos-logs-integration-qemu-csi-longhorn
|
|
path: |-
|
|
~/.talos/clusters/**/*.log
|
|
~/.talos/clusters/**/support.zip
|
|
/tmp/support-*.zip
|
|
!~/.talos/clusters/**/swtpm.log
|
|
retention-days: "5"
|
|
integration-qemu-csi-rook-ceph:
|
|
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/qemu-csi') || contains(fromJSON(needs.default.outputs.labels), 'integration/qemu-csi-rook-ceph')
|
|
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: ci-temp-release-tag
|
|
if: github.event_name != 'schedule'
|
|
run: |
|
|
make ci-temp-release-tag
|
|
- 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: e2e-qemu-csi-rook-ceph
|
|
env:
|
|
EXTRA_TEST_ARGS: -talos.csi=rook-ceph
|
|
IMAGE_REGISTRY: registry.dev.siderolabs.io
|
|
QEMU_CPUS_WORKERS: "6"
|
|
QEMU_EXTRA_DISKS: "1"
|
|
QEMU_EXTRA_DISKS_SIZE: "12288"
|
|
QEMU_MEMORY_WORKERS: "8192"
|
|
QEMU_WORKERS: "3"
|
|
SHORT_INTEGRATION_TEST: "yes"
|
|
WITH_CONFIG_PATCH: '@hack/test/patches/rook-ceph.yaml'
|
|
run: |
|
|
sudo -E make e2e-qemu
|
|
- name: save artifacts
|
|
if: always()
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: talos-logs-integration-qemu-csi-rook-ceph
|
|
path: |-
|
|
~/.talos/clusters/**/*.log
|
|
~/.talos/clusters/**/support.zip
|
|
/tmp/support-*.zip
|
|
!~/.talos/clusters/**/swtpm.log
|
|
retention-days: "5"
|
|
integration-qemu-encrypted-vip:
|
|
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/qemu-encrypted-vip')
|
|
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: ci-temp-release-tag
|
|
if: github.event_name != 'schedule'
|
|
run: |
|
|
make ci-temp-release-tag
|
|
- 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: e2e-qemu
|
|
env:
|
|
IMAGE_REGISTRY: registry.dev.siderolabs.io
|
|
QEMU_EXTRA_DISKS: "3"
|
|
QEMU_EXTRA_DISKS_DRIVERS: ide,nvme
|
|
QEMU_EXTRA_DISKS_SIZE: "10240"
|
|
WITH_CONFIG_PATCH_WORKER: '@hack/test/patches/ephemeral-nvme.yaml:@hack/test/patches/dm-raid-module.yaml'
|
|
WITH_DISK_ENCRYPTION: "true"
|
|
WITH_KUBESPAN: "true"
|
|
WITH_VIRTUAL_IP: "true"
|
|
run: |
|
|
sudo -E make e2e-qemu
|
|
- name: save artifacts
|
|
if: always()
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: talos-logs-integration-qemu-encrypted-vip
|
|
path: |-
|
|
~/.talos/clusters/**/*.log
|
|
~/.talos/clusters/**/support.zip
|
|
/tmp/support-*.zip
|
|
!~/.talos/clusters/**/swtpm.log
|
|
retention-days: "5"
|
|
integration-qemu-race:
|
|
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/qemu-race')
|
|
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: ci-temp-release-tag
|
|
if: github.event_name != 'schedule'
|
|
run: |
|
|
make ci-temp-release-tag
|
|
- 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: build-race
|
|
env:
|
|
IMAGE_REGISTRY: registry.dev.siderolabs.io
|
|
PLATFORM: linux/amd64
|
|
PUSH: "true"
|
|
TAG_SUFFIX: -race
|
|
WITH_RACE: "1"
|
|
run: |
|
|
make initramfs installer
|
|
- name: e2e-qemu-race
|
|
env:
|
|
IMAGE_REGISTRY: registry.dev.siderolabs.io
|
|
QEMU_EXTRA_DISKS: "3"
|
|
QEMU_EXTRA_DISKS_DRIVERS: ide,nvme
|
|
QEMU_EXTRA_DISKS_SIZE: "10240"
|
|
TAG_SUFFIX: -race
|
|
WITH_CONFIG_PATCH_WORKER: '@hack/test/patches/ephemeral-nvme.yaml:@hack/test/patches/dm-raid-module.yaml'
|
|
run: |
|
|
sudo -E make e2e-qemu
|
|
- name: save artifacts
|
|
if: always()
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: talos-logs-integration-qemu-race
|
|
path: |-
|
|
~/.talos/clusters/**/*.log
|
|
~/.talos/clusters/**/support.zip
|
|
/tmp/support-*.zip
|
|
!~/.talos/clusters/**/swtpm.log
|
|
retention-days: "5"
|
|
integration-reproducibility-test:
|
|
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/reproducibility-test')
|
|
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: ci-temp-release-tag
|
|
if: github.event_name != 'schedule'
|
|
run: |
|
|
make ci-temp-release-tag
|
|
- name: reproducibility-test
|
|
env:
|
|
IMAGE_REGISTRY: registry.dev.siderolabs.io
|
|
run: |
|
|
make reproducibility-test
|
|
integration-trusted-boot:
|
|
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/trusted-boot')
|
|
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: ci-temp-release-tag
|
|
if: github.event_name != 'schedule'
|
|
run: |
|
|
make ci-temp-release-tag
|
|
- name: uki-certs
|
|
if: github.event_name == 'schedule'
|
|
env:
|
|
PLATFORM: linux/amd64
|
|
run: |
|
|
make uki-certs
|
|
- 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: images-essential
|
|
if: github.event_name == 'schedule'
|
|
env:
|
|
IMAGE_REGISTRY: registry.dev.siderolabs.io
|
|
IMAGER_ARGS: --extra-kernel-arg=console=ttyS0
|
|
PLATFORM: linux/amd64
|
|
run: |
|
|
make images-essential
|
|
- name: secureboot-iso
|
|
if: github.event_name == 'schedule'
|
|
env:
|
|
IMAGE_REGISTRY: registry.dev.siderolabs.io
|
|
IMAGER_ARGS: --extra-kernel-arg=console=ttyS0
|
|
PLATFORM: linux/amd64
|
|
run: |
|
|
make secureboot-iso
|
|
- name: integration-trusted-boot
|
|
env:
|
|
EXTRA_TEST_ARGS: -talos.trustedboot
|
|
IMAGE_REGISTRY: registry.dev.siderolabs.io
|
|
VIA_MAINTENANCE_MODE: "true"
|
|
WITH_TRUSTED_BOOT_ISO: "true"
|
|
run: |
|
|
sudo -E make e2e-qemu
|
|
- name: save artifacts
|
|
if: always()
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: talos-logs-integration-trusted-boot
|
|
path: |-
|
|
~/.talos/clusters/**/*.log
|
|
~/.talos/clusters/**/support.zip
|
|
/tmp/support-*.zip
|
|
!~/.talos/clusters/**/swtpm.log
|
|
retention-days: "5"
|
|
push:
|
|
permissions:
|
|
actions: read
|
|
contents: write
|
|
issues: read
|
|
packages: write
|
|
pull-requests: read
|
|
runs-on:
|
|
- self-hosted
|
|
- talos
|
|
if: (!startsWith(github.head_ref, 'renovate/') && !startsWith(github.head_ref, 'dependabot/')) && github.event_name != 'pull_request' && !startsWith(github.ref, 'refs/tags/')
|
|
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: build
|
|
env:
|
|
PLATFORM: linux/amd64,linux/arm64
|
|
run: |
|
|
make talosctl-all kernel sd-boot sd-stub initramfs installer imager talos
|
|
- name: release-notes
|
|
run: |
|
|
make release-notes
|
|
- name: login-to-registry
|
|
uses: docker/login-action@v3
|
|
with:
|
|
password: ${{ secrets.GITHUB_TOKEN }}
|
|
registry: ghcr.io
|
|
username: ${{ github.repository_owner }}
|
|
- name: push
|
|
env:
|
|
PLATFORM: linux/amd64,linux/arm64
|
|
run: |
|
|
make push
|
|
- name: push-latest
|
|
if: '!startsWith(github.ref, ''refs/tags/'')'
|
|
env:
|
|
PLATFORM: linux/amd64,linux/arm64
|
|
run: |
|
|
make push-latest
|
|
tag:
|
|
permissions:
|
|
actions: read
|
|
contents: write
|
|
issues: read
|
|
packages: write
|
|
pull-requests: read
|
|
runs-on:
|
|
- self-hosted
|
|
- talos
|
|
if: (!startsWith(github.head_ref, 'renovate/') && !startsWith(github.head_ref, 'dependabot/')) && startsWith(github.ref, 'refs/tags/')
|
|
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: Mask secrets
|
|
run: |
|
|
echo "$(sops -d .secrets.yaml | yq -e '.secrets | to_entries[] | "::add-mask::" + .value')"
|
|
- name: Set secrets for job
|
|
run: |
|
|
sops -d .secrets.yaml | yq -e '.secrets | to_entries[] | .key + "=" + .value' >> "$GITHUB_ENV"
|
|
- name: build
|
|
env:
|
|
PLATFORM: linux/amd64,linux/arm64
|
|
run: |
|
|
make talosctl-all kernel sd-boot sd-stub initramfs installer imager talos talosctl-cni-bundle
|
|
- name: release-notes
|
|
run: |
|
|
make release-notes
|
|
- name: login-to-registry
|
|
uses: docker/login-action@v3
|
|
with:
|
|
password: ${{ secrets.GITHUB_TOKEN }}
|
|
registry: ghcr.io
|
|
username: ${{ github.repository_owner }}
|
|
- name: push
|
|
env:
|
|
PLATFORM: linux/amd64,linux/arm64
|
|
run: |
|
|
make push
|
|
- name: images
|
|
env:
|
|
PLATFORM: linux/amd64,linux/arm64
|
|
run: |
|
|
make images
|
|
- name: cloud-images
|
|
env:
|
|
PLATFORM: linux/amd64,linux/arm64
|
|
run: |
|
|
make cloud-images
|
|
- name: Generate Checksums
|
|
run: |
|
|
cd _out
|
|
sha256sum cloud-images.json initramfs-amd64.xz initramfs-arm64.xz metal-amd64.iso metal-arm64.iso metal-amd64.raw.zst metal-arm64.raw.zst talosctl-cni-bundle-amd64.tar.gz talosctl-cni-bundle-arm64.tar.gz talosctl-darwin-amd64 talosctl-darwin-arm64 talosctl-freebsd-amd64 talosctl-freebsd-arm64 talosctl-linux-amd64 talosctl-linux-arm64 talosctl-linux-armv7 talosctl-windows-amd64.exe talosctl-windows-arm64.exe vmlinuz-amd64 vmlinuz-arm64 > sha256sum.txt
|
|
sha512sum cloud-images.json initramfs-amd64.xz initramfs-arm64.xz metal-amd64.iso metal-arm64.iso metal-amd64.raw.zst metal-arm64.raw.zst talosctl-cni-bundle-amd64.tar.gz talosctl-cni-bundle-arm64.tar.gz talosctl-darwin-amd64 talosctl-darwin-arm64 talosctl-freebsd-amd64 talosctl-freebsd-arm64 talosctl-linux-amd64 talosctl-linux-arm64 talosctl-linux-armv7 talosctl-windows-amd64.exe talosctl-windows-arm64.exe vmlinuz-amd64 vmlinuz-arm64 > sha512sum.txt
|
|
- name: release
|
|
uses: crazy-max/ghaction-github-release@v2
|
|
with:
|
|
body_path: _out/RELEASE_NOTES.md
|
|
draft: "true"
|
|
files: |-
|
|
_out/cloud-images.json
|
|
_out/initramfs-amd64.xz
|
|
_out/initramfs-arm64.xz
|
|
_out/metal-amd64.iso
|
|
_out/metal-arm64.iso
|
|
_out/metal-amd64.raw.zst
|
|
_out/metal-arm64.raw.zst
|
|
_out/talosctl-cni-bundle-amd64.tar.gz
|
|
_out/talosctl-cni-bundle-arm64.tar.gz
|
|
_out/talosctl-darwin-amd64
|
|
_out/talosctl-darwin-arm64
|
|
_out/talosctl-freebsd-amd64
|
|
_out/talosctl-freebsd-arm64
|
|
_out/talosctl-linux-amd64
|
|
_out/talosctl-linux-arm64
|
|
_out/talosctl-linux-armv7
|
|
_out/talosctl-windows-amd64.exe
|
|
_out/talosctl-windows-arm64.exe
|
|
_out/vmlinuz-amd64
|
|
_out/vmlinuz-arm64
|
|
_out/sha*.txt
|