Skip to content

Commit

Permalink
Add support for Ubuntu 24.04 (#7360)
Browse files Browse the repository at this point in the history
This change updates the build and tests pipelines to support Ubuntu 24.04 amd64 and arm64v8. Specifically,
- Add Ubuntu 24.04 amd64 and arm64v8 jobs to the end-to-end tests pipeline.
- Update iot-identity-service repo references in Cargo.lock so we pick up the right packages in the end-to-end tests.
- Add Ubuntu 24.04 amd64 and arm64v8 to the packages build pipeline and related scripts.
- Update markdown docs and comments as needed.
- Update end-to-end test code to support Ubuntu 24.04 packages.

To test, I ran the CI Build and end-to-end test pipelines and confirmed they pass.

## Azure IoT Edge PR checklist:
  • Loading branch information
damonbarry authored Sep 3, 2024
1 parent e7abc49 commit 2807232
Show file tree
Hide file tree
Showing 7 changed files with 171 additions and 36 deletions.
62 changes: 60 additions & 2 deletions builds/e2e/e2e.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ variables:
Codeql.Enabled: false
DisableDockerDetector: true
# A 'minimal' pipeline only runs one end-to-end test (TempSensor). This is useful for platforms or
# environments that are very similar to other platforms/environments in our matrix, Ubuntu 20.04
# with the 'docker-ce' package vs. Ubuntu 20.04 with the 'iotedge-moby' package vs. the same
# environments that are very similar to other platforms/environments in our matrix, e.g., Ubuntu
# 20.04 with the 'docker-ce' package vs. Ubuntu 20.04 with the 'iotedge-moby' package vs. the same
# variations in Ubuntu 22.04. In these instances the platforms/environments are so similar that we
# don't reasonably expect to encounter differences--if we do, it would likely manifest during
# installation, or in running a very basic test. We don't need to repeat the entire test suite.
Expand Down Expand Up @@ -285,6 +285,64 @@ jobs:
parameters:
sas_uri: $(sas_uri)

################################################################################
- job: ubuntu_2404
################################################################################
displayName: Ubuntu 24.04 on amd64
dependsOn: Token
condition: succeeded('Token')

pool:
name: $(pool.custom.name)
demands: ubuntu2404-amd64-e2e-tests

variables:
os: linux
arch: amd64
artifactName: iotedged-ubuntu24.04-amd64
identityServiceArtifactName: packages_ubuntu-24.04_amd64
identityServicePackageFilter: aziot-identity-service_*_amd64.deb
sas_uri: $[ dependencies.Token.outputs['generate.sas_uri'] ]

timeoutInMinutes: 90

steps:
- template: templates/e2e-clean-directory.yaml
- template: templates/e2e-setup.yaml
- template: templates/e2e-clear-docker-cached-images.yaml
- template: templates/e2e-run.yaml
parameters:
sas_uri: $(sas_uri)

################################################################################
- job: ubuntu_2404_arm64v8
################################################################################
displayName: Ubuntu 24.04 on arm64v8
dependsOn: Token
condition: succeeded('Token')

pool:
name: $(pool.custom.name)
demands: ubuntu2404-arm64-e2e-tests

variables:
os: linux
arch: arm64v8
artifactName: iotedged-ubuntu24.04-aarch64
identityServiceArtifactName: packages_ubuntu-24.04_aarch64
identityServicePackageFilter: aziot-identity-service_*_arm64.deb
sas_uri: $[ dependencies.Token.outputs['generate.sas_uri'] ]

timeoutInMinutes: 90

steps:
- template: templates/e2e-clean-directory.yaml
- template: templates/e2e-setup.yaml
- template: templates/e2e-clear-docker-cached-images.yaml
- template: templates/e2e-run.yaml
parameters:
sas_uri: $(sas_uri)

################################################################################
- job: snaps
################################################################################
Expand Down
4 changes: 2 additions & 2 deletions builds/e2e/nested-e2e.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ variables:
Codeql.Enabled: false
DisableDockerDetector: true
# A 'minimal' pipeline only runs one end-to-end test (TempSensor). This is useful for platforms or
# environments that are very similar to other platforms/environments in our matrix, Ubuntu 20.04
# with the 'docker-ce' package vs. Ubuntu 20.04 with the 'iotedge-moby' package vs. the same
# environments that are very similar to other platforms/environments in our matrix, e.g., Ubuntu
# 20.04 with the 'docker-ce' package vs. Ubuntu 20.04 with the 'iotedge-moby' package vs. the same
# variations in Ubuntu 22.04. In these instances the platforms/environments are so similar that we
# don't reasonably expect to encounter differences--if we do, it would likely manifest during
# installation, or in running a very basic test. We don't need to repeat the entire test suite.
Expand Down
12 changes: 12 additions & 0 deletions builds/misc/templates/build-packages.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,18 @@ stages:
arch: aarch64
os: ubuntu22.04
target.iotedged: edgelet/target/aarch64-unknown-linux-gnu/release
Ubuntu2404-amd64:
arch: amd64
os: ubuntu24.04
target.iotedged: edgelet/target/release
Ubuntu2404-arm32v7:
arch: arm32v7
os: ubuntu24.04
target.iotedged: edgelet/target/armv7-unknown-linux-gnueabihf/release
Ubuntu2404-aarch64:
arch: aarch64
os: ubuntu24.04
target.iotedged: edgelet/target/aarch64-unknown-linux-gnu/release
steps:
- bash: |
BASE_VERSION=`cat $BUILD_SOURCESDIRECTORY/edgelet/version.txt`
Expand Down
52 changes: 26 additions & 26 deletions edgelet/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit 2807232

Please sign in to comment.