# 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@v5.0.0 with: repository: 'buanet/ioBroker.docker' - 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@v5.0.0 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_BETA }}" 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_BETA }}/" ./debian12/Dockerfile > ./debian12/Dockerfile.tmp mv -f ./debian12/Dockerfile.tmp ./debian12/Dockerfile - name: Set up QEMU uses: docker/setup-qemu-action@v3.6.0 - name: Set up Docker Buildx id: buildx uses: docker/setup-buildx-action@v3.11.1 - name: Login to DockerHub (buanet) uses: docker/login-action@v3.4.0 with: username: ${{ secrets.DOCKER_USER }} password: ${{ secrets.DOCKER_PASS }} - name: Login to GitHub Container Registry uses: docker/login-action@v3.4.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.18.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@v5.0.0 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_BETA }}" 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_BETA }}/" ./debian12/Dockerfile > ./debian12/Dockerfile.tmp mv -f ./debian12/Dockerfile.tmp ./debian12/Dockerfile - name: Set up QEMU uses: docker/setup-qemu-action@v3.6.0 - name: Set up Docker Buildx id: buildx uses: docker/setup-buildx-action@v3.11.1 - name: Login to DockerHub (buanet) uses: docker/login-action@v3.4.0 with: username: ${{ secrets.DOCKER_USER }} password: ${{ secrets.DOCKER_PASS }} - name: Login to GitHub Container Registry uses: docker/login-action@v3.4.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.18.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@v5.0.0 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_BETA }}" 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_BETA }}/" ./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.11.1 - name: Login to DockerHub (buanet) uses: docker/login-action@v3.4.0 with: username: ${{ secrets.DOCKER_USER }} password: ${{ secrets.DOCKER_PASS }} - name: Login to GitHub Container Registry uses: docker/login-action@v3.4.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.18.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, create-build-number] steps: - name: Checkout repo uses: actions/checkout@v5.0.0 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_BETA }}" 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.4.0 with: username: ${{ secrets.DOCKER_USER }} password: ${{ secrets.DOCKER_PASS }} - name: Login to GitHub Container Registry uses: docker/login-action@v3.4.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@v5.0.0 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_BETA }}" 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_BETA }}/" ./debian12/Dockerfile > ./debian12/Dockerfile.tmp mv -f ./debian12/Dockerfile.tmp ./debian12/Dockerfile - name: Set up QEMU uses: docker/setup-qemu-action@v3.6.0 - name: Set up Docker Buildx id: buildx uses: docker/setup-buildx-action@v3.11.1 - name: Login to DockerHub (buanet) uses: docker/login-action@v3.4.0 with: username: ${{ secrets.DOCKER_USER }} password: ${{ secrets.DOCKER_PASS }} - name: Login to GitHub Container Registry uses: docker/login-action@v3.4.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.18.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_BETA }}, ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7-dev-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }}, 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@v5.0.0 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_BETA }}" 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_BETA }}/" ./debian12/Dockerfile > ./debian12/Dockerfile.tmp mv -f ./debian12/Dockerfile.tmp ./debian12/Dockerfile - name: Set up QEMU uses: docker/setup-qemu-action@v3.6.0 - name: Set up Docker Buildx id: buildx uses: docker/setup-buildx-action@v3.11.1 - name: Login to DockerHub (buanet) uses: docker/login-action@v3.4.0 with: username: ${{ secrets.DOCKER_USER }} password: ${{ secrets.DOCKER_PASS }} - name: Login to GitHub Container Registry uses: docker/login-action@v3.4.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.18.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_BETA }}, ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8-dev-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }}, 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@v5.0.0 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_BETA }}" 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_BETA }}/" ./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.11.1 - name: Login to DockerHub (buanet) uses: docker/login-action@v3.4.0 with: username: ${{ secrets.DOCKER_USER }} password: ${{ secrets.DOCKER_PASS }} - name: Login to GitHub Container Registry uses: docker/login-action@v3.4.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.18.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_BETA }}, ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64-dev-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }}, 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, create-build-number] steps: - name: Checkout repo uses: actions/checkout@v5.0.0 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_BETA }}" 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.4.0 with: username: ${{ secrets.DOCKER_USER }} password: ${{ secrets.DOCKER_PASS }} - name: Login to GitHub Container Registry uses: docker/login-action@v3.4.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_BETA }} buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7-dev-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }} buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8-dev-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }} buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64-dev-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }} docker buildx imagetools create -t ghcr.io/buanet/iobroker:dev-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }} ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7-dev-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }} ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8-dev-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }} ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64-dev-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }}