From f41e8aa4585ca65bd5746073d4dae2b960a7b4b1 Mon Sep 17 00:00:00 2001 From: Kyle Harding Date: Wed, 18 Sep 2024 09:53:23 -0400 Subject: [PATCH] Add GHA workflows for each device type Changelog-entry: Add GHA workflows for each device type Signed-off-by: Kyle Harding --- .github/workflows/generic-aarch64.yml | 57 +++++++++++++++++++ .github/workflows/generic-amd64-fs.yml | 53 +++++++++++++++++ .github/workflows/generic-amd64.yml | 60 ++++++++++++++++++++ .github/workflows/kontron-come-xelx.yml | 49 ++++++++++++++++ .github/workflows/studio-automatedx86-sb.yml | 53 +++++++++++++++++ 5 files changed, 272 insertions(+) create mode 100644 .github/workflows/generic-aarch64.yml create mode 100644 .github/workflows/generic-amd64-fs.yml create mode 100644 .github/workflows/generic-amd64.yml create mode 100644 .github/workflows/kontron-come-xelx.yml create mode 100644 .github/workflows/studio-automatedx86-sb.yml diff --git a/.github/workflows/generic-aarch64.yml b/.github/workflows/generic-aarch64.yml new file mode 100644 index 00000000..c3208dc2 --- /dev/null +++ b/.github/workflows/generic-aarch64.yml @@ -0,0 +1,57 @@ +name: Generic AARCH64 + +on: + # https://docs.github.com/en/actions/writing-workflows/workflow-syntax-for-github-actions#onpushbranchestagsbranches-ignoretags-ignore + # https://docs.github.com/en/actions/writing-workflows/workflow-syntax-for-github-actions#filter-pattern-cheat-sheet + pull_request: + branches: + - main + - master + # ESR branches glob pattern + # - 20[0-9][0-9].[0-1]?[1470].x + pull_request_target: + branches: + - main + - master + push: + tags: + # Semver tags glob pattern (includes ESR in format v20YY.MM.PATCH) + - v[0-9]+.[0-9]+.[0-9]+\+?r?e?v?* + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + inputs: + force-finalize: + description: Force finalize of the build (implicitly enables hostapp and S3 deployments) + required: false + type: boolean + default: false + deploy-environment: + description: Environment to use for build and deploy + required: false + type: string + default: balena-staging.com + +jobs: + yocto: + name: Yocto + uses: balena-os/balena-yocto-scripts/.github/workflows/yocto-build-deploy.yml@v1.26.0 + # Prevent duplicate workflow executions for pull_request (PR) and pull_request_target (PRT) events. + # Both PR and PRT will be triggered for the same pull request, whether it is internal or from a fork. + # This condition will prevent the workflow from running twice for the same pull request while + # still allowing it to run for all other event types. + if: (github.event.pull_request.head.repo.full_name == github.repository) == (github.event_name == 'pull_request') + secrets: inherit + with: + machine: generic-aarch64 + # Allow manual workflow runs to force finalize without checking previous test runs + force-finalize: ${{ inputs.force-finalize || false }} + # Default to balena-staging.com for workflow dispatch, but balena-cloud.com for other events + deploy-environment: ${{ inputs.deploy-environment || 'balena-cloud.com' }} + # Use QEMU workers for testing and run cloud suite against balenaCloud production + test_matrix: > + { + "test_suite": ["os","cloud","hup"], + "environment": ["balena-cloud.com"], + "worker_type": ["qemu"], + "runs_on": [["self-hosted", "X64", "kvm"]] + } diff --git a/.github/workflows/generic-amd64-fs.yml b/.github/workflows/generic-amd64-fs.yml new file mode 100644 index 00000000..f775b882 --- /dev/null +++ b/.github/workflows/generic-amd64-fs.yml @@ -0,0 +1,53 @@ +name: Generic x86_64 (GPT) fs + +on: + # https://docs.github.com/en/actions/writing-workflows/workflow-syntax-for-github-actions#onpushbranchestagsbranches-ignoretags-ignore + # https://docs.github.com/en/actions/writing-workflows/workflow-syntax-for-github-actions#filter-pattern-cheat-sheet + pull_request: + branches: + - main + - master + # ESR branches glob pattern + # - 20[0-9][0-9].[0-1]?[1470].x + pull_request_target: + branches: + - main + - master + push: + tags: + # Semver tags glob pattern (includes ESR in format v20YY.MM.PATCH) + - v[0-9]+.[0-9]+.[0-9]+\+?r?e?v?* + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + inputs: + force-finalize: + description: Force finalize of the build (implicitly enables hostapp and S3 deployments) + required: false + type: boolean + default: false + deploy-environment: + description: Environment to use for build and deploy + required: false + type: string + default: balena-staging.com + +jobs: + yocto: + name: Yocto + uses: balena-os/balena-yocto-scripts/.github/workflows/yocto-build-deploy.yml@v1.26.0 + # Prevent duplicate workflow executions for pull_request (PR) and pull_request_target (PRT) events. + # Both PR and PRT will be triggered for the same pull request, whether it is internal or from a fork. + # This condition will prevent the workflow from running twice for the same pull request while + # still allowing it to run for all other event types. + if: (github.event.pull_request.head.repo.full_name == github.repository) == (github.event_name == 'pull_request') + secrets: inherit + with: + machine: generic-amd64-fs + # Allow manual workflow runs to force finalize without checking previous test runs + force-finalize: ${{ inputs.force-finalize || false }} + # Default to balena-staging.com for workflow dispatch, but balena-cloud.com for other events + deploy-environment: ${{ inputs.deploy-environment || 'balena-cloud.com+generic-amd64-fs-signing-key' }} + # Sign image for secure boot + sign-image: true + # FIXME: Disable finalize-on-push until we have a test to verify that SIGN_KMOD_KEY_APPEND is set + finalize-on-push-if-tests-passed: false \ No newline at end of file diff --git a/.github/workflows/generic-amd64.yml b/.github/workflows/generic-amd64.yml new file mode 100644 index 00000000..889b9125 --- /dev/null +++ b/.github/workflows/generic-amd64.yml @@ -0,0 +1,60 @@ +name: Generic x86_64 (GPT) + +on: + # https://docs.github.com/en/actions/writing-workflows/workflow-syntax-for-github-actions#onpushbranchestagsbranches-ignoretags-ignore + # https://docs.github.com/en/actions/writing-workflows/workflow-syntax-for-github-actions#filter-pattern-cheat-sheet + pull_request: + branches: + - main + - master + # ESR branches glob pattern + - 20[0-9][0-9].[0-1]?[1470].x + pull_request_target: + branches: + - main + - master + push: + tags: + # Semver tags glob pattern (includes ESR in format v20YY.MM.PATCH) + - v[0-9]+.[0-9]+.[0-9]+\+?r?e?v?* + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + inputs: + force-finalize: + description: Force finalize of the build (implicitly enables hostapp and S3 deployments) + required: false + type: boolean + default: false + deploy-environment: + description: Environment to use for build and deploy + required: false + type: string + default: balena-staging.com + +jobs: + yocto: + name: Yocto + uses: balena-os/balena-yocto-scripts/.github/workflows/yocto-build-deploy.yml@v1.26.0 + # Prevent duplicate workflow executions for pull_request (PR) and pull_request_target (PRT) events. + # Both PR and PRT will be triggered for the same pull request, whether it is internal or from a fork. + # This condition will prevent the workflow from running twice for the same pull request while + # still allowing it to run for all other event types. + if: (github.event.pull_request.head.repo.full_name == github.repository) == (github.event_name == 'pull_request') + secrets: inherit + with: + machine: generic-amd64 + # Allow manual workflow runs to force finalize without checking previous test runs + force-finalize: ${{ inputs.force-finalize || false }} + # Default to balena-staging.com for workflow dispatch, but balena-cloud.com for other events + deploy-environment: ${{ inputs.deploy-environment || 'balena-cloud.com+sign-api-key' }} + # Sign image for secure boot + sign-image: true + # Use QEMU workers for testing and run cloud suite against balenaCloud production + test_matrix: > + { + "test_suite": ["os","cloud","hup"], + "environment": ["balena-cloud.com"], + "worker_type": ["qemu"], + "runs_on": [["self-hosted", "X64", "kvm"]], + "secure_boot": ["sb",""] + } diff --git a/.github/workflows/kontron-come-xelx.yml b/.github/workflows/kontron-come-xelx.yml new file mode 100644 index 00000000..2e788fd7 --- /dev/null +++ b/.github/workflows/kontron-come-xelx.yml @@ -0,0 +1,49 @@ +name: Kontron COMe xELx + +on: + # https://docs.github.com/en/actions/writing-workflows/workflow-syntax-for-github-actions#onpushbranchestagsbranches-ignoretags-ignore + # https://docs.github.com/en/actions/writing-workflows/workflow-syntax-for-github-actions#filter-pattern-cheat-sheet + pull_request: + branches: + - main + - master + # ESR branches glob pattern + # - 20[0-9][0-9].[0-1]?[1470].x + pull_request_target: + branches: + - main + - master + push: + tags: + # Semver tags glob pattern (includes ESR in format v20YY.MM.PATCH) + - v[0-9]+.[0-9]+.[0-9]+\+?r?e?v?* + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + inputs: + force-finalize: + description: Force finalize of the build (implicitly enables hostapp and S3 deployments) + required: false + type: boolean + default: false + deploy-environment: + description: Environment to use for build and deploy + required: false + type: string + default: balena-staging.com + +jobs: + yocto: + name: Yocto + uses: balena-os/balena-yocto-scripts/.github/workflows/yocto-build-deploy.yml@v1.26.0 + # Prevent duplicate workflow executions for pull_request (PR) and pull_request_target (PRT) events. + # Both PR and PRT will be triggered for the same pull request, whether it is internal or from a fork. + # This condition will prevent the workflow from running twice for the same pull request while + # still allowing it to run for all other event types. + if: (github.event.pull_request.head.repo.full_name == github.repository) == (github.event_name == 'pull_request') + secrets: inherit + with: + machine: kontron-come-xelx + # Allow manual workflow runs to force finalize without checking previous test runs + force-finalize: ${{ inputs.force-finalize || false }} + # Default to balena-staging.com for workflow dispatch, but balena-cloud.com for other events + deploy-environment: ${{ inputs.deploy-environment || 'balena-cloud.com' }} diff --git a/.github/workflows/studio-automatedx86-sb.yml b/.github/workflows/studio-automatedx86-sb.yml new file mode 100644 index 00000000..32469149 --- /dev/null +++ b/.github/workflows/studio-automatedx86-sb.yml @@ -0,0 +1,53 @@ +name: Studio Automated X86 SB + +on: + # https://docs.github.com/en/actions/writing-workflows/workflow-syntax-for-github-actions#onpushbranchestagsbranches-ignoretags-ignore + # https://docs.github.com/en/actions/writing-workflows/workflow-syntax-for-github-actions#filter-pattern-cheat-sheet + pull_request: + branches: + - main + - master + # ESR branches glob pattern + # - 20[0-9][0-9].[0-1]?[1470].x + pull_request_target: + branches: + - main + - master + push: + tags: + # Semver tags glob pattern (includes ESR in format v20YY.MM.PATCH) + - v[0-9]+.[0-9]+.[0-9]+\+?r?e?v?* + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + inputs: + force-finalize: + description: Force finalize of the build (implicitly enables hostapp and S3 deployments) + required: false + type: boolean + default: false + deploy-environment: + description: Environment to use for build and deploy + required: false + type: string + default: balena-staging.com + +jobs: + yocto: + name: Yocto + uses: balena-os/balena-yocto-scripts/.github/workflows/yocto-build-deploy.yml@v1.26.0 + # Prevent duplicate workflow executions for pull_request (PR) and pull_request_target (PRT) events. + # Both PR and PRT will be triggered for the same pull request, whether it is internal or from a fork. + # This condition will prevent the workflow from running twice for the same pull request while + # still allowing it to run for all other event types. + if: (github.event.pull_request.head.repo.full_name == github.repository) == (github.event_name == 'pull_request') + secrets: inherit + with: + machine: studio-automatedx86-sb + # Allow manual workflow runs to force finalize without checking previous test runs + force-finalize: ${{ inputs.force-finalize || false }} + # Default to balena-staging.com for workflow dispatch, but balena-cloud.com for other events + deploy-environment: ${{ inputs.deploy-environment || 'balena-cloud.com+studio-automatedx86-sb-signing-key' }} + # Sign image for secure boot + sign-image: true + # FIXME: Disable finalize-on-push until we have a test to verify that SIGN_KMOD_KEY_APPEND is set + finalize-on-push-if-tests-passed: false