diff --git a/.github/dependencies/.admin-version b/.github/dependencies/.admin-version index 31d895b..f3b8d5c 100644 --- a/.github/dependencies/.admin-version +++ b/.github/dependencies/.admin-version @@ -1 +1 @@ -7.0.23 +7.6.3 diff --git a/.github/dependencies/.backitup-version b/.github/dependencies/.backitup-version index 6795d4d..f26c70e 100644 --- a/.github/dependencies/.backitup-version +++ b/.github/dependencies/.backitup-version @@ -1 +1 @@ -3.0.22 +3.0.31 diff --git a/.github/dependencies/.js-controller-version b/.github/dependencies/.js-controller-version index b619a5b..024b4b9 100644 --- a/.github/dependencies/.js-controller-version +++ b/.github/dependencies/.js-controller-version @@ -1 +1 @@ -6.0.11 +7.0.6 diff --git a/.github/dependencies/.latest-build b/.github/dependencies/.latest-build new file mode 100644 index 0000000..e2fd72b --- /dev/null +++ b/.github/dependencies/.latest-build @@ -0,0 +1 @@ +20250514.234447 diff --git a/.github/dependencies/.nodejs-version b/.github/dependencies/.nodejs-version index d78bf0a..1d898f1 100644 --- a/.github/dependencies/.nodejs-version +++ b/.github/dependencies/.nodejs-version @@ -1 +1 @@ -v18.20.4 +v20.19.2 diff --git a/.github/workflows/build-debian12-latest_sep.yml b/.github/workflows/build-debian12-latest_sep.yml new file mode 100644 index 0000000..3c3e2a3 --- /dev/null +++ b/.github/workflows/build-debian12-latest_sep.yml @@ -0,0 +1,506 @@ +# Github action to build Debian12 image (Tag: latest) +name: Build Debian 12 Image (latest) + +on: + release: + types: [released] + workflow_dispatch: + +jobs: + 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" > .github/dependencies/.latest-build + echo "::set-output name=build_number::$BUILD" + echo "[LOG] Buildnumber: $BUILD" + + - name: Commit latest release version + run: | + git config --global user.name 'buanet' + git config --global user.email 'info@buanet.de' + git commit -am "new build" + git push + + build-latest-armv7-for-buanet: + name: Build latest armv7 image for buanet + needs: [create-build-number] + runs-on: ubuntu-latest + steps: + - name: Fetch latest release tag + run: | + LATESTRELEASE="$(curl -sL https://api.github.com/repos/buanet/ioBroker.docker/releases/latest | jq -r '.tag_name')" + echo "Latest release tag : $LATESTRELEASE" + echo "RELEASE_TAG=$LATESTRELEASE" >> $GITHUB_ENV + + - name: Checkout repo + uses: actions/checkout@v4.1.7 + with: + repository: 'buanet/ioBroker.docker' + ref: ${{ env.RELEASE_TAG }} + + - name: Set job variables + run: | + VERSION="$(cat .VERSION)" + MAJORVERSION="$(cat .VERSION | cut -c 1-3 | sed -r 's#^(.{0})#\1latest-#')" + 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] Major Image Version: $MAJORVERSION" + echo "majorversion=$MAJORVERSION" >> $GITHUB_ENV + echo "[LOG] Buildnumber: $BUILD" + echo "build=$BUILD" >> $GITHUB_ENV + # Set values in iobroker_startup.sh + sed -e "s/\${VERSION}/$VERSION/" -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/" -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.6.1 + with: + context: ./debian12 + file: ./debian12/Dockerfile + push: true + platforms: linux/arm/v7 + tags: | + buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7, + ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7, + + build-latest-arm64v8-for-buanet: + name: Build latest armv64v8 image for buanet + needs: [create-build-number] + runs-on: ubuntu-latest + steps: + - name: Fetch latest release tag + run: | + LATESTRELEASE="$(curl -sL https://api.github.com/repos/buanet/ioBroker.docker/releases/latest | jq -r '.tag_name')" + echo "Latest release tag : $LATESTRELEASE" + echo "RELEASE_TAG=$LATESTRELEASE" >> $GITHUB_ENV + + - name: Checkout repo + uses: actions/checkout@v4.1.7 + with: + repository: 'buanet/ioBroker.docker' + ref: ${{ env.RELEASE_TAG }} + + - name: Set job variables + run: | + VERSION="$(cat .VERSION)" + MAJORVERSION="$(cat .VERSION | cut -c 1-3 | sed -r 's#^(.{0})#\1latest-#')" + 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] Major Image Version: $MAJORVERSION" + echo "majorversion=$MAJORVERSION" >> $GITHUB_ENV + echo "[LOG] Buildnumber: $BUILD" + echo "build=$BUILD" >> $GITHUB_ENV + # Set values in iobroker_startup.sh + sed -e "s/\${VERSION}/$VERSION/" -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/" -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.6.1 + with: + context: ./debian12 + file: ./debian12/Dockerfile + push: true + platforms: linux/arm64/v8 + tags: | + buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8, + ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8, + + build-latest-amd64-for-buanet: + name: Build latest amd64 image for buanet + needs: [create-build-number] + runs-on: ubuntu-latest + steps: + - name: Fetch latest release tag + run: | + LATESTRELEASE="$(curl -sL https://api.github.com/repos/buanet/ioBroker.docker/releases/latest | jq -r '.tag_name')" + echo "Latest release tag : $LATESTRELEASE" + echo "RELEASE_TAG=$LATESTRELEASE" >> $GITHUB_ENV + + - name: Checkout repo + uses: actions/checkout@v4.1.7 + with: + repository: 'buanet/ioBroker.docker' + ref: ${{ env.RELEASE_TAG }} + + - name: Set job variables + run: | + VERSION="$(cat .VERSION)" + MAJORVERSION="$(cat .VERSION | cut -c 1-3 | sed -r 's#^(.{0})#\1latest-#')" + 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] Major Image Version: $MAJORVERSION" + echo "majorversion=$MAJORVERSION" >> $GITHUB_ENV + echo "[LOG] Buildnumber: $BUILD" + echo "build=$BUILD" >> $GITHUB_ENV + # Set values in iobroker_startup.sh + sed -e "s/\${VERSION}/$VERSION/" -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/" -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.6.1 + with: + context: ./debian12 + file: ./debian12/Dockerfile + push: true + platforms: linux/amd64 + tags: | + buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64, + ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64, + + create-multiarch-image-for-buanet: + runs-on: ubuntu-latest + needs: [build-latest-armv7-for-buanet, build-latest-arm64v8-for-buanet, build-latest-amd64-for-buanet, create-build-number] + steps: + - name: Fetch latest release tag + run: | + LATESTRELEASE="$(curl -sL https://api.github.com/repos/buanet/ioBroker.docker/releases/latest | jq -r '.tag_name')" + echo "Latest release tag : $LATESTRELEASE" + echo "RELEASE_TAG=$LATESTRELEASE" >> $GITHUB_ENV + + - name: Checkout repo + uses: actions/checkout@v4.1.7 + with: + repository: 'buanet/ioBroker.docker' + ref: ${{ env.RELEASE_TAG }} + + - name: Set job variables + run: | + VERSION="$(cat .VERSION)" + MAJORVERSION="$(cat .VERSION | cut -c 1-3 | sed -r 's#^(.{0})#\1latest-#')" + 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] Major Image Version: $MAJORVERSION" + echo "majorversion=$MAJORVERSION" >> $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:latest buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7 buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8 buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64 + docker buildx imagetools create -t ghcr.io/buanet/iobroker:latest ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7 ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8 ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64 + docker buildx imagetools create -t buanet/iobroker:${{ env.majorversion }} buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7 buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8 buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64 + docker buildx imagetools create -t ghcr.io/buanet/iobroker:${{ env.majorversion }} ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7 ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8 ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64 + docker buildx imagetools create -t buanet/iobroker:${{ env.version }} buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7 buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8 buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64 + docker buildx imagetools create -t ghcr.io/buanet/iobroker:${{ env.version }} ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7 ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8 ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64 + docker buildx imagetools create -t buanet/iobroker:${{ env.version }}-build.${{ env.build }} buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7 buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8 buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64 + docker buildx imagetools create -t ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }} ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7 ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8 ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64 + + build-latest-armv7-for-iobroker: + name: Build latest armv7 image for iobroker + needs: [create-build-number] + runs-on: ubuntu-latest + steps: + - name: Fetch latest release tag + run: | + LATESTRELEASE="$(curl -sL https://api.github.com/repos/buanet/ioBroker.docker/releases/latest | jq -r '.tag_name')" + echo "Latest release tag : $LATESTRELEASE" + echo "RELEASE_TAG=$LATESTRELEASE" >> $GITHUB_ENV + + - name: Checkout repo + uses: actions/checkout@v4.1.7 + with: + repository: 'buanet/ioBroker.docker' + ref: ${{ env.RELEASE_TAG }} + + - name: Set job variables + run: | + VERSION="$(cat .VERSION)" + MAJORVERSION="$(cat .VERSION | cut -c 1-3 | sed -r 's#^(.{0})#\1latest-#')" + 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] Major Image Version: $MAJORVERSION" + echo "majorversion=$MAJORVERSION" >> $GITHUB_ENV + echo "[LOG] Buildnumber: $BUILD" + echo "build=$BUILD" >> $GITHUB_ENV + # Set values in iobroker_startup.sh + sed -e "s/\${VERSION}/$VERSION/" -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/" -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 (iobroker) + uses: docker/login-action@v3.3.0 + with: + username: ${{ secrets.DOCKER_USER_IOB }} + password: ${{ secrets.DOCKER_PASS_IOB }} + + - name: Build and push Docker image + uses: docker/build-push-action@v6.6.1 + with: + context: ./debian12 + file: ./debian12/Dockerfile + push: true + platforms: linux/arm/v7 + tags: iobroker/iobroker:${{ env.version }}-build.${{ env.build }}-armv7 + + build-latest-arm64v8-for-iobroker: + name: Build latest armv64v8 image for iobroker + needs: [create-build-number] + runs-on: ubuntu-latest + steps: + - name: Fetch latest release tag + run: | + LATESTRELEASE="$(curl -sL https://api.github.com/repos/buanet/ioBroker.docker/releases/latest | jq -r '.tag_name')" + echo "Latest release tag : $LATESTRELEASE" + echo "RELEASE_TAG=$LATESTRELEASE" >> $GITHUB_ENV + + - name: Checkout repo + uses: actions/checkout@v4.1.7 + with: + repository: 'buanet/ioBroker.docker' + ref: ${{ env.RELEASE_TAG }} + + - name: Set job variables + run: | + VERSION="$(cat .VERSION)" + MAJORVERSION="$(cat .VERSION | cut -c 1-3 | sed -r 's#^(.{0})#\1latest-#')" + 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] Major Image Version: $MAJORVERSION" + echo "majorversion=$MAJORVERSION" >> $GITHUB_ENV + echo "[LOG] Buildnumber: $BUILD" + echo "build=$BUILD" >> $GITHUB_ENV + # Set values in iobroker_startup.sh + sed -e "s/\${VERSION}/$VERSION/" -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/" -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 (iobroker) + uses: docker/login-action@v3.3.0 + with: + username: ${{ secrets.DOCKER_USER_IOB }} + password: ${{ secrets.DOCKER_PASS_IOB }} + + - name: Build and push Docker image + uses: docker/build-push-action@v6.6.1 + with: + context: ./debian12 + file: ./debian12/Dockerfile + push: true + platforms: linux/arm64/v8 + tags: iobroker/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8 + + build-latest-amd64-for-iobroker: + name: Build latest amd64 image for iobroker + needs: [create-build-number] + runs-on: ubuntu-latest + steps: + - name: Fetch latest release tag + run: | + LATESTRELEASE="$(curl -sL https://api.github.com/repos/buanet/ioBroker.docker/releases/latest | jq -r '.tag_name')" + echo "Latest release tag : $LATESTRELEASE" + echo "RELEASE_TAG=$LATESTRELEASE" >> $GITHUB_ENV + + - name: Checkout repo + uses: actions/checkout@v4.1.7 + with: + repository: 'buanet/ioBroker.docker' + ref: ${{ env.RELEASE_TAG }} + + - name: Set job variables + run: | + VERSION="$(cat .VERSION)" + MAJORVERSION="$(cat .VERSION | cut -c 1-3 | sed -r 's#^(.{0})#\1latest-#')" + 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] Major Image Version: $MAJORVERSION" + echo "majorversion=$MAJORVERSION" >> $GITHUB_ENV + echo "[LOG] Buildnumber: $BUILD" + echo "build=$BUILD" >> $GITHUB_ENV + # Set values in iobroker_startup.sh + sed -e "s/\${VERSION}/$VERSION/" -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/" -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 (iobroker) + uses: docker/login-action@v3.3.0 + with: + username: ${{ secrets.DOCKER_USER_IOB }} + password: ${{ secrets.DOCKER_PASS_IOB }} + + - name: Build and push Docker image + uses: docker/build-push-action@v6.6.1 + with: + context: ./debian12 + file: ./debian12/Dockerfile + push: true + platforms: linux/amd64 + tags: iobroker/iobroker:${{ env.version }}-build.${{ env.build }}-amd64 + + create-multiarch-image-for-iobroker: + runs-on: ubuntu-latest + needs: [build-latest-armv7-for-iobroker, build-latest-arm64v8-for-iobroker, build-latest-amd64-for-iobroker, create-build-number] + steps: + - name: Fetch latest release tag + run: | + LATESTRELEASE="$(curl -sL https://api.github.com/repos/buanet/ioBroker.docker/releases/latest | jq -r '.tag_name')" + echo "Latest release tag : $LATESTRELEASE" + echo "RELEASE_TAG=$LATESTRELEASE" >> $GITHUB_ENV + + - name: Checkout repo + uses: actions/checkout@v4.1.7 + with: + repository: 'buanet/ioBroker.docker' + ref: ${{ env.RELEASE_TAG }} + + - name: Set job variables + run: | + VERSION="$(cat .VERSION)" + MAJORVERSION="$(cat .VERSION | cut -c 1-3 | sed -r 's#^(.{0})#\1latest-#')" + 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] Major Image Version: $MAJORVERSION" + echo "majorversion=$MAJORVERSION" >> $GITHUB_ENV + echo "[LOG] Buildnumber: $BUILD" + echo "build=$BUILD" >> $GITHUB_ENV + + - name: Login to DockerHub (iobroker) + uses: docker/login-action@v3.3.0 + with: + username: ${{ secrets.DOCKER_USER_IOB }} + password: ${{ secrets.DOCKER_PASS_IOB }} + + - name: Create and push multi-platform image + run: | + docker buildx imagetools create -t iobroker/iobroker:latest iobroker/iobroker:${{ env.version }}-build.${{ env.build }}-armv7 iobroker/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8 iobroker/iobroker:${{ env.version }}-build.${{ env.build }}-amd64 + docker buildx imagetools create -t iobroker/iobroker:${{ env.majorversion }} iobroker/iobroker:${{ env.version }}-build.${{ env.build }}-armv7 iobroker/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8 iobroker/iobroker:${{ env.version }}-build.${{ env.build }}-amd64 + docker buildx imagetools create -t iobroker/iobroker:${{ env.version }} iobroker/iobroker:${{ env.version }}-build.${{ env.build }}-armv7 iobroker/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8 iobroker/iobroker:${{ env.version }}-build.${{ env.build }}-amd64 + docker buildx imagetools create -t iobroker/iobroker:${{ env.version }}-build.${{ env.build }} iobroker/iobroker:${{ env.version }}-build.${{ env.build }}-armv7 iobroker/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8 iobroker/iobroker:${{ env.version }}-build.${{ env.build }}-amd64 diff --git a/.github/workflows/build-debian12-beta_ext.yml b/.github/workflows/old/build-debian12-beta_ext.yml similarity index 100% rename from .github/workflows/build-debian12-beta_ext.yml rename to .github/workflows/old/build-debian12-beta_ext.yml diff --git a/.github/workflows/build-debian12-latest.yml b/.github/workflows/old/build-debian12-latest.yml similarity index 100% rename from .github/workflows/build-debian12-latest.yml rename to .github/workflows/old/build-debian12-latest.yml diff --git a/.github/workflows/build-debian12-latest_ext.yml b/.github/workflows/old/build-debian12-latest_ext.yml similarity index 100% rename from .github/workflows/build-debian12-latest_ext.yml rename to .github/workflows/old/build-debian12-latest_ext.yml diff --git a/.github/workflows/testing-docker-image.yml b/.github/workflows/testing-docker-image.yml index aedbc57..13bc3af 100644 --- a/.github/workflows/testing-docker-image.yml +++ b/.github/workflows/testing-docker-image.yml @@ -11,11 +11,11 @@ jobs: - name: Testing with docker run run: | echo "[LOG] Starting ioBroker Container..." - docker run -d -p 8081:8081 --name iobroker -v iobrokerdata:/opt/iobroker buanet/iobroker:latest + docker run -d --name iobroker buanet/iobroker:latest echo "[LOG] Done." echo ' ' echo "[LOG] Waiting for Startup Script..." - sleep 30 + sleep 60 echo "[LOG] Done." echo ' ' echo "[LOG] Writing Logs..." @@ -23,11 +23,11 @@ jobs: echo "[LOG] Done." echo ' ' echo "[LOG] Checking Web UI..." - curl --insecure http://127.0.0.1:8081 2> /dev/null | grep '