blob: 1f3ca70d27cb8f41d4fd941da09ac029c8fdbf22 [file] [log] [blame]
# 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: Submarine
# Trigger the workflow on push or pull request
on: [push, pull_request]
env:
VERSION: "0.8.0-SNAPSHOT"
BUILD_FLAG: "clean install -ntp -DskipTests -am"
TEST_FLAG: "test -DskipRat -ntp"
jobs:
generate-k8s-versions-array:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- id: set-matrix
run: |
echo "::set-output name=matrix::[\"v1.18.20\", \"v1.19.16\", \"v1.20.15\", \"v1.21.10\"]"
submarine-operator-verify-codegen:
runs-on: ubuntu-latest
timeout-minutes: 10
env:
working-directory: "github.com/apache/submarine"
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
path: ${{ env.working-directory }}
- name: Setup Golang 1.17.2
uses: actions/setup-go@v2
with:
go-version: "1.17.2"
- name: Check golang version
working-directory: ${{ env.working-directory }}/submarine-cloud-v2
run: go version
- name: Install Dependencies
working-directory: ${{ env.working-directory }}/submarine-cloud-v2
run: go mod vendor
- name: Verify Codegen
working-directory: ${{ env.working-directory }}/submarine-cloud-v2
run: ./hack/verify-codegen.sh
submarine-operator-e2e-test:
needs: generate-k8s-versions-array
runs-on: ubuntu-latest
timeout-minutes: 60
strategy:
matrix:
k8s-version: ${{fromJSON(needs.generate-k8s-versions-array.outputs.matrix)}}
fail-fast: false
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 50
- name: Set up JDK 1.8
uses: actions/setup-java@v1
with:
java-version: "1.8"
- name: Set up Maven 3.6.3
uses: stCarolas/setup-maven@v4
with:
maven-version: 3.6.3
- name: Setup Golang 1.17.2
uses: actions/setup-go@v2
with:
go-version: "1.17.2"
- uses: actions/cache@v2
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-maven-
- name: Check version
run: |
mvn --version
java -version
go version
helm version
kind version
- name: Create kind cluster
run: kind create cluster --config ./.github/config/kind-config-kind.yaml --wait 3m --image kindest/node:${{ matrix.k8s-version }}
- name: Download Istio 1.13.0
run: |
curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.13.0 sh -
cd istio-1.13.0
echo "$PWD/bin" >> $GITHUB_PATH
- name: Install Istio
run: istioctl install -y --set values.global.proxy.resources.requests.cpu=10m
- name: Show K8s cluster information
run: |
kubectl cluster-info
kubectl version
kubectl get pods -n kube-system
echo "current-context:" $(kubectl config current-context)
echo "environment-kubeconfig:" ${KUBECONFIG}
- name: Build Image locally
run: .github/scripts/build-image-locally.sh
- name: Install Golang Dependencies
working-directory: submarine-cloud-v2
run: go mod vendor
- name: Install Helm Dependencies
run: |
sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/
sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.mysqld
helm install --wait --set dev=true --set storageClass.provisioner=rancher.io/local-path --set storageClass.volumeBindingMode=WaitForFirstConsumer submarine ./helm-charts/submarine
- name: Run end-to-end test
working-directory: submarine-cloud-v2
run: go test -v -timeout 30m ./test/e2e
- name: Failure status
run: |
kubectl describe nodes
kubectl get all -A
kubectl get events -A --sort-by='{.lastTimestamp}'
kubectl describe submarine -A
if: ${{ failure() }}
- name: Delete temporary build artifacts before caching
run: |
#Never cache local artifacts
rm -rf ~/.m2/repository/org/apache/submarine
if: always()
submarine-operator-v3-e2e-test:
needs: generate-k8s-versions-array
runs-on: ubuntu-latest
timeout-minutes: 60
strategy:
matrix:
k8s-version: ${{fromJSON(needs.generate-k8s-versions-array.outputs.matrix)}}
fail-fast: false
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 50
- name: Set up JDK 1.8
uses: actions/setup-java@v1
with:
java-version: "1.8"
- name: Set up Maven 3.6.3
uses: stCarolas/setup-maven@v4
with:
maven-version: 3.6.3
- name: Setup Golang 1.17.2
uses: actions/setup-go@v2
with:
go-version: "1.17.2"
- uses: actions/cache@v2
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-maven-
- name: Check version
run: |
mvn --version
java -version
go version
helm version
kind version
- name: Create kind cluster
run: kind create cluster --config ./.github/config/kind-config-kind.yaml --wait 3m --image kindest/node:${{ matrix.k8s-version }}
- name: Download Istio 1.13.0
run: |
curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.13.0 sh -
cd istio-1.13.0
echo "$PWD/bin" >> $GITHUB_PATH
- name: Install Istio
run: istioctl install -y --set values.global.proxy.resources.requests.cpu=10m
- name: Show K8s cluster information
run: |
kubectl cluster-info
kubectl version
kubectl get pods -n kube-system
echo "current-context:" $(kubectl config current-context)
echo "environment-kubeconfig:" ${KUBECONFIG}
- name: Build Image locally
run: .github/scripts/build-image-locally-v3.sh
- name: Install Golang Dependencies
working-directory: submarine-cloud-v3
run: go mod vendor
- name: Install Submarine operator
working-directory: submarine-cloud-v3
# run: make deploy
# GA env variable VERSION overrides the variable in makefile,
# which results in the wrong image name.
# Running commands manually instead.
run: |
cd config/manager
kustomize edit set image controller=apache/submarine:operator-0.8.0-SNAPSHOT
kustomize build ../default | kubectl apply -f -
- name: Install Helm Dependencies
run: |
sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/
sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.mysqld
helm install --wait --set dev=true --set storageClass.provisioner=rancher.io/local-path --set storageClass.volumeBindingMode=WaitForFirstConsumer submarine ./helm-charts/submarine -n submarine-cloud-v3-system
- name: Run end-to-end test
working-directory: submarine-cloud-v3
run: go test ./controllers/ -v -ginkgo.v
- name: Failure status
run: |
kubectl describe nodes
kubectl get all -A
kubectl get events -A --sort-by='{.lastTimestamp}'
kubectl logs -l control-plane=controller-manager -n submarine-cloud-v3-system
kubectl logs -l app=notebook-controller -n submarine-cloud-v3-system
kubectl logs -l control-plane=kubeflow-training-operator -n submarine-cloud-v3-system
kubectl describe submarine -A
if: ${{ failure() }}
- name: Delete temporary build artifacts before caching
run: |
#Never cache local artifacts
rm -rf ~/.m2/repository/org/apache/submarine
if: always()
submarine-e2e:
runs-on: ubuntu-latest
timeout-minutes: 60
services:
mysql:
image: mysql:5.7
env:
MYSQL_ROOT_PASSWORD: "password"
ports:
- 3306:3306
# wait until mysql is health
options: --health-cmd "mysqladmin ping" --health-interval 10s --health-timeout 10s --health-retries 10
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 50
- name: Cache jacoco.exec
uses: actions/cache@v2
with:
path: ./submarine-test/test-e2e/target/jacoco.exec
key: ${{ runner.os }}-docker-${{ github.sha }}
- name: Set up JDK 1.8
uses: actions/setup-java@v1
with:
java-version: "1.8"
- name: Set up Maven 3.6.3
uses: stCarolas/setup-maven@v4
with:
maven-version: 3.6.3
- name: Check version
run: |
mvn --version
java -version
chromedriver --version
python3 -V
- name: Prepare default mysql-data
run: |
pip install mysql-connector-python
python3 ./dev-support/database/init-database.py
- name: Build with Maven
run: |
echo ">>> mvn ${BUILD_FLAG} -B"
mvn ${BUILD_FLAG} -B
- name: Test
env:
TEST_FLAG: "verify -DskipRat -ntp"
TEST_MODULES: "-pl :submarine-test-e2e"
run: |
echo ">>> mvn ${TEST_FLAG} ${TEST_MODULES} -B"
mvn ${TEST_FLAG} ${TEST_MODULES} -B
submarine-k8s:
needs: generate-k8s-versions-array
runs-on: ubuntu-latest
timeout-minutes: 60
strategy:
matrix:
k8s-version: ${{fromJson(needs.generate-k8s-versions-array.outputs.matrix)}}
fail-fast: false
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 50
- name: Cache jacoco.exec
uses: actions/cache@v2
with:
path: ./submarine-test/test-k8s/target/jacoco.exec
key: ${{ runner.os }}-docker-${{ github.sha }}
- name: Set up JDK 1.8
uses: actions/setup-java@v1
with:
java-version: "1.8"
- name: Set up Maven 3.6.3
uses: stCarolas/setup-maven@v4
with:
maven-version: 3.6.3
- uses: actions/cache@v2
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-maven-
- name: Check version
run: |
mvn --version
java -version
helm version
kind version
- name: Create kind cluster
run: kind create cluster --config ./.github/config/kind-config-kind.yaml --wait 3m --image kindest/node:${{ matrix.k8s-version }}
- name: Download Istio 1.13.0
run: |
curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.13.0 sh -
cd istio-1.13.0
echo "$PWD/bin" >> $GITHUB_PATH
- name: Install Istio
run: istioctl install -y --set values.global.proxy.resources.requests.cpu=10m
- name: Show K8s cluster information
run: |
kubectl cluster-info
kubectl version
kubectl get pods -n kube-system
echo "current-context:" $(kubectl config current-context)
echo "environment-kubeconfig:" ${KUBECONFIG}
- name: Build with Maven
run: |
echo ">>> mvn ${BUILD_FLAG} -B"
mvn ${BUILD_FLAG} -B
- name: Build Image locally
run: .github/scripts/build-image-locally.sh
- name: Start submarine
run: bash ./.github/scripts/start-submarine.sh
- name: Test
env:
TEST_FLAG: "verify -DskipRat -ntp"
TEST_MODULES: "-pl :submarine-test-k8s"
run: |
echo ">>> mvn ${TEST_FLAG} ${TEST_MODULES} -B"
mvn ${TEST_FLAG} ${TEST_MODULES} -B
- name: Failure status
run: |
kubectl describe nodes
kubectl get pods
kubectl -n default get events --sort-by='{.lastTimestamp}'
if: ${{ failure() }}
- name: Delete temporary build artifacts before caching
run: |
#Never cache local artifacts
rm -rf ~/.m2/repository/org/apache/submarine
if: always()
submarine-commons-runtime:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 50
- name: Cache jacoco.exec
uses: actions/cache@v2
with:
path: ./submarine-commons/commons-runtime/target/jacoco.exec
key: ${{ runner.os }}-docker-${{ github.sha }}
- name: Set up JDK 1.8
uses: actions/setup-java@v1
with:
java-version: "1.8"
- name: Set up Maven 3.6.3
uses: stCarolas/setup-maven@v4
with:
maven-version: 3.6.3
- name: Check version
run: |
mvn --version
java -version
- name: Build
env:
MODULES: "-pl :submarine-commons-runtime"
run: |
echo ">>> mvn $BUILD_FLAG $MODULES -B"
mvn $BUILD_FLAG $MODULES -B
- name: Test
env:
TEST_MODULES: "-pl :submarine-commons-runtime"
run: |
echo ">>> mvn $TEST_FLAG $TEST_MODULES -B"
mvn $TEST_FLAG $TEST_MODULES -B
submarine-client:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 50
- name: Cache jacoco.exec
uses: actions/cache@v2
with:
path: ./submarine-client/target/jacoco.exec
key: ${{ runner.os }}-docker-${{ github.sha }}
- name: Set up JDK 1.8
uses: actions/setup-java@v1
with:
java-version: "1.8"
- name: Set up Maven 3.6.3
uses: stCarolas/setup-maven@v4
with:
maven-version: 3.6.3
- name: Check version
run: |
mvn --version
java -version
- name: Build
env:
MODULES: "-pl :submarine-client"
run: |
echo ">>> mvn $BUILD_FLAG $MODULES -B"
mvn $BUILD_FLAG $MODULES -B
- name: Test
env:
TEST_MODULES: "-pl :submarine-client"
run: |
echo ">>> mvn $TEST_FLAG $TEST_MODULES -B"
mvn $TEST_FLAG $TEST_MODULES -B
submarine-server:
runs-on: ubuntu-latest
timeout-minutes: 30
services:
mysql:
image: mysql:5.7
env:
MYSQL_ROOT_PASSWORD: "password"
ports:
- 3306:3306
# wait until mysql is health
options: --health-cmd "mysqladmin ping" --health-interval 10s --health-timeout 10s --health-retries 10
minio:
image: bitnami/minio:2022.2.24
env:
MINIO_ACCESS_KEY: "submarine_minio"
MINIO_SECRET_KEY: "submarine_minio"
MINIO_DEFAULT_BUCKETS: "submarine"
ports:
- 9000:9000
# wait until minio is health
options: --health-cmd "curl http://localhost:9000/minio/health/live" --health-interval 10s --health-timeout 10s --health-retries 10
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 50
- name: Cache server-database jacoco.exec
uses: actions/cache@v2
with:
path: |
./submarine-server/server-database/target/jacoco.exec
key: ${{ runner.os }}-docker-${{ github.sha }}
- name: Cache server-core jacoco.exec
uses: actions/cache@v2
with:
path: |
./submarine-server/server-core/target/jacoco.exec
key: ${{ runner.os }}-docker-${{ github.sha }}
- name: Set up JDK 1.8
uses: actions/setup-java@v1
with:
java-version: "1.8"
- name: Set up Maven 3.6.3
uses: stCarolas/setup-maven@v4
with:
maven-version: 3.6.3
- name: Check version
run: |
mvn --version
java -version
- name: Prepare default mysql-data
run: |
python3 -V
sudo apt-get install python3-mysql.connector
python3 ./dev-support/database/init-database.py
- name: Build submarine-server-database
env:
MODULES: "-pl :submarine-server-database"
run: |
echo ">>> mvn $BUILD_FLAG $MODULES -B"
mvn $BUILD_FLAG $MODULES -B
- name: Test submarine-server-database
env:
TEST_MODULES: "-pl :submarine-server-database"
run: |
echo ">>> mvn $TEST_FLAG $TEST_MODULES -B"
mvn $TEST_FLAG $TEST_MODULES -B
- name: Build submarine-server-database
env:
MODULES: "-pl :submarine-server-core"
run: |
echo ">>> mvn $BUILD_FLAG $MODULES -B"
mvn $BUILD_FLAG $MODULES -B
- name: Test submarine-server-core
env:
TEST_MODULES: "-pl :submarine-server-core"
run: |
echo ">>> mvn $TEST_FLAG $TEST_MODULES -B"
mvn $TEST_FLAG $TEST_MODULES -B
submarine-workbench:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 50
- name: Set up Maven 3.6.3
uses: stCarolas/setup-maven@v4
with:
maven-version: 3.6.3
- name: Check version
run: |
mvn --version
- name: Maven Build
env:
MODULES: "-pl :submarine-workbench-web"
run: |
echo ">>> mvn $BUILD_FLAG $MODULES -B"
mvn $BUILD_FLAG $MODULES -B
- name: Test with chrome
working-directory: ./submarine-workbench/workbench-web
run: npm run test -- --no-watch --no-progress --browsers=ChromeHeadlessCI
- name: Test with firefox
working-directory: ./submarine-workbench/workbench-web
run: npm run test -- --no-watch --no-progress --browsers=FirefoxHeadless
submarine-workbench-v2:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 50
- uses: actions/setup-node@v3
with:
node-version: "14"
- name: Check version
run: node --version
- name: Install dependencies
working-directory: ./submarine-workbench-v2
run: yarn
- name: Run test
working-directory: ./submarine-workbench-v2
run: yarn test --run --coverage
submarine-submitter:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 50
- name: Cache submarine-server jacoco.exec
uses: actions/cache@v2
with:
path: |
./submarine-server/server-submitter/target/jacoco.exec
key: ${{ runner.os }}-docker-${{ github.sha }}
- name: Cache submitter-k8s jacoco.exec
uses: actions/cache@v2
with:
path: |
./submarine-server/server-submitter/submitter-k8s/target/jacoco.exec
key: ${{ runner.os }}-docker-${{ github.sha }}
- name: Set up JDK 1.8
uses: actions/setup-java@v1
with:
java-version: "1.8"
- name: Set up Maven 3.6.3
uses: stCarolas/setup-maven@v4
with:
maven-version: 3.6.3
- name: Check version
run: |
mvn --version
java -version
- name: Build
env:
MODULES: "-pl :submarine-server-submitter,:submarine-submitter-k8s"
run: |
echo ">>> mvn $BUILD_FLAG $MODULES -B"
mvn $BUILD_FLAG $MODULES -B
- name: Test
env:
# There is a `submarine-submitter-k8s` package under the `submarine-server-submitter` that also needs to be tested
TEST_MODULES: "-pl :submarine-server-submitter,:submarine-submitter-k8s"
run: |
echo ">>> mvn $TEST_FLAG $TEST_MODULES -B"
mvn $TEST_FLAG $TEST_MODULES -B
rat:
name: Check License
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-java@v1
with:
java-version: "1.8"
- run: mvn org.apache.rat:apache-rat-plugin:check
linter:
name: Check Style
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v2
- name: Set up JDK 1.8
uses: actions/setup-java@v1
with:
java-version: "1.8"
- name: Set up Maven 3.6.3
uses: stCarolas/setup-maven@v4
with:
maven-version: 3.6.3
- name: Setup Golang 1.16.2
uses: actions/setup-go@v2
with:
go-version: "1.16.2"
- uses: actions/setup-node@v3
with:
node-version: "14"
- name: Check version
run: |
mvn --version
java -version
go version
node --version
- uses: actions/cache@v2
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-maven-
- name: Java Style
if: always()
run: ./dev-support/style-check/lint-java.sh
- name: Scala Style
if: always()
run: ./dev-support/style-check/lint-scala.sh
- name: Angular Style
if: always()
run: ./dev-support/style-check/lint-angular.sh
- name: Go Style
if: always()
run: ./dev-support/style-check/lint-go.sh
- name: React Style
if: always()
working-directory: ./submarine-workbench-v2
run: |
yarn add prettier@^2.6.2
yarn checkformat
sonarcloud-and-codecov:
name: SonarCloud and Codecov
runs-on: ubuntu-latest
needs:
- submarine-e2e
- submarine-k8s
- submarine-submitter
- submarine-server
- submarine-client
- submarine-commons-runtime
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
- name: Cache Maven packages
uses: actions/cache@v1
with:
path: ~/.m2
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-m2
- name: Cache test-e2e data
uses: actions/cache@v2
with:
path: ./submarine-test/test-e2e/target/jacoco.exec
key: ${{ runner.os }}-docker-${{ github.sha }}
- name: Cache test-k8s data
uses: actions/cache@v2
with:
path: ./submarine-test/test-k8s/target/jacoco.exec
key: ${{ runner.os }}-docker-${{ github.sha }}
- name: Cache commons-cluster data
uses: actions/cache@v2
with:
path: ./submarine-commons/commons-cluster/target/jacoco.exec
key: ${{ runner.os }}-docker-${{ github.sha }}
- name: Cache commons-runtime data
uses: actions/cache@v2
with:
path: ./submarine-commons/commons-runtime/target/jacoco.exec
key: ${{ runner.os }}-docker-${{ github.sha }}
- name: Cache submarine-client data
uses: actions/cache@v2
with:
path: ./submarine-client/target/jacoco.exec
key: ${{ runner.os }}-docker-${{ github.sha }}
- name: Cache submarine-server-database data
uses: actions/cache@v2
with:
path: |
./submarine-server/server-database/target/jacoco.exec
key: ${{ runner.os }}-docker-${{ github.sha }}
- name: Cache submarine-server-core data
uses: actions/cache@v2
with:
path: |
./submarine-server/server-core/target/jacoco.exec
key: ${{ runner.os }}-docker-${{ github.sha }}
- name: Cache submarine-submitter data
uses: actions/cache@v2
with:
path: |
./submarine-server/server-submitter/target/jacoco.exec
key: ${{ runner.os }}-docker-${{ github.sha }}
- name: Cache submarine-submitter-k8s data
uses: actions/cache@v2
with:
path: |
./submarine-server/server-submitter/submitter-k8s/target/jacoco.exec
key: ${{ runner.os }}-docker-${{ github.sha }}
- name: Cache SonarCloud packages
uses: actions/cache@v1
with:
path: ~/.sonar/cache
key: ${{ runner.os }}-sonar
restore-keys: ${{ runner.os }}-sonar
- name: Set up JDK 1.8
uses: actions/setup-java@v1
with:
java-version: "1.8"
- name: Set up Maven 3.6.3
uses: stCarolas/setup-maven@v4
with:
maven-version: 3.6.3
- name: Build the project with JDK 8
run: mvn install -DskipTests
- name: Set up JDK 11
uses: actions/setup-java@v1
with:
java-version: 11
- name: Download artifacts
uses: actions/download-artifact@v2
with:
path: target/artifacts
- name: Calculate combined coverage
run: ./dev-support/cicd/coverage.sh
- name: Build and analyze with JDK 11 # sonar-maven-plugin only support JDK 11
if: github.repository == 'apache/submarine' && github.event_name == 'push' && github.ref == 'refs/heads/master'
run: mvn -B verify -DskipTests org.sonarsource.scanner.maven:sonar-maven-plugin:sonar -Dsonar.host.url=https://sonarcloud.io -Dsonar.organization=apache -Dsonar.projectKey=apache_submarine
env:
SONAR_TOKEN: ${{ secrets.SONARCLOUD_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Upload coverage report to Codecov
uses: codecov/codecov-action@v2
with:
files: ./target/coverage/all.xml
- name: Delete temporary build artifacts before caching
run: |
#Never cache local artifacts
rm -rf ~/.m2/repository/org/apache/submarine
if: always()