From d9ee13cb4652ad0c346dcf3c6697c0428b500f03 Mon Sep 17 00:00:00 2001 From: Ben Hardill Date: Fri, 10 Apr 2026 10:32:23 +0100 Subject: [PATCH 1/3] Add NodeJS 24 container build part of #615 Does not build on ARMv7 for NodeJS 24 --- .github/workflows/release-publish.yml | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release-publish.yml b/.github/workflows/release-publish.yml index 83f2df7..6c2bbd5 100644 --- a/.github/workflows/release-publish.yml +++ b/.github/workflows/release-publish.yml @@ -23,7 +23,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - node: [18, 20] + node: [18, 20, 24] steps: - name: checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 @@ -49,6 +49,15 @@ jobs: with: username: flowfuse password: ${{ secrets.DOCKER_HUB_PASSWORD }} + - name: pick platforms + id: nodeVersion + run: | + if [[ "${{ matrix.node }}" -eq "24" ]] + then + echo "platforms=linux/amd64, linux/arm64" >> $GITHUB_OUTPUT + else + echo "platforms=linux/amd64, linux/arm64, linux/arm/v7" >> $GITHUB_OUTPUT + fi - name: Build and push FlowFuse Device Agent container uses: docker/build-push-action@d08e5c354a6adb9ed34480a06d141179aa583294 # v7.0.0 with: @@ -56,7 +65,7 @@ jobs: file: docker/Dockerfile tags: ${{ steps.meta.outputs.tags }} push: true - platforms: linux/amd64, linux/arm64, linux/arm/v7 + platforms: ${{ steps.nodeVersion.outputs.platforms}} build-args: | NODE_VERSION=${{ matrix.node }} - name: Publish README.md to Docker hub From 534762cb3003f35f71fa12154e27cbdbdaa1be63 Mon Sep 17 00:00:00 2001 From: PPawlowski Date: Fri, 10 Apr 2026 12:48:35 +0200 Subject: [PATCH 2/3] Handle node versions and platfroms in a GHA way --- .github/workflows/release-publish.yml | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/.github/workflows/release-publish.yml b/.github/workflows/release-publish.yml index 6c2bbd5..ba933aa 100644 --- a/.github/workflows/release-publish.yml +++ b/.github/workflows/release-publish.yml @@ -23,7 +23,13 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - node: [18, 20, 24] + include: + - node: 18 + platforms: linux/amd64, linux/arm64, linux/arm/v7 + - node: 20 + platforms: linux/amd64, linux/arm64, linux/arm/v7 + - node: 24 + platforms: linux/amd64, linux/arm64 steps: - name: checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 @@ -49,15 +55,6 @@ jobs: with: username: flowfuse password: ${{ secrets.DOCKER_HUB_PASSWORD }} - - name: pick platforms - id: nodeVersion - run: | - if [[ "${{ matrix.node }}" -eq "24" ]] - then - echo "platforms=linux/amd64, linux/arm64" >> $GITHUB_OUTPUT - else - echo "platforms=linux/amd64, linux/arm64, linux/arm/v7" >> $GITHUB_OUTPUT - fi - name: Build and push FlowFuse Device Agent container uses: docker/build-push-action@d08e5c354a6adb9ed34480a06d141179aa583294 # v7.0.0 with: @@ -65,7 +62,7 @@ jobs: file: docker/Dockerfile tags: ${{ steps.meta.outputs.tags }} push: true - platforms: ${{ steps.nodeVersion.outputs.platforms}} + platforms: ${{ matrix.platforms }} build-args: | NODE_VERSION=${{ matrix.node }} - name: Publish README.md to Docker hub From a0449c01dbe6261b31f29b29875d7e7407e2ef94 Mon Sep 17 00:00:00 2001 From: PPawlowski Date: Fri, 10 Apr 2026 12:48:59 +0200 Subject: [PATCH 3/3] Remove publish-legacy job --- .github/workflows/release-publish.yml | 52 --------------------------- 1 file changed, 52 deletions(-) diff --git a/.github/workflows/release-publish.yml b/.github/workflows/release-publish.yml index ba933aa..60b47a1 100644 --- a/.github/workflows/release-publish.yml +++ b/.github/workflows/release-publish.yml @@ -72,55 +72,3 @@ jobs: username: flowfuse password: ${{ secrets.DOCKER_HUB_PASSWORD }} readme-filepath: ./docker/README.md - # publish_legacy: - # needs: [publish] - # runs-on: ubuntu-latest - # steps: - # - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - # - uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 - # with: - # node-version: 16 - # - name: "Install jq" - # run: sudo apt-get install -y jq - # - name: "Patch module name" - # run: | - # cat package.json | jq '.name = "@flowforge/flowforge-device-agent"' > package.json-patched - # mv package.json-patched package.json - # - run: npm install - # - uses: JS-DevTools/npm-publish@0fd2f4369c5d6bcfcde6091a7c527d810b9b5c3f # v4.1.5 - # with: - # token: ${{ secrets.NPM_PUBLISH_TOKEN_FLOWFORGE }} - # - name: Docker Meta Data - # id: meta - # uses: docker/metadata-action@030e881283bb7a6894de51c315a6bfe6a94e05cf # v6.0.0 - # with: - # tags: | - # type=semver,event=tag,pattern={{version}} - # flavor: | - # latest=true - # images: | - # flowforge/device-agent - # - name: Setup QEMU - # uses: docker/setup-qemu-action@ce360397dd3f832beb865e1373c09c0e9f86d70a # v4.0.0 - # - name: Setup Docker buildx - # uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 - # - name: docker login - # uses: docker/login-action@b45d80f862d83dbcd57f89517bcf500b2ab88fb2 # v4.0.0 - # with: - # username: flowforge - # password: ${{ secrets.DOCKER_HUB_PASSWORD_FLOWFORGE }} - # - name: Build and push FlowFuse Device Agent container - # uses: docker/build-push-action@d08e5c354a6adb9ed34480a06d141179aa583294 # v7.0.0 - # with: - # context: docker - # file: docker/Dockerfile_flowforge - # tags: ${{ steps.meta.outputs.tags }} - # push: true - # platforms: linux/amd64, linux/arm64, linux/arm/v7 - # - name: Publish README.md to Docker hub - # uses: peter-evans/dockerhub-description@1b9a80c056b620d92cedb9d9b5a223409c68ddfa # v5.0.0 - # with: - # repository: flowforge/device-agent - # username: flowforge - # password: ${{ secrets.DOCKER_HUB_PASSWORD_FLOWFORGE }} - # readme-filepath: ./docker/README.md