@@ -22,10 +22,13 @@ jobs:
2222 # Setting the defaults up front
2323 LATEST_NODE : 20
2424 DEFAULT_IMAGE : nodered/node-red
25+ GH_IMAGE : ghcr.io/node-red/node-red
2526 DEV_IMAGE : nodered/node-red-dev
27+ GH_DEV_IMAGE : ghcr.io/node-red/node-red-dev
2628 runs-on : ubuntu-latest
2729
2830 strategy :
31+ max-parallel : 2
2932 matrix :
3033 node : [18, 20, 22]
3134 suffix : ["", "-minimal"]
@@ -47,16 +50,41 @@ jobs:
4750 suffix=-${{matrix.node}}${{matrix.suffix}}
4851 images : |
4952 ${{ env.DEFAULT_IMAGE }}
53+ ${{ env.GH_IMAGE }}
5054 tags : |
5155 type=ref,event=branch
5256 type=semver,pattern={{version}}
5357
5458 -
5559 name : Setup QEMU
5660 uses : docker/setup-qemu-action@v3
61+ with :
62+ platforms : arm64
63+ -
64+ name : Set up SSH key pi5
65+ uses : MrSquaare/ssh-setup-action@2d028b70b5e397cf8314c6eaea229a6c3e34977a # v3.1.0
66+ with :
67+ host : ${{ secrets.SSH_REMOTE_HOST}}
68+ private-key : ${{ secrets.SSH_PRIVATE_KEY }}
69+ private-key-name : remote
70+ port : 2022
71+ -
72+ name : Set up SSH key pi4
73+ uses : MrSquaare/ssh-setup-action@2d028b70b5e397cf8314c6eaea229a6c3e34977a # v3.1.0
74+ with :
75+ host : ${{ secrets.SSH_REMOTE_HOST}}
76+ private-key : ${{ secrets.SSH_PRIVATE_KEY }}
77+ private-key-name : remote
78+ port : 2023
5779 -
5880 name : Setup Docker buildx
5981 uses : docker/setup-buildx-action@v3
82+ with :
83+ append : |
84+ - endpoint: ssh://nr@${{ secrets.SSH_REMOTE_HOST }}:2023
85+ platforms: linux/arm/v6,linux/arm/v7
86+ - endpoint: ssh://nr@${{ secrets.SSH_REMOTE_HOST }}:2022
87+ platforms: linux/arm64
6088 - name : Get Date
6189 id : date
6290 # run: echo "::set-output name=date::$(date +'%Y-%m-%dT%H:%M:%SZ')"
83111 TEMP=${TEMP:1}
84112 TEMP2=$(echo $GITHUB_REF | awk -F '/' '{ print $3}')
85113 echo "$GITHUB_REF - $TEMP"
86- TAGS=$(echo $TAGS | sed "s/$TEMP2/$TEMP/")
114+ TAGS=$(echo $TAGS | sed "s/$TEMP2/$TEMP/g ")
87115 TRAVIS_TAG=${{ github.event.inputs.version }}
88116 else
89117 TRAVIS_TAG=$(echo $GITHUB_REF | awk -F '/' '{ print $3}')
@@ -93,32 +121,48 @@ jobs:
93121
94122 if [[ "$TRAVIS_TAG" =~ ^v[0-9\.-]*$ ]]; then
95123 IMAGE=${{ env.DEFAULT_IMAGE }}
124+ GH_IMAGE=${{ env.GH_IMAGE}}
96125 PUSH=true
97126 VERSION=${TRAVIS_TAG:1}
98127 STABLE_VERSION=`echo ${VERSION} | sed -r 's/^([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)$/\1.\2/'`
99128
100129 if [[ "${{ matrix.node }}" == "${{ env.LATEST_NODE }}" && "${{ matrix.suffix }}" == "" ]]; then
101- TAGS="$TAGS,$IMAGE:$VERSION,$IMAGE:$STABLE_VERSION,$IMAGE:latest"
130+ TAGS="$TAGS,$IMAGE:$VERSION,$IMAGE:$STABLE_VERSION,$IMAGE:latest,$GH_IMAGE:$VERSION,$GH_IMAGE:$STABLE_VERSION,$GH_IMAGE:latest "
102131 elif [[ "${{ matrix.node }}" == "${{ env.LATEST_NODE }}" && "${{ matrix.suffix }}" == "-minimal" ]]; then
103- TAGS="$TAGS,$IMAGE:$VERSION-minimal,$IMAGE:latest-minimal"
132+ TAGS="$TAGS,$IMAGE:$VERSION-minimal,$IMAGE:latest-minimal,$GH_IMAGE:$VERSION-minimal,$GH_IMAGE:latest-minimal "
104133 fi
105134
106- TAGS="$TAGS,$IMAGE:latest-${{ matrix.node }}${{ matrix.suffix }}"
135+ TAGS="$TAGS,$IMAGE:latest-${{ matrix.node }}${{ matrix.suffix }},$GH_IMAGE:latest-${{ matrix.node }}${{ matrix.suffix }} "
107136
108137 else
109138 IMAGE=${{ env.DEV_IMAGE }}
139+ GH_IMAGE=${{ env.GH_DEV_IMAGE}}
110140 if [[ "$TRAVIS_TAG" == *"dev"* || "$TRAVIS_TAG" == *"beta"* ]]; then
111141 PUSH=true
112142 else
113143 PUSH=false
114144 fi
115145 VERSION=${TRAVIS_TAG}
116146 TAGS=$(echo $TAGS | sed 's!${{ env.DEFAULT_IMAGE}}!${{ env.DEV_IMAGE }}!')
147+ TAGS=$(echo $TAGS | sed 's!${{ env.GH_IMAGE}}!${{ env.GH_DEV_IMAGE }}!')
117148 if [ "${{ matrix.node }}" == "${{ env.LATEST_NODE }}" ] && [ "${{ matrix.suffix}}" == "" ]; then
118- TAGS="$TAGS,$IMAGE:$VERSION"
149+ TAGS="$TAGS,$IMAGE:$VERSION,$GH_IMAGE:$VERSION "
119150 fi
120151 fi
121152
153+ # if [[ "${{ matrix.node }}" == "18"]]; then
154+ # echo "platforms=linux/amd64,linux/arm/v7,linux/arm64" >> $GITHUB_OUTPUT
155+ # else
156+ # echo "platforms=linux/amd64,linux/arm64" >> $GITHUB_OUTPUT
157+ # fi
158+
159+ # if [[ "${{ matrix.suffix }}" == "-minimal" ]]; then
160+ # echo "platforms=linux/amd64,linux/arm64" >> $GITHUB_OUTPUT
161+ # else
162+ # echo "platforms=linux/amd64,linux/arm/v7,linux/arm64" >> $GITHUB_OUTPUT
163+ # fi
164+ echo "platforms=linux/amd64,linux/arm/v7,linux/arm64" >> $GITHUB_OUTPUT
165+
122166 echo $TAGS
123167 echo "tags=$TAGS" >> $GITHUB_OUTPUT
124168 echo "push=$PUSH" >> $GITHUB_OUTPUT
@@ -137,13 +181,20 @@ jobs:
137181 with :
138182 username : ${{ secrets.DOCKERHUB_USERNAME }}
139183 password : ${{ secrets.DOCKERHUB_TOKEN }}
184+ -
185+ name : Login to GitHub Container Registry
186+ uses : docker/login-action@v3
187+ with :
188+ registry : ghcr.io
189+ username : ${{ github.repository_owner }}
190+ password : ${{ secrets.GITHUB_TOKEN }}
140191 -
141192 name : Build and push
142193 id : build-push
143194 uses : docker/build-push-action@v5
144195 with :
145196 context : .
146- platforms : linux/amd64, linux/arm64
197+ platforms : ${{ steps.nrVersion.outputs.platforms }}
147198 push : ${{ steps.nrVersion.outputs.push }}
148199 file : .docker/Dockerfile.alpine
149200 build-args : |
@@ -161,21 +212,31 @@ jobs:
161212 # Setting the defaults up front
162213 LATEST_NODE : 20
163214 DEFAULT_IMAGE : nodered/node-red
215+ GH_IMAGE : ghcr.io/node-red/node-red
164216 DEV_IMAGE : nodered/node-red-dev
217+ GH_DEV_IMAGE : ghcr.io/node-red/node-red-dev
165218 runs-on : ubuntu-latest
166219
167220 steps :
168221 - name : Checkout
169222170223 - name : Setup QEMU
171224 uses : docker/setup-qemu-action@v3
225+ with :
226+ image : tonistiigi/binfmt:qemu-v7.0.0-28
172227 - name : Setup Docker buildx
173228 uses : docker/setup-buildx-action@v3
174229 - name : Login to DockerHub
175230 uses : docker/login-action@v3
176231 with :
177232 username : ${{ secrets.DOCKERHUB_USERNAME }}
178233 password : ${{ secrets.DOCKERHUB_TOKEN }}
234+ - name : Login to GitHub Container Registry
235+ uses : docker/login-action@v3
236+ with :
237+ registry : ghcr.io
238+ username : ${{ github.repository_owner }}
239+ password : ${{ secrets.GITHUB_TOKEN }}
179240 - name : Get Date
180241 id : date
181242 # run: echo "::set-output name=date::$(date +'%Y-%m-%dT%H:%M:%SZ')"
@@ -188,6 +249,7 @@ jobs:
188249 latest=false
189250 images : |
190251 ${{ env.DEFAULT_IMAGE }}
252+ ${{ env.GH_IMAGE }}
191253 tags : |
192254 type=ref,event=branch
193255 type=semver,pattern={{version}}
@@ -196,8 +258,15 @@ jobs:
196258 id : nrVersion
197259 run : |
198260 TAGS=""
261+ while IFS= read -r TAG;do
262+ if [ -z "$TAGS" ]; then
263+ TAGS=$TAG
264+ else
265+ TAGS="$TAGS,$TAG"
266+ fi
267+ done <<< "${{ steps.meta.outputs.tags }}"
199268
200- echo Original tags ${{ steps.meta.outputs.tags }}
269+ echo " Original tags $TAGS"
201270
202271 if [[ ! -z "${{ github.event.inputs.version }}" ]]; then
203272 TRAVIS_TAG=${{ github.event.inputs.version }}
@@ -208,14 +277,16 @@ jobs:
208277 if [[ "$TRAVIS_TAG" =~ ^v[0-9\.-]*$ ]]; then
209278 # release build
210279 IMAGE=${{ env.DEFAULT_IMAGE }}
280+ GH_IMAGE=${{ env.GH_IMAGE }}
211281 PUSH=true
212282 VERSION=${TRAVIS_TAG:1}
213283 STABLE_VERSION=`echo ${VERSION} | sed -r 's/^([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)$/\1.\2/'`
214284
215- TAGS="$IMAGE:latest-debian,$IMAGE:$VERSION-debian,$IMAGE:$STABLE_VERSION-debian"
285+ TAGS="$IMAGE:latest-debian,$IMAGE:$VERSION-debian,$IMAGE:$STABLE_VERSION-debian,$GH_IMAGE:latest-debian,$GH_IMAGE:$VERSION-debian,$GH_IMAGE:$STABLE_VERSION-debian "
216286
217287 else
218288 IMAGE=${{ env.DEV_IMAGE }}
289+ GH_IMAGE=${{ env.GH_DEV_IMAGE}}
219290 if [[ "$TRAVIS_TAG" == *"dev"* || "$TRAVIS_TAG" == *"beta"* ]]; then
220291 # beta build
221292 PUSH=true
@@ -224,7 +295,7 @@ jobs:
224295 fi
225296 VERSION=${TRAVIS_TAG}
226297
227- TAGS="$IMAGE:$VERSION-debian"
298+ TAGS="$IMAGE:$VERSION-debian,$GH_DEV_IMAGE:$VERSION "
228299
229300 fi
230301
0 commit comments