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 <gro...@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