Files
ioBroker.docker/.github/workflows/build-debian12-dev_sep.yml
dependabot[bot] f84bb008df Bump docker/build-push-action from 6.6.1 to 6.17.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.6.1 to 6.17.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v6.6.1...v6.17.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-version: 6.17.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-24 15:38:59 +00:00

447 lines
19 KiB
YAML

# Github action to build Debian12 image (Tag: dev)
name: Build Debian 12 Image (dev)
on:
workflow_dispatch:
jobs:
create-build-number:
name: Create build number
runs-on: ubuntu-latest
outputs:
build_number: ${{ steps.generate-build-number.outputs.build_number }}
steps:
- name: Checkout repo
uses: actions/checkout@v4.1.7
with:
repository: 'buanet/ioBroker.docker'
token: ${{ secrets.ACTIONS_PAT }}
- name: Generate build number
id: generate-build-number
run: |
BUILD="$(date +"%Y%m%d.%H%M%S")"
echo "build_number=$BUILD" >> $GITHUB_OUTPUT
echo "[LOG] Buildnumber: $BUILD"
build-dev-armv7-recommended-node:
name: Build dev armv7 image with recommended node version
needs: [create-build-number]
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4.1.7
with:
repository: 'buanet/ioBroker.docker'
- name: Set job variables
run: |
VERSION="$(cat .VERSION)"
BUILD="${{ needs.create-build-number.outputs.build_number }}"
# Log output and export as Github environment variable
echo "[LOG] Nodejs Version: ${{ vars.RECOMMENDED_NODE_VERSION }}"
echo "[LOG] Image Version: $VERSION"
echo "version=$VERSION" >> $GITHUB_ENV
echo "[LOG] Buildnumber: $BUILD"
echo "build=$BUILD" >> $GITHUB_ENV
# Set values in iobroker_startup.sh
sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${BUILD}/$BUILD/" ./debian12/scripts/iobroker_startup.sh > ./debian12/scripts/iobroker_startup.tmp
mv -f ./debian12/scripts/iobroker_startup.tmp ./debian12/scripts/iobroker_startup.sh
# Set values in Dockerfile
sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${DATI}/$BUILD/" -e "s/\${BUILD}/$BUILD/" -e "s/\${NODE}/${{ vars.RECOMMENDED_NODE_VERSION }}/" ./debian12/Dockerfile > ./debian12/Dockerfile.tmp
mv -f ./debian12/Dockerfile.tmp ./debian12/Dockerfile
- name: Set up QEMU
uses: docker/setup-qemu-action@v3.2.0
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v3.6.1
- name: Login to DockerHub (buanet)
uses: docker/login-action@v3.3.0
with:
username: ${{ secrets.DOCKER_USER }}
password: ${{ secrets.DOCKER_PASS }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v3.3.0
with:
registry: ghcr.io
username: ${{ secrets.PACKAGES_USER }}
password: ${{ secrets.PACKAGES_PASS }}
- name: Build and push Docker image
uses: docker/build-push-action@v6.17.0
with:
context: ./debian12
file: ./debian12/Dockerfile
push: true
platforms: linux/arm/v7
tags: |
buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7-dev,
ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7-dev,
build-dev-arm64v8-recommended-node:
name: Build dev armv64v8 image with recommended node version
needs: [create-build-number]
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4.1.7
with:
repository: 'buanet/ioBroker.docker'
- name: Set job variables
run: |
VERSION="$(cat .VERSION)"
BUILD="${{ needs.create-build-number.outputs.build_number }}"
# Log output and export as Github environment variable
echo "[LOG] Nodejs Version: ${{ vars.RECOMMENDED_NODE_VERSION }}"
echo "[LOG] Image Version: $VERSION"
echo "version=$VERSION" >> $GITHUB_ENV
echo "[LOG] Buildnumber: $BUILD"
echo "build=$BUILD" >> $GITHUB_ENV
# Set values in iobroker_startup.sh
sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${BUILD}/$BUILD/" ./debian12/scripts/iobroker_startup.sh > ./debian12/scripts/iobroker_startup.tmp
mv -f ./debian12/scripts/iobroker_startup.tmp ./debian12/scripts/iobroker_startup.sh
# Set values in Dockerfile
sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${DATI}/$BUILD/" -e "s/\${BUILD}/$BUILD/" -e "s/\${NODE}/${{ vars.RECOMMENDED_NODE_VERSION }}/" ./debian12/Dockerfile > ./debian12/Dockerfile.tmp
mv -f ./debian12/Dockerfile.tmp ./debian12/Dockerfile
- name: Set up QEMU
uses: docker/setup-qemu-action@v3.2.0
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v3.6.1
- name: Login to DockerHub (buanet)
uses: docker/login-action@v3.3.0
with:
username: ${{ secrets.DOCKER_USER }}
password: ${{ secrets.DOCKER_PASS }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v3.3.0
with:
registry: ghcr.io
username: ${{ secrets.PACKAGES_USER }}
password: ${{ secrets.PACKAGES_PASS }}
- name: Build and push Docker image
uses: docker/build-push-action@v6.17.0
with:
context: ./debian12
file: ./debian12/Dockerfile
push: true
platforms: linux/arm64/v8
tags: |
buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8-dev,
ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8-dev,
build-dev-amd64-recommended-node:
name: Build dev amd64 image with recommended node version
needs: [create-build-number]
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4.1.7
with:
repository: 'buanet/ioBroker.docker'
- name: Set job variables
run: |
VERSION="$(cat .VERSION)"
BUILD="${{ needs.create-build-number.outputs.build_number }}"
# Log output and export as Github environment variable
echo "[LOG] Nodejs Version: ${{ vars.RECOMMENDED_NODE_VERSION }}"
echo "[LOG] Image Version: $VERSION"
echo "version=$VERSION" >> $GITHUB_ENV
echo "[LOG] Buildnumber: $BUILD"
echo "build=$BUILD" >> $GITHUB_ENV
# Set values in iobroker_startup.sh
sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${BUILD}/$BUILD/" ./debian12/scripts/iobroker_startup.sh > ./debian12/scripts/iobroker_startup.tmp
mv -f ./debian12/scripts/iobroker_startup.tmp ./debian12/scripts/iobroker_startup.sh
# Set values in Dockerfile
sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${DATI}/$BUILD/" -e "s/\${BUILD}/$BUILD/" -e "s/\${NODE}/${{ vars.RECOMMENDED_NODE_VERSION }}/" ./debian12/Dockerfile > ./debian12/Dockerfile.tmp
mv -f ./debian12/Dockerfile.tmp ./debian12/Dockerfile
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v3.6.1
- name: Login to DockerHub (buanet)
uses: docker/login-action@v3.3.0
with:
username: ${{ secrets.DOCKER_USER }}
password: ${{ secrets.DOCKER_PASS }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v3.3.0
with:
registry: ghcr.io
username: ${{ secrets.PACKAGES_USER }}
password: ${{ secrets.PACKAGES_PASS }}
- name: Build and push Docker image
uses: docker/build-push-action@v6.17.0
with:
context: ./debian12
file: ./debian12/Dockerfile
push: true
platforms: linux/amd64
tags: |
buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64-dev,
ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64-dev,
create-multiarch-image-with-recommended-node:
name: Create multiarch image with recommended node version
runs-on: ubuntu-latest
needs: [build-dev-armv7-recommended-node, build-dev-arm64v8-recommended-node, build-dev-amd64-recommended-node]
steps:
- name: Checkout repo
uses: actions/checkout@v4.1.7
with:
repository: 'buanet/ioBroker.docker'
- name: Set job variables
run: |
VERSION="$(cat .VERSION)"
BUILD="${{ needs.create-build-number.outputs.build_number }}"
# Log output and export as Github environment variable
echo "[LOG] Nodejs Version: ${{ vars.RECOMMENDED_NODE_VERSION }}"
echo "[LOG] Image Version: $VERSION"
echo "version=$VERSION" >> $GITHUB_ENV
echo "[LOG] Buildnumber: $BUILD"
echo "build=$BUILD" >> $GITHUB_ENV
- name: Login to DockerHub (buanet)
uses: docker/login-action@v3.3.0
with:
username: ${{ secrets.DOCKER_USER }}
password: ${{ secrets.DOCKER_PASS }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v3.3.0
with:
registry: ghcr.io
username: ${{ secrets.PACKAGES_USER }}
password: ${{ secrets.PACKAGES_PASS }}
- name: Create and push multi-platform image
run: |
docker buildx imagetools create -t buanet/iobroker:dev buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7-dev buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8-dev buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64-dev
docker buildx imagetools create -t ghcr.io/buanet/iobroker:dev ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7-dev ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8-dev ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64-dev
### experimental node version
build-dev-armv7-experimental-node:
name: Build dev armv7 image with experimental node version
needs: [create-build-number]
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4.1.7
with:
repository: 'buanet/ioBroker.docker'
- name: Set job variables
run: |
VERSION="$(cat .VERSION)"
BUILD="${{ needs.create-build-number.outputs.build_number }}"
# Log output and export as Github environment variable
echo "[LOG] Nodejs Version: ${{ vars.EXPERIMENTAL_NODE_VERSION }}"
echo "[LOG] Image Version: $VERSION"
echo "version=$VERSION" >> $GITHUB_ENV
echo "[LOG] Buildnumber: $BUILD"
echo "build=$BUILD" >> $GITHUB_ENV
# Set values in iobroker_startup.sh
sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${BUILD}/$BUILD/" ./debian12/scripts/iobroker_startup.sh > ./debian12/scripts/iobroker_startup.tmp
mv -f ./debian12/scripts/iobroker_startup.tmp ./debian12/scripts/iobroker_startup.sh
# Set values in Dockerfile
sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${DATI}/$BUILD/" -e "s/\${BUILD}/$BUILD/" -e "s/\${NODE}/${{ vars.EXPERIMENTAL_NODE_VERSION }}/" ./debian12/Dockerfile > ./debian12/Dockerfile.tmp
mv -f ./debian12/Dockerfile.tmp ./debian12/Dockerfile
- name: Set up QEMU
uses: docker/setup-qemu-action@v3.2.0
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v3.6.1
- name: Login to DockerHub (buanet)
uses: docker/login-action@v3.3.0
with:
username: ${{ secrets.DOCKER_USER }}
password: ${{ secrets.DOCKER_PASS }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v3.3.0
with:
registry: ghcr.io
username: ${{ secrets.PACKAGES_USER }}
password: ${{ secrets.PACKAGES_PASS }}
- name: Build and push Docker image
uses: docker/build-push-action@v6.17.0
with:
context: ./debian12
file: ./debian12/Dockerfile
push: true
platforms: linux/arm/v7
tags: |
buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7-dev-node${{ vars.EXPERIMENTAL_NODE_VERSION }},
ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7-dev-node${{ vars.EXPERIMENTAL_NODE_VERSION }},
build-dev-arm64v8-experimental-node:
name: Build dev armv64v8 image with experimental node version
needs: [create-build-number]
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4.1.7
with:
repository: 'buanet/ioBroker.docker'
- name: Set job variables
run: |
VERSION="$(cat .VERSION)"
BUILD="${{ needs.create-build-number.outputs.build_number }}"
# Log output and export as Github environment variable
echo "[LOG] Nodejs Version: ${{ vars.EXPERIMENTAL_NODE_VERSION }}"
echo "[LOG] Image Version: $VERSION"
echo "version=$VERSION" >> $GITHUB_ENV
echo "[LOG] Buildnumber: $BUILD"
echo "build=$BUILD" >> $GITHUB_ENV
# Set values in iobroker_startup.sh
sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${BUILD}/$BUILD/" ./debian12/scripts/iobroker_startup.sh > ./debian12/scripts/iobroker_startup.tmp
mv -f ./debian12/scripts/iobroker_startup.tmp ./debian12/scripts/iobroker_startup.sh
# Set values in Dockerfile
sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${DATI}/$BUILD/" -e "s/\${BUILD}/$BUILD/" -e "s/\${NODE}/${{ vars.EXPERIMENTAL_NODE_VERSION }}/" ./debian12/Dockerfile > ./debian12/Dockerfile.tmp
mv -f ./debian12/Dockerfile.tmp ./debian12/Dockerfile
- name: Set up QEMU
uses: docker/setup-qemu-action@v3.2.0
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v3.6.1
- name: Login to DockerHub (buanet)
uses: docker/login-action@v3.3.0
with:
username: ${{ secrets.DOCKER_USER }}
password: ${{ secrets.DOCKER_PASS }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v3.3.0
with:
registry: ghcr.io
username: ${{ secrets.PACKAGES_USER }}
password: ${{ secrets.PACKAGES_PASS }}
- name: Build and push Docker image
uses: docker/build-push-action@v6.17.0
with:
context: ./debian12
file: ./debian12/Dockerfile
push: true
platforms: linux/arm64/v8
tags: |
buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8-dev-node${{ vars.EXPERIMENTAL_NODE_VERSION }},
ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8-dev-node${{ vars.EXPERIMENTAL_NODE_VERSION }},
build-dev-amd64-experimental-node:
name: Build dev amd64 image with experimental node version
needs: [create-build-number]
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4.1.7
with:
repository: 'buanet/ioBroker.docker'
- name: Set job variables
run: |
VERSION="$(cat .VERSION)"
BUILD="${{ needs.create-build-number.outputs.build_number }}"
# Log output and export as Github environment variable
echo "[LOG] Nodejs Version: ${{ vars.EXPERIMENTAL_NODE_VERSION }}"
echo "[LOG] Image Version: $VERSION"
echo "version=$VERSION" >> $GITHUB_ENV
echo "[LOG] Buildnumber: $BUILD"
echo "build=$BUILD" >> $GITHUB_ENV
# Set values in iobroker_startup.sh
sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${BUILD}/$BUILD/" ./debian12/scripts/iobroker_startup.sh > ./debian12/scripts/iobroker_startup.tmp
mv -f ./debian12/scripts/iobroker_startup.tmp ./debian12/scripts/iobroker_startup.sh
# Set values in Dockerfile
sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${DATI}/$BUILD/" -e "s/\${BUILD}/$BUILD/" -e "s/\${NODE}/${{ vars.EXPERIMENTAL_NODE_VERSION }}/" ./debian12/Dockerfile > ./debian12/Dockerfile.tmp
mv -f ./debian12/Dockerfile.tmp ./debian12/Dockerfile
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v3.6.1
- name: Login to DockerHub (buanet)
uses: docker/login-action@v3.3.0
with:
username: ${{ secrets.DOCKER_USER }}
password: ${{ secrets.DOCKER_PASS }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v3.3.0
with:
registry: ghcr.io
username: ${{ secrets.PACKAGES_USER }}
password: ${{ secrets.PACKAGES_PASS }}
- name: Build and push Docker image
uses: docker/build-push-action@v6.17.0
with:
context: ./debian12
file: ./debian12/Dockerfile
push: true
platforms: linux/amd64
tags: |
buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64-dev-node${{ vars.EXPERIMENTAL_NODE_VERSION }},
ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64-dev-node${{ vars.EXPERIMENTAL_NODE_VERSION }},
create-multiarch-image-with-experimental-node:
name: Create multiarch image with experimental node version
runs-on: ubuntu-latest
needs: [build-dev-armv7-experimental-node, build-dev-arm64v8-experimental-node, build-dev-amd64-experimental-node]
steps:
- name: Checkout repo
uses: actions/checkout@v4.1.7
with:
repository: 'buanet/ioBroker.docker'
- name: Set job variables
run: |
VERSION="$(cat .VERSION)"
BUILD="${{ needs.create-build-number.outputs.build_number }}"
# Log output and export as Github environment variable
echo "[LOG] Nodejs Version: ${{ vars.EXPERIMENTAL_NODE_VERSION }}"
echo "[LOG] Image Version: $VERSION"
echo "version=$VERSION" >> $GITHUB_ENV
echo "[LOG] Buildnumber: $BUILD"
echo "build=$BUILD" >> $GITHUB_ENV
- name: Login to DockerHub (buanet)
uses: docker/login-action@v3.3.0
with:
username: ${{ secrets.DOCKER_USER }}
password: ${{ secrets.DOCKER_PASS }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v3.3.0
with:
registry: ghcr.io
username: ${{ secrets.PACKAGES_USER }}
password: ${{ secrets.PACKAGES_PASS }}
- name: Create and push multi-platform image
run: |
docker buildx imagetools create -t buanet/iobroker:dev-node${{ vars.EXPERIMENTAL_NODE_VERSION }} buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7-dev-node${{ vars.EXPERIMENTAL_NODE_VERSION }} buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8-dev-node${{ vars.EXPERIMENTAL_NODE_VERSION }} buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64-dev-node${{ vars.EXPERIMENTAL_NODE_VERSION }}
docker buildx imagetools create -t ghcr.io/buanet/iobroker:dev-node${{ vars.EXPERIMENTAL_NODE_VERSION }} ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7-dev-node${{ vars.EXPERIMENTAL_NODE_VERSION }} ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8-dev-node${{ vars.EXPERIMENTAL_NODE_VERSION }} ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64-dev-node${{ vars.EXPERIMENTAL_NODE_VERSION }}