ci: Update to Zephyr SDK 0.16.3-rc1 #202
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
push: | |
branches: | |
- main | |
- v*-branch | |
tags: | |
- v* | |
pull_request: | |
branches: | |
- main | |
- v*-branch | |
permissions: | |
packages: write | |
concurrency: | |
group: ${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
build: | |
name: Build (${{ matrix.variant.platform }}) | |
runs-on: ${{ matrix.variant.builder }} | |
strategy: | |
fail-fast: true | |
matrix: | |
variant: | |
- platform: linux/amd64 | |
arch: amd64 | |
builder: zephyr-runner-linux-x64-xlarge | |
- platform: linux/arm64 | |
arch: arm64 | |
builder: zephyr-runner-linux-arm64-xlarge | |
services: | |
registry: | |
image: registry:2 | |
ports: | |
- 5000:5000 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Generate local metadata for base image | |
id: meta_ci_base | |
uses: docker/metadata-action@v4 | |
with: | |
images: | | |
localhost:5000/zephyrproject-rtos/ci-base | |
- name: Generate local metadata for CI image | |
id: meta_ci | |
uses: docker/metadata-action@v4 | |
with: | |
images: | | |
localhost:5000/zephyrproject-rtos/ci | |
- name: Generate local metadata for Developer image | |
id: meta_developer | |
uses: docker/metadata-action@v4 | |
with: | |
images: | | |
localhost:5000/zephyrproject-rtos/zephyr-build | |
- name: Generate push metadata for base image | |
if: ${{ github.event_name != 'pull_request' }} | |
id: meta_ci_base_push | |
uses: docker/metadata-action@v4 | |
with: | |
images: | | |
docker.io/zephyrprojectrtos/ci-base | |
ghcr.io/zephyrproject-rtos/ci-base | |
flavor: | | |
latest=false | |
suffix=-${{ matrix.variant.arch }} | |
tags: | | |
type=ref,event=branch | |
type=ref,event=tag | |
- name: Generate push metadata for CI image | |
if: ${{ github.event_name != 'pull_request' }} | |
id: meta_ci_push | |
uses: docker/metadata-action@v4 | |
with: | |
images: | | |
docker.io/zephyrprojectrtos/ci | |
ghcr.io/zephyrproject-rtos/ci | |
flavor: | | |
latest=false | |
suffix=-${{ matrix.variant.arch }} | |
tags: | | |
type=ref,event=branch | |
type=ref,event=tag | |
- name: Generate push metadata for Developer image | |
if: ${{ github.event_name != 'pull_request' }} | |
id: meta_developer_push | |
uses: docker/metadata-action@v4 | |
with: | |
images: | | |
docker.io/zephyrprojectrtos/zephyr-build | |
ghcr.io/zephyrproject-rtos/zephyr-build | |
flavor: | | |
latest=false | |
suffix=-${{ matrix.variant.arch }} | |
tags: | | |
type=ref,event=branch | |
type=ref,event=tag | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v2 | |
with: | |
driver-opts: network=host | |
- name: Build base docker image | |
uses: docker/build-push-action@v3 | |
with: | |
context: . | |
file: Dockerfile.base | |
platforms: ${{ matrix.variant.platform }} | |
push: true | |
tags: ${{ steps.meta_ci_base.outputs.tags }} | |
labels: ${{ steps.meta_ci_base.outputs.labels }} | |
- name: Build CI docker image | |
uses: docker/build-push-action@v3 | |
with: | |
context: . | |
file: Dockerfile.ci | |
platforms: ${{ matrix.variant.platform }} | |
push: true | |
tags: ${{ steps.meta_ci.outputs.tags }} | |
labels: ${{ steps.meta_ci.outputs.labels }} | |
build-args: | | |
BASE_IMAGE=localhost:5000/zephyrproject-rtos/ci-base:${{ steps.meta_ci_base.outputs.version }} | |
- name: Build Developer docker image | |
uses: docker/build-push-action@v3 | |
with: | |
context: . | |
file: Dockerfile.devel | |
platforms: ${{ matrix.variant.platform }} | |
push: true | |
tags: ${{ steps.meta_developer.outputs.tags }} | |
labels: ${{ steps.meta_developer.outputs.labels }} | |
build-args: | | |
BASE_IMAGE=localhost:5000/zephyrproject-rtos/ci:${{ steps.meta_ci.outputs.version }} | |
- name: Login to DockerHub | |
if: ${{ github.event_name != 'pull_request' }} | |
uses: docker/login-action@v2 | |
with: | |
registry: docker.io | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_TOKEN }} | |
- name: Login to GitHub Container Registry | |
if: ${{ github.event_name != 'pull_request' }} | |
uses: docker/login-action@v2 | |
with: | |
registry: ghcr.io | |
username: ${{ github.repository_owner }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Push base docker image | |
if: ${{ github.event_name != 'pull_request' }} | |
uses: stephanosio/[email protected] | |
with: | |
src: localhost:5000/zephyrproject-rtos/ci-base:${{ steps.meta_ci_base.outputs.version }} | |
dst: ${{ steps.meta_ci_base_push.outputs.tags }} | |
- name: Push CI docker image | |
if: ${{ github.event_name != 'pull_request' }} | |
uses: stephanosio/[email protected] | |
with: | |
src: localhost:5000/zephyrproject-rtos/ci:${{ steps.meta_ci.outputs.version }} | |
dst: ${{ steps.meta_ci_push.outputs.tags }} | |
- name: Push Developer docker image | |
if: ${{ github.event_name != 'pull_request' }} | |
uses: stephanosio/[email protected] | |
with: | |
src: localhost:5000/zephyrproject-rtos/zephyr-build:${{ steps.meta_developer.outputs.version }} | |
dst: ${{ steps.meta_developer_push.outputs.tags }} | |
merge: | |
name: Merge | |
runs-on: zephyr-runner-linux-x64-xlarge | |
needs: build | |
if: ${{ github.event_name != 'pull_request' }} | |
steps: | |
- name: Login to DockerHub | |
uses: docker/login-action@v2 | |
with: | |
registry: docker.io | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_TOKEN }} | |
- name: Login to GitHub Container Registry | |
uses: docker/login-action@v2 | |
with: | |
registry: ghcr.io | |
username: ${{ github.repository_owner }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Generate push metadata for base docker image | |
id: meta_ci_base_push | |
uses: docker/metadata-action@v4 | |
with: | |
images: | | |
docker.io/zephyrprojectrtos/ci-base | |
ghcr.io/zephyrproject-rtos/ci-base | |
flavor: | | |
latest=false | |
tags: | | |
type=ref,event=branch | |
type=ref,event=tag | |
type=raw,value=latest,enable={{is_default_branch}} | |
- name: Generate push metadata for CI image | |
id: meta_ci_push | |
uses: docker/metadata-action@v4 | |
with: | |
images: | | |
docker.io/zephyrprojectrtos/ci | |
ghcr.io/zephyrproject-rtos/ci | |
flavor: | | |
latest=false | |
tags: | | |
type=ref,event=branch | |
type=ref,event=tag | |
type=raw,value=latest,enable={{is_default_branch}} | |
- name: Generate push metadata for Developer image | |
id: meta_developer_push | |
uses: docker/metadata-action@v4 | |
with: | |
images: | | |
docker.io/zephyrprojectrtos/zephyr-build | |
ghcr.io/zephyrproject-rtos/zephyr-build | |
flavor: | | |
latest=false | |
tags: | | |
type=ref,event=branch | |
type=ref,event=tag | |
type=raw,value=latest,enable={{is_default_branch}} | |
- name: Create multi-architecture image | |
run: | | |
archs=(amd64 arm64) | |
ci_base_image="ghcr.io/zephyrproject-rtos/ci-base:${{ steps.meta_ci_base_push.outputs.version }}" | |
ci_image="ghcr.io/zephyrproject-rtos/ci:${{ steps.meta_ci_push.outputs.version }}" | |
developer_image="ghcr.io/zephyrproject-rtos/zephyr-build:${{ steps.meta_developer_push.outputs.version }}" | |
# Pull architecture-specific images | |
for arch in ${archs[@]}; do | |
docker pull ${ci_base_image}-${arch} | |
docker pull ${ci_image}-${arch} | |
docker pull ${developer_image}-${arch} | |
done | |
# Create multi-architecture image | |
for arch in ${archs[@]}; do | |
ci_base_image_amend_flags+="--amend ${ci_base_image}-${arch} " | |
ci_image_amend_flags+="--amend ${ci_image}-${arch} " | |
developer_image_amend_flags+="--amend ${developer_image}-${arch} " | |
done | |
docker manifest create ${ci_base_image} ${ci_base_image_amend_flags} | |
docker manifest create ${ci_image} ${ci_image_amend_flags} | |
docker manifest create ${developer_image} ${developer_image_amend_flags} | |
docker manifest push ${ci_base_image} | |
docker manifest push ${ci_image} | |
docker manifest push ${developer_image} | |
- name: Push base docker image | |
uses: stephanosio/[email protected] | |
with: | |
src: ghcr.io/zephyrproject-rtos/ci-base:${{ steps.meta_ci_base_push.outputs.version }} | |
dst: ${{ steps.meta_ci_base_push.outputs.tags }} | |
- name: Push CI docker image | |
uses: stephanosio/[email protected] | |
with: | |
src: ghcr.io/zephyrproject-rtos/ci:${{ steps.meta_ci_push.outputs.version }} | |
dst: ${{ steps.meta_ci_push.outputs.tags }} | |
- name: Push Developer docker image | |
uses: stephanosio/[email protected] | |
with: | |
src: ghcr.io/zephyrproject-rtos/zephyr-build:${{ steps.meta_developer_push.outputs.version }} | |
dst: ${{ steps.meta_developer_push.outputs.tags }} |