From 4a9fc1095a18a92c88e546a2d18ac880ce52a075 Mon Sep 17 00:00:00 2001 From: buanet Date: Sat, 24 May 2025 14:26:49 +0200 Subject: [PATCH] add experimental node build --- .github/workflows/build-debian12-dev_sep.yml | 222 ++++++++++++++++++- 1 file changed, 218 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build-debian12-dev_sep.yml b/.github/workflows/build-debian12-dev_sep.yml index f2e62d9..03311cb 100644 --- a/.github/workflows/build-debian12-dev_sep.yml +++ b/.github/workflows/build-debian12-dev_sep.yml @@ -6,6 +6,7 @@ on: jobs: create-build-number: + name: Create build number runs-on: ubuntu-latest outputs: build_number: ${{ steps.generate-build-number.outputs.build_number }} @@ -24,7 +25,7 @@ jobs: echo "[LOG] Buildnumber: $BUILD" build-dev-armv7-recommended-node: - name: Build dev armv7 image with recommended node version for buanet + name: Build dev armv7 image with recommended node version needs: [create-build-number] runs-on: ubuntu-latest steps: @@ -82,7 +83,7 @@ jobs: 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 for buanet + name: Build dev armv64v8 image with recommended node version needs: [create-build-number] runs-on: ubuntu-latest steps: @@ -140,7 +141,7 @@ jobs: 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 for buanet + name: Build dev amd64 image with recommended node version needs: [create-build-number] runs-on: ubuntu-latest steps: @@ -195,6 +196,7 @@ jobs: 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: @@ -230,4 +232,216 @@ jobs: - 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 \ No newline at end of file + 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.6.1 + 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.6.1 + 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.6.1 + 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, create-build-number] + 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 }} \ No newline at end of file