Compare commits
12 Commits
15c1cac704
...
ff7ef761d0
Author | SHA1 | Date | |
---|---|---|---|
|
ff7ef761d0 | ||
|
76376c9148 | ||
|
b4cab4d5a9 | ||
|
9b1bbf4a06 | ||
|
aedbb92f63 | ||
|
2eba1525f4 | ||
|
0712f5046d | ||
|
2f5f1ed561 | ||
|
0793ce8183 | ||
|
64526ce2de | ||
|
a3c3bca1c9 | ||
|
2f5fa1a7e9 |
215
.github/workflows/containers.yml
vendored
215
.github/workflows/containers.yml
vendored
@ -1,8 +1,8 @@
|
||||
name: Containers
|
||||
|
||||
env:
|
||||
zephyr-version: 3.0.0
|
||||
zephyr-sdk-version: 0.13.2
|
||||
zephyr-version: 3.2.0
|
||||
zephyr-sdk-version: 0.15.2
|
||||
sha-abbrev-length: 12
|
||||
no-cache: ${{ secrets.NO_CACHE != null || github.event_name == 'workflow_dispatch' || github.event_name == 'schedule' }}
|
||||
ignore-actions-cache: ${{ secrets.IGNORE_ACTIONS_CACHE != null }}
|
||||
@ -32,22 +32,19 @@ jobs:
|
||||
steps:
|
||||
- name: Timestamp
|
||||
id: timestamp
|
||||
run: echo ::set-output name=timestamp::$(date +%Y%m%d%H%M%S)
|
||||
run: echo "timestamp=$(date +%Y%m%d%H%M%S)" >> $GITHUB_OUTPUT
|
||||
architectures:
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
json: ${{ steps.import.outputs.json }}
|
||||
steps:
|
||||
- name: Install yaml2json
|
||||
run: python3 -m pip install remarshal
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
uses: actions/checkout@v3
|
||||
- name: Import from architectures.yml
|
||||
id: import
|
||||
shell: python
|
||||
run: |
|
||||
import yaml, json
|
||||
with open('architectures.yml', 'r') as file:
|
||||
architectures = yaml.safe_load(file)
|
||||
print('::set-output name=json::' + json.dumps(architectures))
|
||||
run: echo "json=$(yaml2json architectures.yml | jq -c .)" >> $GITHUB_OUTPUT
|
||||
tags:
|
||||
needs:
|
||||
- timestamp
|
||||
@ -81,12 +78,12 @@ jobs:
|
||||
MAJOR_MINOR=${MAJOR}.${MINOR}
|
||||
MAJOR_MINOR_BRANCH=${MAJOR_MINOR}-branch
|
||||
|
||||
echo ::set-output name=branch::${BRANCH}
|
||||
echo ::set-output name=base::${BASE}
|
||||
echo ::set-output name=candidate::${CANDIDATE}
|
||||
echo ::set-output name=versions::${VERSIONS}
|
||||
echo ::set-output name=major-minor::${MAJOR_MINOR}
|
||||
echo ::set-output name=major-minor-branch::${MAJOR_MINOR_BRANCH}
|
||||
echo "branch=${BRANCH}" >> $GITHUB_OUTPUT
|
||||
echo "base=${BASE}" >> $GITHUB_OUTPUT
|
||||
echo "candidate=${CANDIDATE}" >> $GITHUB_OUTPUT
|
||||
echo "versions=${VERSIONS}" >> $GITHUB_OUTPUT
|
||||
echo "major-minor=${MAJOR_MINOR}" >> $GITHUB_OUTPUT
|
||||
echo "major-minor-branch=${MAJOR_MINOR_BRANCH}" >> $GITHUB_OUTPUT
|
||||
dev-generic:
|
||||
needs:
|
||||
- timestamp
|
||||
@ -97,14 +94,14 @@ jobs:
|
||||
- name: Login to Docker Hub
|
||||
id: docker-hub-login
|
||||
if: ${{ env.docker-hub-credentials == 'true' }}
|
||||
uses: docker/login-action@v1
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_HUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_HUB_TOKEN }}
|
||||
- name: Login to GitHub Container Registry
|
||||
id: ghcr-login
|
||||
if: ${{ env.ghcr-credentials == 'true' }}
|
||||
uses: docker/login-action@v1
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ secrets.GHCR_USERNAME }}
|
||||
@ -119,18 +116,18 @@ jobs:
|
||||
BASE: ${{ needs.tags.outputs.base }}
|
||||
MAJOR_MINOR_BRANCH: ${{ needs.tags.outputs.major-minor-branch }}
|
||||
run: |
|
||||
echo ::set-output name=local::/tmp/.buildx/dev-generic
|
||||
echo ::set-output name=local-new::/tmp/.buildx/dev-generic-new
|
||||
echo ::set-output name=branch::docker.io/${NS}/${REPOSITORY}:${BRANCH}
|
||||
echo "local=/tmp/.buildx/dev-generic" >> $GITHUB_OUTPUT
|
||||
echo "local-new=/tmp/.buildx/dev-generic-new" >> $GITHUB_OUTPUT
|
||||
echo "branch=docker.io/${NS}/${REPOSITORY}:${BRANCH}" >> $GITHUB_OUTPUT
|
||||
if [ ! -z "$BASE" ]; then
|
||||
echo ::set-output name=base::docker.io/${NS}/${REPOSITORY}:${BASE}
|
||||
echo "base=docker.io/${NS}/${REPOSITORY}:${BASE}" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
echo ::set-output name=major-minor-branch::docker.io/${NS}/${REPOSITORY}:${MAJOR_MINOR_BRANCH}
|
||||
echo ::set-output name=branch-upstream::docker.io/${NSU}/${REPOSITORY}:${BRANCH}
|
||||
echo ::set-output name=major-minor-branch-upstream::docker.io/${NSU}/${REPOSITORY}:${MAJOR_MINOR_BRANCH}
|
||||
echo "major-minor-branch=docker.io/${NS}/${REPOSITORY}:${MAJOR_MINOR_BRANCH}" >> $GITHUB_OUTPUT
|
||||
echo "branch-upstream=docker.io/${NSU}/${REPOSITORY}:${BRANCH}" >> $GITHUB_OUTPUT
|
||||
echo "major-minor-branch-upstream=docker.io/${NSU}/${REPOSITORY}:${MAJOR_MINOR_BRANCH}" >> $GITHUB_OUTPUT
|
||||
- name: Set up cache
|
||||
id: cache
|
||||
uses: actions/cache@v2
|
||||
uses: actions/cache@v3
|
||||
env:
|
||||
cache-name: dev-generic
|
||||
with:
|
||||
@ -139,11 +136,11 @@ jobs:
|
||||
restore-keys: |
|
||||
${{ runner.os }}/${{ env.cache-name }}/${{ github.run_id }}
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v1
|
||||
uses: docker/setup-qemu-action@v2
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v1
|
||||
uses: docker/setup-buildx-action@v2
|
||||
- name: Build to local cache
|
||||
uses: docker/build-push-action@v2
|
||||
uses: docker/build-push-action@v3
|
||||
with:
|
||||
target: dev-generic
|
||||
platforms: linux/amd64,linux/arm64
|
||||
@ -160,7 +157,7 @@ jobs:
|
||||
cache-to: type=local,dest=${{ steps.paths.outputs.local-new }},mode=max
|
||||
- name: Push to registry cache
|
||||
if: ${{ env.docker-hub-credentials == 'true' }}
|
||||
uses: docker/build-push-action@v2
|
||||
uses: docker/build-push-action@v3
|
||||
with:
|
||||
target: dev-generic
|
||||
platforms: linux/amd64,linux/arm64
|
||||
@ -203,14 +200,14 @@ jobs:
|
||||
- name: Login to Docker Hub
|
||||
id: docker-hub-login
|
||||
if: ${{ env.docker-hub-credentials == 'true' }}
|
||||
uses: docker/login-action@v1
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_HUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_HUB_TOKEN }}
|
||||
- name: Login to GitHub Container Registry
|
||||
id: ghcr-login
|
||||
if: ${{ env.ghcr-credentials == 'true' }}
|
||||
uses: docker/login-action@v1
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ secrets.GHCR_USERNAME }}
|
||||
@ -219,8 +216,8 @@ jobs:
|
||||
id: repositories
|
||||
shell: bash
|
||||
run: |
|
||||
echo ::set-output name=build::zmk-build-${{ matrix.architecture }}
|
||||
echo ::set-output name=dev::zmk-dev-${{ matrix.architecture }}
|
||||
echo "build=zmk-build-${{ matrix.architecture }}" >> $GITHUB_OUTPUT
|
||||
echo "dev=zmk-dev-${{ matrix.architecture }}" >> $GITHUB_OUTPUT
|
||||
- name: Define paths
|
||||
id: paths
|
||||
shell: bash
|
||||
@ -234,23 +231,23 @@ jobs:
|
||||
BASE: ${{ needs.tags.outputs.base }}
|
||||
MAJOR_MINOR_BRANCH: ${{ needs.tags.outputs.major-minor-branch }}
|
||||
run: |
|
||||
echo ::set-output name=dev-generic::/tmp/.buildx/dev-generic
|
||||
echo ::set-output name=build-candidate::docker.io/${NS}/${BUILD}:${CANDIDATE}
|
||||
echo ::set-output name=build-branch::docker.io/${NS}/${BUILD}:${BRANCH}
|
||||
echo "dev-generic=/tmp/.buildx/dev-generic" >> $GITHUB_OUTPUT
|
||||
echo "build-candidate=docker.io/${NS}/${BUILD}:${CANDIDATE}" >> $GITHUB_OUTPUT
|
||||
echo "build-branch=docker.io/${NS}/${BUILD}:${BRANCH}" >> $GITHUB_OUTPUT
|
||||
if [ ! -z "$BASE" ]; then
|
||||
echo ::set-output name=build-base::docker.io/${NS}/${BUILD}:${BASE}
|
||||
echo "build-base=docker.io/${NS}/${BUILD}:${BASE}" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
echo ::set-output name=build-major-minor-branch::docker.io/${NS}/${BUILD}:${MAJOR_MINOR_BRANCH}
|
||||
echo ::set-output name=build-branch-upstream::docker.io/${NSU}/${BUILD}:${BRANCH}
|
||||
echo ::set-output name=build-major-minor-branch-upstream::docker.io/${NSU}/${BUILD}:${MAJOR_MINOR_BRANCH}
|
||||
echo ::set-output name=dev-candidate::docker.io/${NS}/${DEV}:${CANDIDATE}
|
||||
echo ::set-output name=dev-branch::docker.io/${NS}/${DEV}:${BRANCH}
|
||||
echo "build-major-minor-branch=docker.io/${NS}/${BUILD}:${MAJOR_MINOR_BRANCH}" >> $GITHUB_OUTPUT
|
||||
echo "build-branch-upstream=docker.io/${NSU}/${BUILD}:${BRANCH}" >> $GITHUB_OUTPUT
|
||||
echo "build-major-minor-branch-upstream=docker.io/${NSU}/${BUILD}:${MAJOR_MINOR_BRANCH}" >> $GITHUB_OUTPUT
|
||||
echo "dev-candidate=docker.io/${NS}/${DEV}:${CANDIDATE}" >> $GITHUB_OUTPUT
|
||||
echo "dev-branch=docker.io/${NS}/${DEV}:${BRANCH}" >> $GITHUB_OUTPUT
|
||||
if [ ! -z "$BASE" ]; then
|
||||
echo ::set-output name=dev-base::docker.io/${NS}/${DEV}:${BASE}
|
||||
echo "dev-base=docker.io/${NS}/${DEV}:${BASE}" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
echo ::set-output name=dev-major-minor-branch::docker.io/${NS}/${DEV}:${MAJOR_MINOR_BRANCH}
|
||||
echo ::set-output name=dev-branch-upstream::docker.io/${NSU}/${DEV}:${BRANCH}
|
||||
echo ::set-output name=dev-major-minor-branch-upstream::docker.io/${NSU}/${DEV}:${MAJOR_MINOR_BRANCH}
|
||||
echo "dev-major-minor-branch=docker.io/${NS}/${DEV}:${MAJOR_MINOR_BRANCH}" >> $GITHUB_OUTPUT
|
||||
echo "dev-branch-upstream=docker.io/${NSU}/${DEV}:${BRANCH}" >> $GITHUB_OUTPUT
|
||||
echo "dev-major-minor-branch-upstream=docker.io/${NSU}/${DEV}:${MAJOR_MINOR_BRANCH}" >> $GITHUB_OUTPUT
|
||||
- name: Define build-args
|
||||
id: build-args
|
||||
shell: bash
|
||||
@ -260,12 +257,11 @@ jobs:
|
||||
ARCHITECTURE=${{ matrix.architecture }}
|
||||
ZEPHYR_SDK_VERSION=${{ env.zephyr-sdk-version }}
|
||||
"
|
||||
# Escapes %, \n and \r
|
||||
# See: https://github.community/t/set-output-truncates-multiline-strings/16852
|
||||
LIST="${LIST//'%'/'%25'}"
|
||||
LIST="${LIST//$'\n'/'%0A'}"
|
||||
LIST="${LIST//$'\r'/'%0D'}"
|
||||
echo ::set-output name=list::${LIST}
|
||||
|
||||
delimiter="$(openssl rand -hex 8)"
|
||||
echo "list<<${delimiter}" >> $GITHUB_OUTPUT
|
||||
echo "${LIST}" >> $GITHUB_OUTPUT
|
||||
echo "${delimiter}" >> $GITHUB_OUTPUT
|
||||
- name: Define labels
|
||||
id: labels
|
||||
shell: bash
|
||||
@ -274,26 +270,25 @@ jobs:
|
||||
org.opencontainers.image.source=${{ github.server_url }}/${{ github.repository }}
|
||||
org.opencontainers.image.revision=${{ github.sha }}
|
||||
"
|
||||
# Escapes %, \n and \r
|
||||
# See: https://github.community/t/set-output-truncates-multiline-strings/16852
|
||||
LIST="${LIST//'%'/'%25'}"
|
||||
LIST="${LIST//$'\n'/'%0A'}"
|
||||
LIST="${LIST//$'\r'/'%0D'}"
|
||||
echo ::set-output name=list::${LIST}
|
||||
delimiter="$(openssl rand -hex 8)"
|
||||
|
||||
echo "list<<${delimiter}" >> $GITHUB_OUTPUT
|
||||
echo "${LIST}" >> $GITHUB_OUTPUT
|
||||
echo "${delimiter}" >> $GITHUB_OUTPUT
|
||||
- name: Set up dev-generic cache
|
||||
id: dev-generic-cache
|
||||
uses: actions/cache@v2
|
||||
uses: actions/cache@v3
|
||||
env:
|
||||
cache-name: dev-generic
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.dev-generic }}
|
||||
key: ${{ runner.os }}/${{ env.cache-name }}/${{ github.run_id }}/${{ needs.timestamp.outputs.timestamp }}
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v1
|
||||
uses: docker/setup-qemu-action@v2
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v1
|
||||
uses: docker/setup-buildx-action@v2
|
||||
- name: Build and load 'build' candidate image
|
||||
uses: docker/build-push-action@v2
|
||||
uses: docker/build-push-action@v3
|
||||
with:
|
||||
target: build
|
||||
build-args: |
|
||||
@ -314,7 +309,7 @@ jobs:
|
||||
cache-to: type=inline
|
||||
load: true
|
||||
- name: Build and load 'dev' candidate image
|
||||
uses: docker/build-push-action@v2
|
||||
uses: docker/build-push-action@v3
|
||||
with:
|
||||
target: dev
|
||||
build-args: |
|
||||
@ -336,12 +331,12 @@ jobs:
|
||||
cache-to: type=inline
|
||||
load: true
|
||||
- name: Checkout ZMK
|
||||
uses: actions/checkout@v2
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
repository: ${{ env.zmk-repository }}
|
||||
ref: ${{ env.zmk-ref }}
|
||||
- name: Cache Zephyr modules
|
||||
uses: actions/cache@v2
|
||||
uses: actions/cache@v3
|
||||
env:
|
||||
cache-name: zephyr-modules
|
||||
with:
|
||||
@ -437,7 +432,7 @@ jobs:
|
||||
run: docker stop candidate
|
||||
- name: Build and push 'build' candidate image (x86_64 and arm64)
|
||||
if: ${{ steps.docker-hub-login.outcome == 'success' }}
|
||||
uses: docker/build-push-action@v2
|
||||
uses: docker/build-push-action@v3
|
||||
with:
|
||||
target: build
|
||||
platforms: linux/amd64,linux/arm64
|
||||
@ -460,7 +455,7 @@ jobs:
|
||||
push: true
|
||||
- name: Build and push 'dev' candidate image (x86_64 + arm64)
|
||||
if: ${{ steps.docker-hub-login.outcome == 'success' }}
|
||||
uses: docker/build-push-action@v2
|
||||
uses: docker/build-push-action@v3
|
||||
with:
|
||||
target: dev
|
||||
platforms: linux/amd64,linux/arm64
|
||||
@ -514,28 +509,28 @@ jobs:
|
||||
TAG=${GITHUB_REF#refs/tags/}
|
||||
PATTERN="^(.+?)-((([0-9]{4})(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01]))(([01]?[0-9]|2[0-3])([0-5][0-9])([0-5][0-9])))-(([0-9]+)\.([0-9]+)\.([0-9]+))-(([0-9]+)\.([0-9]+)\.([0-9]+))-([0-9a-fA-F]+)-([0-9]+)$"
|
||||
if [[ "${TAG}" =~ $PATTERN ]]; then
|
||||
echo ::set-output name=tag::${TAG}
|
||||
echo ::set-output name=branch::${BASH_REMATCH[1]}
|
||||
echo ::set-output name=datetime::${BASH_REMATCH[2]}
|
||||
echo ::set-output name=date::${BASH_REMATCH[3]}
|
||||
echo ::set-output name=year::${BASH_REMATCH[4]}
|
||||
echo ::set-output name=month::${BASH_REMATCH[5]}
|
||||
echo ::set-output name=day::${BASH_REMATCH[6]}
|
||||
echo ::set-output name=time::${BASH_REMATCH[7]}
|
||||
echo ::set-output name=hour::${BASH_REMATCH[8]}
|
||||
echo ::set-output name=minute::${BASH_REMATCH[9]}
|
||||
echo ::set-output name=second::${BASH_REMATCH[10]}
|
||||
echo ::set-output name=zephyr-version::${BASH_REMATCH[11]}
|
||||
echo ::set-output name=zephyr-version-major::${BASH_REMATCH[12]}
|
||||
echo ::set-output name=zephyr-version-minor::${BASH_REMATCH[13]}
|
||||
echo ::set-output name=zephyr-version-patch::${BASH_REMATCH[14]}
|
||||
echo ::set-output name=zephyr-sdk-version::${BASH_REMATCH[15]}
|
||||
echo ::set-output name=zephyr-sdk-version-major::${BASH_REMATCH[16]}
|
||||
echo ::set-output name=zephyr-sdk-version-minor::${BASH_REMATCH[17]}
|
||||
echo ::set-output name=zephyr-sdk-version-patch::${BASH_REMATCH[18]}
|
||||
echo "tag=${TAG}" >> $GITHUB_OUTPUT
|
||||
echo "branch=${BASH_REMATCH[1]}" >> $GITHUB_OUTPUT
|
||||
echo "datetime=${BASH_REMATCH[2]}" >> $GITHUB_OUTPUT
|
||||
echo "date=${BASH_REMATCH[3]}" >> $GITHUB_OUTPUT
|
||||
echo "year=${BASH_REMATCH[4]}" >> $GITHUB_OUTPUT
|
||||
echo "month=${BASH_REMATCH[5]}" >> $GITHUB_OUTPUT
|
||||
echo "day=${BASH_REMATCH[6]}" >> $GITHUB_OUTPUT
|
||||
echo "time=${BASH_REMATCH[7]}" >> $GITHUB_OUTPUT
|
||||
echo "hour=${BASH_REMATCH[8]}" >> $GITHUB_OUTPUT
|
||||
echo "minute=${BASH_REMATCH[9]}" >> $GITHUB_OUTPUT
|
||||
echo "second=${BASH_REMATCH[10]}" >> $GITHUB_OUTPUT
|
||||
echo "zephyr-version=${BASH_REMATCH[11]}" >> $GITHUB_OUTPUT
|
||||
echo "zephyr-version-major=${BASH_REMATCH[12]}" >> $GITHUB_OUTPUT
|
||||
echo "zephyr-version-minor=${BASH_REMATCH[13]}" >> $GITHUB_OUTPUT
|
||||
echo "zephyr-version-patch=${BASH_REMATCH[14]}" >> $GITHUB_OUTPUT
|
||||
echo "zephyr-sdk-version=${BASH_REMATCH[15]}" >> $GITHUB_OUTPUT
|
||||
echo "zephyr-sdk-version-major=${BASH_REMATCH[16]}" >> $GITHUB_OUTPUT
|
||||
echo "zephyr-sdk-version-minor=${BASH_REMATCH[17]}" >> $GITHUB_OUTPUT
|
||||
echo "zephyr-sdk-version-patch=${BASH_REMATCH[18]}" >> $GITHUB_OUTPUT
|
||||
SHA=${BASH_REMATCH[19]}
|
||||
echo ::set-output name=sha::${SHA}
|
||||
echo ::set-output name=run-id::${BASH_REMATCH[20]}
|
||||
echo "sha=${SHA}" >> $GITHUB_OUTPUT
|
||||
echo "run-id=${BASH_REMATCH[20]}" >> $GITHUB_OUTPUT
|
||||
|
||||
if [[ "${{ github.sha }}" != ${SHA}* ]]; then
|
||||
echo "Hashes do not match!"
|
||||
@ -560,16 +555,18 @@ jobs:
|
||||
- build
|
||||
- dev
|
||||
steps:
|
||||
- name: Install skopeo
|
||||
run: sudo apt-get install -y skopeo
|
||||
- name: Login to GitHub Container Registry
|
||||
id: ghcr-login
|
||||
uses: docker/login-action@v1
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ secrets.GHCR_USERNAME }}
|
||||
password: ${{ secrets.GHCR_TOKEN }}
|
||||
- name: Login to Docker Hub
|
||||
id: docker-hub-login
|
||||
uses: docker/login-action@v1
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_HUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_HUB_TOKEN }}
|
||||
@ -585,18 +582,11 @@ jobs:
|
||||
run: |
|
||||
REPOSITORY=zmk-${TARGET}-${ARCHITECTURE}
|
||||
|
||||
docker pull docker.io/${DHNS}/${REPOSITORY}:${CANDIDATE}
|
||||
docker tag docker.io/${DHNS}/${REPOSITORY}:${CANDIDATE} docker.io/${DHNS}/${REPOSITORY}:${VERSIONS}
|
||||
docker tag docker.io/${DHNS}/${REPOSITORY}:${CANDIDATE} docker.io/${DHNS}/${REPOSITORY}:${MAJOR_MINOR}
|
||||
docker tag docker.io/${DHNS}/${REPOSITORY}:${CANDIDATE} ghcr.io/${GHCRNS}/${REPOSITORY}:${CANDIDATE}
|
||||
docker tag docker.io/${DHNS}/${REPOSITORY}:${CANDIDATE} ghcr.io/${GHCRNS}/${REPOSITORY}:${VERSIONS}
|
||||
docker tag docker.io/${DHNS}/${REPOSITORY}:${CANDIDATE} ghcr.io/${GHCRNS}/${REPOSITORY}:${MAJOR_MINOR}
|
||||
docker push docker.io/${DHNS}/${REPOSITORY}:${CANDIDATE}
|
||||
docker push docker.io/${DHNS}/${REPOSITORY}:${VERSIONS}
|
||||
docker push docker.io/${DHNS}/${REPOSITORY}:${MAJOR_MINOR}
|
||||
docker push ghcr.io/${GHCRNS}/${REPOSITORY}:${CANDIDATE}
|
||||
docker push ghcr.io/${GHCRNS}/${REPOSITORY}:${VERSIONS}
|
||||
docker push ghcr.io/${GHCRNS}/${REPOSITORY}:${MAJOR_MINOR}
|
||||
skopeo copy --all docker://docker.io/${DHNS}/${REPOSITORY}:${CANDIDATE} docker://docker.io/${DHNS}/${REPOSITORY}:${VERSIONS}
|
||||
skopeo copy --all docker://docker.io/${DHNS}/${REPOSITORY}:${CANDIDATE} docker://docker.io/${DHNS}/${REPOSITORY}:${MAJOR_MINOR}
|
||||
skopeo copy --all docker://docker.io/${DHNS}/${REPOSITORY}:${CANDIDATE} docker://ghcr.io/${GHCRNS}/${REPOSITORY}:${CANDIDATE}
|
||||
skopeo copy --all docker://docker.io/${DHNS}/${REPOSITORY}:${CANDIDATE} docker://ghcr.io/${GHCRNS}/${REPOSITORY}:${VERSIONS}
|
||||
skopeo copy --all docker://docker.io/${DHNS}/${REPOSITORY}:${CANDIDATE} docker://ghcr.io/${GHCRNS}/${REPOSITORY}:${MAJOR_MINOR}
|
||||
git-tag:
|
||||
needs:
|
||||
- tags
|
||||
@ -604,7 +594,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
uses: actions/checkout@v3
|
||||
- name: Tag
|
||||
env:
|
||||
TAG: ${{ needs.tags.outputs.major-minor }}
|
||||
@ -624,8 +614,8 @@ jobs:
|
||||
TAG=${GITHUB_REF#refs/tags/}
|
||||
PATTERN="^(.+?)-stable$"
|
||||
if [[ "${TAG}" =~ $PATTERN ]]; then
|
||||
echo ::set-output name=tag::${TAG}
|
||||
echo ::set-output name=stable-tag::${BASH_REMATCH[1]}
|
||||
echo "tag=${TAG}" >> $GITHUB_OUTPUT
|
||||
echo "stable-tag=${BASH_REMATCH[1]}" >> $GITHUB_OUTPUT
|
||||
else
|
||||
echo "Tag not recognised, ignoring ..."
|
||||
fi
|
||||
@ -643,16 +633,18 @@ jobs:
|
||||
- build
|
||||
- dev
|
||||
steps:
|
||||
- name: Install skopeo
|
||||
run: sudo apt-get install -y skopeo
|
||||
- name: Login to GitHub Container Registry
|
||||
id: ghcr-login
|
||||
uses: docker/login-action@v1
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ secrets.GHCR_USERNAME }}
|
||||
password: ${{ secrets.GHCR_TOKEN }}
|
||||
- name: Login to Docker Hub
|
||||
id: docker-hub-login
|
||||
uses: docker/login-action@v1
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_HUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_HUB_TOKEN }}
|
||||
@ -666,10 +658,7 @@ jobs:
|
||||
run: |
|
||||
REPOSITORY=zmk-${TARGET}-${ARCHITECTURE}
|
||||
|
||||
docker pull docker.io/${DHNS}/${REPOSITORY}:${CANDIDATE}
|
||||
docker tag docker.io/${DHNS}/${REPOSITORY}:${CANDIDATE} docker.io/${DHNS}/${REPOSITORY}:stable
|
||||
|
||||
docker push docker.io/${DHNS}/${REPOSITORY}:stable
|
||||
skopeo copy --all docker://docker.io/${DHNS}/${REPOSITORY}:${CANDIDATE} docker://docker.io/${DHNS}/${REPOSITORY}:stable
|
||||
stable-git-tag:
|
||||
needs:
|
||||
- tags
|
||||
@ -677,7 +666,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
ref: ${{ needs.stable-release-trigger.outputs.stable-tag }}
|
||||
- name: Tag
|
||||
|
19
Dockerfile
19
Dockerfile
@ -23,6 +23,7 @@ RUN \
|
||||
python3-pip \
|
||||
python3-setuptools \
|
||||
python3-wheel \
|
||||
ssh \
|
||||
&& pip3 install \
|
||||
-r https://raw.githubusercontent.com/zephyrproject-rtos/zephyr/v${ZEPHYR_VERSION}/scripts/requirements-base.txt \
|
||||
&& pip3 install cmake \
|
||||
@ -45,7 +46,7 @@ RUN \
|
||||
apt-get -y update \
|
||||
&& apt-get -y install --no-install-recommends \
|
||||
curl \
|
||||
&& curl -sL https://deb.nodesource.com/setup_16.x | bash - \
|
||||
&& curl -sL https://deb.nodesource.com/setup_18.x | bash - \
|
||||
&& apt-get -y update \
|
||||
&& apt-get -y install --no-install-recommends \
|
||||
clang-format \
|
||||
@ -65,7 +66,6 @@ RUN \
|
||||
python3-tk \
|
||||
python3-wheel \
|
||||
socat \
|
||||
ssh \
|
||||
tio \
|
||||
wget \
|
||||
xz-utils \
|
||||
@ -88,14 +88,21 @@ ARG ARCHITECTURE
|
||||
ARG ZEPHYR_SDK_VERSION
|
||||
ARG ZEPHYR_SDK_INSTALL_DIR=/opt/zephyr-sdk-${ZEPHYR_SDK_VERSION}
|
||||
RUN \
|
||||
export sdk_file_name="zephyr-toolchain-${ARCHITECTURE}-${ZEPHYR_SDK_VERSION}-linux-$(uname -m)-setup.run" \
|
||||
export minimal_sdk_file_name="zephyr-sdk-${ZEPHYR_SDK_VERSION}_linux-$(uname -m)_minimal" \
|
||||
&& if [ "${ARCHITECTURE}" = "arm" ]; then arch_format="eabi"; else arch_format="elf"; fi \
|
||||
&& if [ "${ARCHITECTURE#xtensa}" = "${ARCHITECTURE}" ]; then arch_sep="-"; else arch_sep="_"; fi \
|
||||
&& apt-get -y update \
|
||||
&& apt-get -y install --no-install-recommends \
|
||||
wget \
|
||||
xz-utils \
|
||||
&& wget -q "https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v${ZEPHYR_SDK_VERSION}/${sdk_file_name}" \
|
||||
&& sh ${sdk_file_name} --quiet -- -d ${ZEPHYR_SDK_INSTALL_DIR} \
|
||||
&& rm ${sdk_file_name} \
|
||||
&& cd ${TMP} \
|
||||
&& wget -q "https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v${ZEPHYR_SDK_VERSION}/${minimal_sdk_file_name}.tar.gz" \
|
||||
&& tar xvfz ${minimal_sdk_file_name}.tar.gz \
|
||||
&& mv zephyr-sdk-${ZEPHYR_SDK_VERSION} /opt/ \
|
||||
&& rm ${minimal_sdk_file_name}.tar.gz \
|
||||
&& cd /opt/zephyr-sdk-${ZEPHYR_SDK_VERSION} \
|
||||
&& ./setup.sh -h -c -t ${ARCHITECTURE}${arch_sep}zephyr-${arch_format} \
|
||||
&& cd \
|
||||
&& apt-get remove -y --purge \
|
||||
wget \
|
||||
xz-utils \
|
||||
|
@ -1,15 +1,18 @@
|
||||
- arc
|
||||
- arc64
|
||||
- arm
|
||||
- arm64
|
||||
- aarch64
|
||||
- mips
|
||||
- nios2
|
||||
- riscv64
|
||||
- sparc
|
||||
- x86_64
|
||||
- xtensa_intel_apl_adsp
|
||||
- xtensa_intel_bdw_adsp
|
||||
- xtensa_intel_byt_adsp
|
||||
- xtensa_intel_s1000
|
||||
- xtensa_nxp_imx8m_adsp
|
||||
- xtensa_nxp_imx_adsp
|
||||
- xtensa_sample_controller
|
||||
- xtensa-espressif_esp32
|
||||
- xtensa-espressif_esp32s2
|
||||
- xtensa-intel_apl_adsp
|
||||
- xtensa-intel_bdw_adsp
|
||||
- xtensa-intel_byt_adsp
|
||||
- xtensa-intel_s1000
|
||||
- xtensa-nxp_imx8m_adsp
|
||||
- xtensa-nxp_imx_adsp
|
||||
- xtensa-sample_controller
|
Loading…
Reference in New Issue
Block a user