mirror of
https://github.com/buanet/ioBroker.docker.git
synced 2026-01-01 21:52:51 +02:00
Merge remote-tracking branch 'origin/main' into beta
This commit is contained in:
506
.github/workflows/build-debian12-latest_sep.yml
vendored
Normal file
506
.github/workflows/build-debian12-latest_sep.yml
vendored
Normal file
@@ -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
|
||||
8
.github/workflows/testing-docker-image.yml
vendored
8
.github/workflows/testing-docker-image.yml
vendored
@@ -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 '<title>Admin</title>' &> /dev/null || exit 1
|
||||
docker exec iobroker curl -s http://localhost:8081 | grep -q '<title>Admin</title>' || { echo "[LOG] Fehler: Web UI nicht erreichbar."; exit 1; }
|
||||
echo "[LOG] Done."
|
||||
echo ' '
|
||||
echo "[LOG] Output testrun.log:"
|
||||
cat testrun.log
|
||||
echo ' '
|
||||
echo "[LOG] Test sucesssful."
|
||||
echo "[LOG] Test successful."
|
||||
echo ' '
|
||||
|
||||
4
.github/workflows/update-docker-readme.yml
vendored
4
.github/workflows/update-docker-readme.yml
vendored
@@ -20,7 +20,7 @@ jobs:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASS }}
|
||||
repository: buanet/iobroker
|
||||
short-description: Official Docker image for ioBroker based on Debian Bullseye slim
|
||||
short-description: Official Docker image for ioBroker based on Debian Bookworm slim
|
||||
readme-filepath: ./docs/README_docker_hub_buanet.md
|
||||
|
||||
- name: Update Docker Hub Readme (iobroker)
|
||||
@@ -29,5 +29,5 @@ jobs:
|
||||
username: ${{ secrets.DOCKER_USER_IOB }}
|
||||
password: ${{ secrets.DOCKER_PASS_IOB }}
|
||||
repository: iobroker/iobroker
|
||||
short-description: Official Docker image for ioBroker based on Debian Bullseye slim
|
||||
short-description: Official Docker image for ioBroker based on Debian Bookworm slim
|
||||
readme-filepath: ./docs/README_docker_hub_iobroker.md
|
||||
30
.github/workflows/version-checks.yml
vendored
30
.github/workflows/version-checks.yml
vendored
@@ -15,19 +15,12 @@ jobs:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
token: ${{ secrets.ACTIONS_PAT }}
|
||||
|
||||
- name: Get and write version
|
||||
id: version
|
||||
run: |
|
||||
LATESTRELEASE="$(curl -sL https://api.github.com/repos/buanet/ioBroker.docker/releases/latest | jq -r '.tag_name')"
|
||||
echo "iobroker=iobroker/iobroker:$LATESTRELEASE" >> $GITHUB_ENV
|
||||
echo "baseimage=library/debian:bookworm-slim" >> $GITHUB_ENV
|
||||
|
||||
- name: Docker Baseimage Checker
|
||||
id: baseimage
|
||||
uses: mkumatag/container-image-updater-action@v1.0.6
|
||||
- name: Docker baseimage check
|
||||
id: baseimage-check
|
||||
uses: lucacome/docker-image-update-checker@v2.0.0
|
||||
with:
|
||||
base-image: '${{ env.baseimage }}'
|
||||
image: '${{ env.iobroker }}'
|
||||
base-image: debian:bookworm-slim
|
||||
image: buanet/iobroker:latest
|
||||
|
||||
- name: Fetch ioBroker and nodejs versions
|
||||
run: |
|
||||
@@ -44,7 +37,7 @@ jobs:
|
||||
jq -r '."discovery".version' > .github/dependencies/.discovery-version
|
||||
echo "[LOG] Fetched discovery version is $(cat .github/dependencies/.discovery-version)"
|
||||
curl -sL https://nodejs.org/dist/index.json | \
|
||||
jq -r 'map(select(.version | startswith("v18."))) | .[0].version' > .github/dependencies/.nodejs-version
|
||||
jq -r 'map(select(.version | startswith("v20."))) | .[0].version' > .github/dependencies/.nodejs-version
|
||||
echo "[LOG] Fetched nodejs version is $(cat .github/dependencies/.nodejs-version)"
|
||||
|
||||
- name: Check for modified files
|
||||
@@ -59,11 +52,16 @@ jobs:
|
||||
git commit -am "new ioBroker versions"
|
||||
git push
|
||||
|
||||
- name: Logging result
|
||||
run: |
|
||||
echo "base image updated = ${{ steps.baseimage-check.outputs.needs-updating }}"
|
||||
echo "ioBroker version updated = ${{ steps.git-check.outputs.modified }}"
|
||||
|
||||
- name: Trigger Build Debian 12 Image (latest)
|
||||
if: steps.baseimage.outputs.needs-update == 'true' || steps.git-check.outputs.modified == 'true'
|
||||
if: steps.baseimage-check.outputs.needs-updating == 'true' || steps.git-check.outputs.modified == 'true'
|
||||
uses: benc-uk/workflow-dispatch@v1.2
|
||||
with:
|
||||
ref: 'main'
|
||||
workflow: 'iob.docker - Build Debian 12 Image (latest)'
|
||||
repo: 'buanet/private.actionsrunner'
|
||||
workflow: 'Build Debian 12 Image (latest)'
|
||||
repo: 'buanet/iobroker.docker'
|
||||
token: ${{ secrets.ACTIONS_PAT }}
|
||||
|
||||
Reference in New Issue
Block a user