1616
1717# A workflow run is made up of one or more jobs that can run sequentially or in parallel
1818jobs :
19- # This workflow contains a single job called "build "
20- build :
19+ # This workflow contains a 2 jobs called "alpine" and "debian "
20+ alpine :
2121 env :
2222 # Setting the defaults up front
2323 LATEST_NODE : 16
3434 steps :
3535 -
3636 name : Checkout
37- uses : actions/checkout@v2
37+ uses : actions/checkout@v3
3838 - name : Show Env
3939 run : env
4040 -
@@ -89,10 +89,11 @@ jobs:
8989 fi
9090
9191 echo "TRAVIS_TAG = $TRAVIS_TAG"
92-
92+
93+ TRAVIS_TAG=$(echo $GITHUB_REF | awk -F '/' '{ print $3}')
9394 if [[ "$TRAVIS_TAG" =~ ^v[0-9\.-]*$ ]]; then
9495 IMAGE=${{ env.DEFAULT_IMAGE }}
95- PUSH=" true"
96+ PUSH=true
9697 VERSION=${TRAVIS_TAG:1}
9798 STABLE_VERSION=`echo ${VERSION} | sed -r 's/^([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)$/\1.\2/'`
9899
@@ -107,9 +108,9 @@ jobs:
107108 else
108109 IMAGE=${{ env.DEV_IMAGE }}
109110 if [[ "$TRAVIS_TAG" == *"dev"* || "$TRAVIS_TAG" == *"beta"* ]]; then
110- PUSH=" true"
111+ PUSH=true
111112 else
112- PUSH=" false"
113+ PUSH=false
113114 fi
114115 VERSION=${TRAVIS_TAG}
115116 TAGS=$(echo $TAGS | sed 's!${{ env.DEFAULT_IMAGE}}!${{ env.DEV_IMAGE }}!')
@@ -119,11 +120,17 @@ jobs:
119120 fi
120121
121122 echo $TAGS
123+ echo "tags=$TAGS" >> $GITHUB_OUTPUT
124+ echo "push=$PUSH" >> $GITHUB_OUTPUT
125+ echo "version=$TRAVIS_TAG" >> $GITHUB_OUTPUT
126+ echo "buildVersion=$VERSION" >> $GITHUB_OUTPUT
127+
128+ cat $GITHUB_OUTPUT
122129
123- echo "::set-output name=tags::$TAGS"
124- echo "::set-output name=push::$PUSH"
125- echo "::set-output name=version::$TRAVIS_TAG"
126- echo "::set-output name=buildVersion::$VERSION"
130+ # echo "::set-output name=tags::$TAGS"
131+ # echo "::set-output name=push::$PUSH"
132+ # echo "::set-output name=version::$TRAVIS_TAG"
133+ # echo "::set-output name=buildVersion::$VERSION"
127134 -
128135 name : Login to DockerHub
129136 uses : docker/login-action@v1
@@ -150,6 +157,102 @@ jobs:
150157
151158 tags : ${{ steps.nrVersion.outputs.tags }}
152159
160+ debian :
161+ env :
162+ # Setting the defaults up front
163+ LATEST_NODE : 16
164+ DEFAULT_IMAGE : nodered/node-red
165+ DEV_IMAGE : nodered/node-red-dev
166+ runs-on : ubuntu-latest
167+
168+ steps :
169+ - name : Checkout
170+ uses : actions/checkout@v3
171+ - name : Setup QEMU
172+ uses : docker/setup-qemu-action@v1
173+ - name : Setup Docker buildx
174+ uses : docker/setup-buildx-action@v1
175+ - name : Login to DockerHub
176+ uses : docker/login-action@v1
177+ with :
178+ username : ${{ secrets.DOCKERHUB_USERNAME }}
179+ password : ${{ secrets.DOCKERHUB_TOKEN }}
180+ - name : Get Date
181+ id : date
182+ run : echo "::set-output name=date::$(date +'%Y-%m-%dT%H:%M:%SZ')"
183+ - name : Docker Metadata
184+ id : meta
185+ uses : docker/metadata-action@v4
186+ with :
187+ flavor : |
188+ latest=false
189+ images : |
190+ ${{ env.DEFAULT_IMAGE }}
191+ tags : |
192+ type=ref,event=branch
193+ type=semver,pattern={{version}}
194+
195+ - name : Get Node-RED Version
196+ id : nrVersion
197+ run : |
198+ TAGS=""
199+
200+ echo Original tags ${{ steps.meta.outputs.tags }}
201+
202+ if [[ ! -z "${{ github.event.inputs.version }}" ]]; then
203+ TRAVIS_TAG=${{ github.event.inputs.version }}
204+ else
205+ TRAVIS_TAG=$(echo $GITHUB_REF | awk -F '/' '{ print $3}')
206+ fi
207+
208+ if [[ "$TRAVIS_TAG" =~ ^v[0-9\.-]*$ ]]; then
209+ # release build
210+ IMAGE=${{ env.DEFAULT_IMAGE }}
211+ PUSH=true
212+ VERSION=${TRAVIS_TAG:1}
213+ STABLE_VERSION=`echo ${VERSION} | sed -r 's/^([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)$/\1.\2/'`
214+
215+ TAGS="$IMAGE:latest-debian,$IMAGE:$VERSION-debian,$IMAGE:STABLE_VERSION-debian"
216+
217+ else
218+ IMAGE=${{ env.DEV_IMAGE }}
219+ if [[ "$TRAVIS_TAG" == *"dev"* || "$TRAVIS_TAG" == *"beta"* ]]; then
220+ # beta build
221+ PUSH=true
222+ else
223+ PUSH=false
224+ fi
225+ VERSION=${TRAVIS_TAG}
226+
227+ TAGS="$IMAGE:$VERSION-debian"
228+
229+ fi
230+
231+ echo $TAGS
232+ echo "tags=$TAGS" >> $GITHUB_OUTPUT
233+ echo "push=$PUSH" >> $GITHUB_OUTPUT
234+ echo "version=$TRAVIS_TAG" >> $GITHUB_OUTPUT
235+ echo "buildVersion=$VERSION" >> $GITHUB_OUTPUT
236+
237+ cat $GITHUB_OUTPUT
238+
239+ - name : Build and push
240+ id : build-push
241+ uses : docker/build-push-action@v2
242+ with :
243+ context : .
244+ platforms : linux/amd64, linux/arm64, linux/arm/v7
245+ file : .docker/Dockerfile.debian
246+ push : ${{ steps.nrVersion.outputs.push }}
247+ build-args : |
248+ NODE_VERSION=${{ env.LATEST_NODE }}
249+ BUILD_DATE=${{ steps.date.outputs.date }}
250+ BUILD_REF=${{ env.GITHUB.SHA }}
251+ TAG_SUFFIX=-debian
252+ NODE_RED_VERSION=${{ steps.nrVersion.outputs.version }}
253+ BUILD_VERSION=${{ steps.nrVersion.outputs.buildVersion }}
254+ tags : ${{ steps.nrVersion.outputs.tags }}
255+
153256 # -
154257 # name: Sign Image
155258 # run: |
@@ -171,3 +274,5 @@ jobs:
171274 # echo "Not signing $TAG"
172275 # fi
173276 # done
277+
278+
0 commit comments