blob: 87c9b5dffb73608bc1eb44622222486bce8f514d [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: deploy snapshot
on:
schedule:
- cron: '0 2 * * *'
workflow_dispatch:
env:
MAVEN_OPTS: -Xmx4g -Xms1g -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false -Dmaven.wagon.http.retryHandler.count=3
COVERALLS_TOKEN: ${{ secrets.COVERALLS_TOKEN }}
jobs:
build:
timeout-minutes: 180
runs-on: ubuntu-20.04
strategy:
matrix:
java: [ '1.8' ]
steps:
- uses: actions/checkout@v2
with:
persist-credentials: false
- name: Set up JDK ${{ matrix.java }}
uses: actions/setup-java@v1
with:
java-version: ${{ matrix.java }}
- name: Cache Maven Repository
uses: actions/cache@v2
with:
path: |
~/.m2/repository/
!~/.m2/repository/org/apache/servicecomb
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-m2
- name: Show the first log message
run: git log -n1
- name: Build and test
if: ${{ success() }}
run: ./mvnw clean install -B -Pjacoco -Pdocker coveralls:report -DrepoToken=${COVERALLS_TOKEN}
- name: Upload unit test results
if: ${{ failure() }}
uses: actions/upload-artifact@v2
with:
name: surefire-reports
path: ./**/target/surefire-reports/
if-no-files-found: ignore
- name: Verify demo
if: ${{ success() }}
run: ./mvnw clean verify -B -f demo -Pdemo -Pdocker -Ddocker.useColor=false -Ddocker.showLogs
- name: Verify Acceptance tests
if: ${{ success() }}
run: ./mvnw clean verify -B -f acceptance-tests -Pdemo -Pdocker -Ddocker.useColor=false -Ddocker.showLogs
deploy:
runs-on: ubuntu-20.04
strategy:
matrix:
java: [ '1.8' ]
needs: build
if: github.ref == 'refs/heads/master'
env:
NEXUS_DEPLOY_USERNAME: ${{ secrets.NEXUS_USER }}
NEXUS_DEPLOY_PASSWORD: ${{ secrets.NEXUS_PW }}
steps:
- uses: actions/checkout@v2
with:
persist-credentials: false
- name: Set up JDK ${{ matrix.java }}
uses: actions/setup-java@v1
with:
java-version: ${{ matrix.java }}
- name: Cache Maven Repository
uses: actions/cache@v2
with:
path: |
~/.m2/repository/
!~/.m2/repository/org/apache/servicecomb
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-m2
- name: Deploy to ASF Snapshots Repository
run: mvn clean deploy -B -Ddocker.skip -DskipTests --settings .github/asf-deploy-settings.xml