Files
openwrt-docker/.github/workflows/build.yml
T

98 lines
2.9 KiB
YAML

name: Build generic Docker image
on:
push:
branches:
- master
tags:
- 'v*'
jobs:
build:
name: Build
runs-on: ubuntu-latest
env:
OPENWRT_VERSION: 23.05.4
services:
registry:
image: registry:2
ports:
- 5000:5000
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set environment variables
run: |
echo "GIT_HASH=`git rev-parse --short HEAD`" >> $GITHUB_ENV
cat $GITHUB_ENV
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
driver-opts: network=host # Important to access local Docker registry
- name: Login into Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build Docker image
uses: docker/build-push-action@v5
with:
context: .
push: true
provenance: false
platforms: linux/arm64
build-args: OPENWRT_VERSION=${{ env.OPENWRT_VERSION }}
tags: |
albrechtloh/qemu-openwrt:latest
albrechtloh/qemu-openwrt:openwrt-${{ env.OPENWRT_VERSION }}-${{ env.GIT_HASH }}
localhost:5000/local/qemu-openwrt:latest
- name: Inspect
run: |
docker buildx imagetools inspect localhost:5000/local/qemu-openwrt:latest
- name: Login to Weidmueller wmucdev
uses: docker/login-action@v3
with:
registry: wmucdev.azurecr.io
username: ${{ secrets.WMUCDEV_USERNAME }}
password: ${{ secrets.WMUCDEV_TOKEN }}
- name: Create Weidmueller u-OS app
run: |
# Create app version
APP_VERSION=$OPENWRT_VERSION-$GIT_HASH
# Create manifest from template
mv u-os-app/manifest.json.template u-os-app/manifest.json
sed -i 's/APPVERSION_TO_INSERT/'"$APP_VERSION"'/g' u-os-app/manifest.json
# Run uc-aom-packager
docker run -it --rm --pull=always \
--mount src=u-os-app,target=/tmp/u-os-app-openwrt,type=bind wmucdev.azurecr.io/u-control/uc-aom-packager:0 \
uc-aom-packager push \
-m /tmp/u-os-app-openwrt \
-s /tmp/u-os-app-openwrt/source-credentials.json \
-t /tmp/u-os-app-openwrt/target-credentials.json \
-v
# Create SWU app file
docker run -it --rm --pull=always \
--mount src=u-os-app,target=/tmp/u-os-app-openwrt,type=bind wmucdev.azurecr.io/u-control/uc-aom-packager:0 \
uc-aom-packager \
export \
-t /tmp/u-os-app-openwrt/target-credentials.json \
--version $APP_VERSION \
-o /tmp/u-os-app-openwrt/u-os-app-openwrt_$APP_VERSION.swu \
-v