Skip to content

Commit

Permalink
Merge pull request #582 from balena-os/alexgg/hab
Browse files Browse the repository at this point in the history
Secure boot and disk encryption support
  • Loading branch information
flowzone-app[bot] authored Jan 15, 2025
2 parents fc324cb + e1cd253 commit 693d330
Show file tree
Hide file tree
Showing 6 changed files with 293 additions and 0 deletions.
67 changes: 67 additions & 0 deletions .github/workflows/iot-gate-imx8-sb.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
name: Compulab IOT-GATE-iMX8-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+sign-api-key

permissions:
id-token: write # This is required for requesting the JWT #https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services#requesting-the-access-token
actions: read # We are fetching workflow run results of a merge commit when workflow is triggered by new tag, to see if tests pass
pull-requests: write # Read is required to fetch the PR that merged, in order to get the test results. Write is required to create PR comments for workflow approvals.
packages: read
contents: read

jobs:
yocto:
name: Yocto
uses: balena-os/balena-yocto-scripts/.github/workflows/yocto-build-deploy.yml@3a78c259d96823f6d31477f802cfde2b72bc3b5a
# 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: iot-gate-imx8
build-args: '--templates-path layers/meta-balena-hab'
# worker_type defaults to testbot
# worker_fleets defaults to balena/testbot-rig,balena/testbot-rig-partners,balena/testbot-rig-x86,balena/testbot-rig-partners-x86
test_matrix: >
{
"test_suite": ["os","cloud","hup"],
"environment": ["bm.balena-dev.com"],
"runs_on": [["ubuntu-latest"]],
"secure_boot": ["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+sign-api-key for other events
deploy-environment: ${{ inputs.deploy-environment || 'balena-cloud.com+sign-api-key' }}
sign-image: true
1 change: 1 addition & 0 deletions .github/workflows/iot-gate-imx8.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ jobs:
secrets: inherit
with:
machine: iot-gate-imx8
build-args: '--templates-path layers/meta-balena-imx8mm'
# worker_type defaults to testbot
# worker_fleets defaults to balena/testbot-rig,balena/testbot-rig-partners,balena/testbot-rig-x86,balena/testbot-rig-partners-x86
test_matrix: >
Expand Down
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -45,3 +45,6 @@
branch = honister
[submodule "layers/meta-compulab-bsp"]
branch = honister
[submodule "layers/meta-balena-hab"]
path = layers/meta-balena-hab
url = [email protected]:balena-os/meta-balena-hab.git
52 changes: 52 additions & 0 deletions iot-gate-imx8-sb.coffee
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
deviceTypesCommon = require '@resin.io/device-types/common'
{ networkOptions, commonImg, instructions } = deviceTypesCommon

IOT_GATE_IMX8_FLASH = 'Insert USB STICK. Device will automatically boot from USB'

postProvisioningInstructions = [
instructions.BOARD_SHUTDOWN
instructions.REMOVE_INSTALL_MEDIA
instructions.BOARD_REPOWER
]

module.exports =
version: 1
slug: 'iot-gate-imx8-sb'
name: 'Compulab IOT-GATE-iMX8 secure boot variant'
arch: 'aarch64'
state: 'released'

stateInstructions:
postProvisioning: postProvisioningInstructions

instructions: [
instructions.ETCHER_USB
instructions.EJECT_USB
instructions.FLASHER_WARNING
IOT_GATE_IMX8_FLASH
].concat(postProvisioningInstructions)

gettingStartedLink:
windows: 'http://docs.balena.io/iot-gate-imx8-sb/nodejs/getting-started/#adding-your-first-device'
osx: 'http://docs.balena.io/iot-gate-imx8-sb/getting-started/#adding-your-first-device'
linux: 'http://docs.balena.io/iot-gate-imx8-sb/getting-started/#adding-your-first-device'

supportsBlink: false

yocto:
machine: 'iot-gate-imx8'
image: 'balena-image-flasher'
fstype: 'balenaos-img'
version: 'yocto-kirkstone'
deployArtifact: 'balena-image-flasher-iot-gate-imx8.balenaos-img'
compressed: true

options: [ networkOptions.group ]

configuration:
config:
partition:
primary: 1
path: '/config.json'

initialization: commonImg.initialization
169 changes: 169 additions & 0 deletions iot-gate-imx8-sb.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions layers/meta-balena-hab
Submodule meta-balena-hab added at b9e59d

0 comments on commit 693d330

Please sign in to comment.