You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwhisk.apache.org by dg...@apache.org on 2023/01/20 14:17:31 UTC
[openwhisk-runtime-nodejs] 02/02: Add logic to tag and push images
This is an automated email from the ASF dual-hosted git repository.
dgrove pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openwhisk-runtime-nodejs.git
commit 0640aeddbcb249f9f5cf65ecad78c91853054ecc
Author: David Grove <gr...@us.ibm.com>
AuthorDate: Mon Jan 16 21:35:53 2023 -0500
Add logic to tag and push images
---
.github/workflows/ci.yaml | 46 ++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 46 insertions(+)
diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml
index 91b7b48..9ea0255 100644
--- a/.github/workflows/ci.yaml
+++ b/.github/workflows/ci.yaml
@@ -17,22 +17,35 @@
#
name: Continuous Integration
+
on:
push:
branches: [ master ]
+ tags: [ '*' ]
pull_request:
branches: [ master ]
types: [ opened, synchronize, reopened ]
+ schedule:
+ - cron: '30 1 * * 1,3,5'
+
+permissions: read-all
+
jobs:
ci:
runs-on: ubuntu-22.04
+ env:
+ PUSH_NIGHTLY: ${{ (github.event_name == 'push' || github.event_name == 'schedule') && github.ref == 'refs/heads/master' }}
+ PUSH_RELEASE: ${{ github.event_name == 'push' && github.ref_type == 'tag' }}
steps:
+ # Checkout just this repo and run scanCode before we do anything else
- name: Checkout runtime repo
uses: actions/checkout@v3
with:
path: runtime
- name: Scan Code
uses: apache/openwhisk-utilities/scancode@master
+
+ # Install core OpenWhisk artifacts needed to build/test anything else
- name: Checkout OpenWhisk core repo
uses: actions/checkout@v3
with:
@@ -48,12 +61,45 @@ jobs:
run: |
./gradlew :tests:compileTestScala
./gradlew install
+
+ # Build this repository
- name: Build Runtime
working-directory: runtime
run: |
./gradlew distDocker
+
+ # Test this repository
- name: Test Runtime
working-directory: runtime
run: |
./gradlew :tests:checkScalafmtAll
./gradlew :tests:test
+
+ # Conditionally publish runtime images to DockerHub
+ # Important: naming convention for release tags is runtime@version
+ - name: Docker Login
+ if: ${{ env.PUSH_NIGHTLY == 'true' || env.PUSH_RELEASE == 'true' }}
+ uses: docker/login-action@v2
+ with:
+ username: ${{ secrets.DOCKERHUB_USER_OPENWHISK }}
+ password: ${{ secrets.DOCKERHUB_TOKEN_OPENWHISK }}
+ - name: Push Nightly Images
+ if: ${{ env.PUSH_NIGHTLY == 'true' }}
+ working-directory: runtime
+ run: |
+ SHORT_COMMIT=$(git rev-parse --short "$GITHUB_SHA")
+ ./gradlew :core:nodejs14Action:distDocker -PdockerRegistry=docker.io -PdockerImagePrefix=openwhisk -PdockerImageTag=nightly
+ ./gradlew :core:nodejs14Action:distDocker -PdockerRegistry=docker.io -PdockerImagePrefix=openwhisk -PdockerImageTag=$SHORT_COMMIT
+ ./gradlew :core:nodejs16Action:distDocker -PdockerRegistry=docker.io -PdockerImagePrefix=openwhisk -PdockerImageTag=nightly
+ ./gradlew :core:nodejs16Action:distDocker -PdockerRegistry=docker.io -PdockerImagePrefix=openwhisk -PdockerImageTag=$SHORT_COMMIT
+ ./gradlew :core:nodejs18Action:distDocker -PdockerRegistry=docker.io -PdockerImagePrefix=openwhisk -PdockerImageTag=nightly
+ ./gradlew :core:nodejs18Action:distDocker -PdockerRegistry=docker.io -PdockerImagePrefix=openwhisk -PdockerImageTag=$SHORT_COMMIT
+ ./gradlew :core:typescript37Action:distDocker -PdockerRegistry=docker.io -PdockerImagePrefix=openwhisk -PdockerImageTag=nightly
+ ./gradlew :core:typescript37Action:distDocker -PdockerRegistry=docker.io -PdockerImagePrefix=openwhisk -PdockerImageTag=$SHORT_COMMIT
+ - name: Push Release Images
+ if: ${{ env.PUSH_RELEASE == 'true' }}
+ working-directory: runtime
+ run: |
+ RUNTIME_NAME=${GITHUB_REF_NAME%@*}
+ IMAGE_TAG=${GITHUB_REF_NAME##*@}
+ ./gradlew :core:$RUNTIME_NAME:distDocker -PdockerRegistry=docker.io -PdockerImagePrefix=openwhisk -PdockerImageTag=$IMAGE_TAG