Skip to content

Commit 0640aed

Browse files
committed
Add logic to tag and push images
1 parent 6b0a03f commit 0640aed

File tree

1 file changed

+46
-0
lines changed

1 file changed

+46
-0
lines changed

.github/workflows/ci.yaml

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,22 +17,35 @@
1717
#
1818

1919
name: Continuous Integration
20+
2021
on:
2122
push:
2223
branches: [ master ]
24+
tags: [ '*' ]
2325
pull_request:
2426
branches: [ master ]
2527
types: [ opened, synchronize, reopened ]
28+
schedule:
29+
- cron: '30 1 * * 1,3,5'
30+
31+
permissions: read-all
32+
2633
jobs:
2734
ci:
2835
runs-on: ubuntu-22.04
36+
env:
37+
PUSH_NIGHTLY: ${{ (github.event_name == 'push' || github.event_name == 'schedule') && github.ref == 'refs/heads/master' }}
38+
PUSH_RELEASE: ${{ github.event_name == 'push' && github.ref_type == 'tag' }}
2939
steps:
40+
# Checkout just this repo and run scanCode before we do anything else
3041
- name: Checkout runtime repo
3142
uses: actions/checkout@v3
3243
with:
3344
path: runtime
3445
- name: Scan Code
3546
uses: apache/openwhisk-utilities/scancode@master
47+
48+
# Install core OpenWhisk artifacts needed to build/test anything else
3649
- name: Checkout OpenWhisk core repo
3750
uses: actions/checkout@v3
3851
with:
@@ -48,12 +61,45 @@ jobs:
4861
run: |
4962
./gradlew :tests:compileTestScala
5063
./gradlew install
64+
65+
# Build this repository
5166
- name: Build Runtime
5267
working-directory: runtime
5368
run: |
5469
./gradlew distDocker
70+
71+
# Test this repository
5572
- name: Test Runtime
5673
working-directory: runtime
5774
run: |
5875
./gradlew :tests:checkScalafmtAll
5976
./gradlew :tests:test
77+
78+
# Conditionally publish runtime images to DockerHub
79+
# Important: naming convention for release tags is runtime@version
80+
- name: Docker Login
81+
if: ${{ env.PUSH_NIGHTLY == 'true' || env.PUSH_RELEASE == 'true' }}
82+
uses: docker/login-action@v2
83+
with:
84+
username: ${{ secrets.DOCKERHUB_USER_OPENWHISK }}
85+
password: ${{ secrets.DOCKERHUB_TOKEN_OPENWHISK }}
86+
- name: Push Nightly Images
87+
if: ${{ env.PUSH_NIGHTLY == 'true' }}
88+
working-directory: runtime
89+
run: |
90+
SHORT_COMMIT=$(git rev-parse --short "$GITHUB_SHA")
91+
./gradlew :core:nodejs14Action:distDocker -PdockerRegistry=docker.io -PdockerImagePrefix=openwhisk -PdockerImageTag=nightly
92+
./gradlew :core:nodejs14Action:distDocker -PdockerRegistry=docker.io -PdockerImagePrefix=openwhisk -PdockerImageTag=$SHORT_COMMIT
93+
./gradlew :core:nodejs16Action:distDocker -PdockerRegistry=docker.io -PdockerImagePrefix=openwhisk -PdockerImageTag=nightly
94+
./gradlew :core:nodejs16Action:distDocker -PdockerRegistry=docker.io -PdockerImagePrefix=openwhisk -PdockerImageTag=$SHORT_COMMIT
95+
./gradlew :core:nodejs18Action:distDocker -PdockerRegistry=docker.io -PdockerImagePrefix=openwhisk -PdockerImageTag=nightly
96+
./gradlew :core:nodejs18Action:distDocker -PdockerRegistry=docker.io -PdockerImagePrefix=openwhisk -PdockerImageTag=$SHORT_COMMIT
97+
./gradlew :core:typescript37Action:distDocker -PdockerRegistry=docker.io -PdockerImagePrefix=openwhisk -PdockerImageTag=nightly
98+
./gradlew :core:typescript37Action:distDocker -PdockerRegistry=docker.io -PdockerImagePrefix=openwhisk -PdockerImageTag=$SHORT_COMMIT
99+
- name: Push Release Images
100+
if: ${{ env.PUSH_RELEASE == 'true' }}
101+
working-directory: runtime
102+
run: |
103+
RUNTIME_NAME=${GITHUB_REF_NAME%@*}
104+
IMAGE_TAG=${GITHUB_REF_NAME##*@}
105+
./gradlew :core:$RUNTIME_NAME:distDocker -PdockerRegistry=docker.io -PdockerImagePrefix=openwhisk -PdockerImageTag=$IMAGE_TAG

0 commit comments

Comments
 (0)