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-rust.git
The following commit(s) were added to refs/heads/master by this push: new 185b1fb define GitHub action for CI (#42) 185b1fb is described below commit 185b1fb62f1405dd4a2d20022f46a065bd177bfc Author: David Grove <dgrove-...@users.noreply.github.com> AuthorDate: Thu Feb 16 17:56:19 2023 -0500 define GitHub action for CI (#42) --- .github/workflows/ci.yaml | 99 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml new file mode 100644 index 0000000..73a904b --- /dev/null +++ b/.github/workflows/ci.yaml @@ -0,0 +1,99 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +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: + repository: apache/openwhisk + path: core + - name: Setup Java + uses: actions/setup-java@v3 + with: + distribution: 'temurin' + java-version: '11' + - name: Compile and Install Core OpenWhisk + working-directory: core + 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:rust1.34:distDocker -PdockerRegistry=docker.io -PdockerImagePrefix=openwhisk -PdockerImageTag=nightly + ./gradlew :core:rust1.34:distDocker -PdockerRegistry=docker.io -PdockerImagePrefix=openwhisk -PdockerImageTag=$SHORT_COMMIT + - name: Push Release Images + if: ${{ env.PUSH_RELEASE == 'true' }} + working-directory: runtime + run: | + RUNTIME=${GITHUB_REF_NAME%@*} + IMAGE_TAG=${GITHUB_REF_NAME##*@} + ./gradlew :core:$RUNTIME:distDocker -PdockerRegistry=docker.io -PdockerImagePrefix=openwhisk -PdockerImageTag=$IMAGE_TAG