mirror of
https://github.com/buanet/ioBroker.docker.git
synced 2025-12-17 02:19:00 +02:00
479 lines
22 KiB
YAML
479 lines
22 KiB
YAML
# Github action to build Debian12 image (Tag: latest)
|
|
name: Build Debian 12 Image (latest)
|
|
|
|
on:
|
|
release:
|
|
types: [released]
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
create-build-number:
|
|
name: Create build number
|
|
runs-on: ubuntu-latest
|
|
outputs:
|
|
build_number: ${{ steps.generate-build-number.outputs.build_number }}
|
|
release_tag: ${{ steps.fetch-release-tag.outputs.release_tag }}
|
|
steps:
|
|
- name: Fetch latest release tag
|
|
id: fetch-release-tag
|
|
run: |
|
|
LATESTRELEASE="$(curl -sL https://api.github.com/repos/buanet/ioBroker.docker/releases/latest | jq -r '.tag_name')"
|
|
if [ -z "$LATESTRELEASE" ]; then
|
|
echo "[LOG] No prerelease found!" >&2
|
|
exit 1
|
|
fi
|
|
echo "RELEASE_TAG=$LATESTRELEASE" >> $GITHUB_ENV
|
|
echo "release_tag=$LATESTRELEASE" >> $GITHUB_OUTPUT
|
|
echo "[LOG] Latest release tag : $LATESTRELEASE"
|
|
|
|
- name: Checkout repo
|
|
uses: actions/checkout@v5.0.0
|
|
with:
|
|
repository: 'buanet/ioBroker.docker'
|
|
token: ${{ secrets.ACTIONS_PAT }}
|
|
ref: main
|
|
fetch-depth: 0
|
|
|
|
- name: Generate build number
|
|
id: generate-build-number
|
|
run: |
|
|
BUILD="$(date +"%Y%m%d.%H%M%S")"
|
|
echo "$BUILD" > .github/dependencies/.latest-build
|
|
echo "build_number=$BUILD" >> $GITHUB_OUTPUT
|
|
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 add .github/dependencies/.latest-build
|
|
git commit -am "new build" || true
|
|
git push
|
|
|
|
build-latest-armv7-for-buanet:
|
|
name: Build latest armv7 image for buanet
|
|
needs: [create-build-number]
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout repo
|
|
uses: actions/checkout@v5.0.0
|
|
with:
|
|
repository: 'buanet/ioBroker.docker'
|
|
ref: ${{ needs.create-build-number.outputs.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.7.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.6.0
|
|
with:
|
|
username: ${{ secrets.DOCKER_USER }}
|
|
password: ${{ secrets.DOCKER_PASS }}
|
|
|
|
- name: Login to GitHub Container Registry
|
|
uses: docker/login-action@v3.6.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,
|
|
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: Checkout repo
|
|
uses: actions/checkout@v5.0.0
|
|
with:
|
|
repository: 'buanet/ioBroker.docker'
|
|
ref: ${{ needs.create-build-number.outputs.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.7.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.6.0
|
|
with:
|
|
username: ${{ secrets.DOCKER_USER }}
|
|
password: ${{ secrets.DOCKER_PASS }}
|
|
|
|
- name: Login to GitHub Container Registry
|
|
uses: docker/login-action@v3.6.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,
|
|
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: Checkout repo
|
|
uses: actions/checkout@v5.0.0
|
|
with:
|
|
repository: 'buanet/ioBroker.docker'
|
|
ref: ${{ needs.create-build-number.outputs.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.11.1
|
|
|
|
- name: Login to DockerHub (buanet)
|
|
uses: docker/login-action@v3.6.0
|
|
with:
|
|
username: ${{ secrets.DOCKER_USER }}
|
|
password: ${{ secrets.DOCKER_PASS }}
|
|
|
|
- name: Login to GitHub Container Registry
|
|
uses: docker/login-action@v3.6.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,
|
|
ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64,
|
|
|
|
create-multiarch-image-for-buanet:
|
|
name: 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: Checkout repo
|
|
uses: actions/checkout@v5.0.0
|
|
with:
|
|
repository: 'buanet/ioBroker.docker'
|
|
ref: ${{ needs.create-build-number.outputs.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.6.0
|
|
with:
|
|
username: ${{ secrets.DOCKER_USER }}
|
|
password: ${{ secrets.DOCKER_PASS }}
|
|
|
|
- name: Login to GitHub Container Registry
|
|
uses: docker/login-action@v3.6.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 for iobroker repo
|
|
|
|
build-latest-armv7-for-iobroker:
|
|
name: Build latest armv7 image for iobroker
|
|
needs: [create-build-number]
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout repo
|
|
uses: actions/checkout@v5.0.0
|
|
with:
|
|
repository: 'buanet/ioBroker.docker'
|
|
ref: ${{ needs.create-build-number.outputs.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.7.0
|
|
|
|
- name: Set up Docker Buildx
|
|
id: buildx
|
|
uses: docker/setup-buildx-action@v3.11.1
|
|
|
|
- name: Login to DockerHub (iobroker)
|
|
uses: docker/login-action@v3.6.0
|
|
with:
|
|
username: ${{ secrets.DOCKER_USER_IOB }}
|
|
password: ${{ secrets.DOCKER_PASS_IOB }}
|
|
|
|
- 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: 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: Checkout repo
|
|
uses: actions/checkout@v5.0.0
|
|
with:
|
|
repository: 'buanet/ioBroker.docker'
|
|
ref: ${{ needs.create-build-number.outputs.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.7.0
|
|
|
|
- name: Set up Docker Buildx
|
|
id: buildx
|
|
uses: docker/setup-buildx-action@v3.11.1
|
|
|
|
- name: Login to DockerHub (iobroker)
|
|
uses: docker/login-action@v3.6.0
|
|
with:
|
|
username: ${{ secrets.DOCKER_USER_IOB }}
|
|
password: ${{ secrets.DOCKER_PASS_IOB }}
|
|
|
|
- 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: 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: Checkout repo
|
|
uses: actions/checkout@v5.0.0
|
|
with:
|
|
repository: 'buanet/ioBroker.docker'
|
|
ref: ${{ needs.create-build-number.outputs.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.11.1
|
|
|
|
- name: Login to DockerHub (iobroker)
|
|
uses: docker/login-action@v3.6.0
|
|
with:
|
|
username: ${{ secrets.DOCKER_USER_IOB }}
|
|
password: ${{ secrets.DOCKER_PASS_IOB }}
|
|
|
|
- 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: 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: Checkout repo
|
|
uses: actions/checkout@v5.0.0
|
|
with:
|
|
repository: 'buanet/ioBroker.docker'
|
|
ref: ${{ needs.create-build-number.outputs.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.6.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
|