Skip to content

Nightly - Check

Nightly - Check #210

Workflow file for this run

#
# 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: Nightly - Check
on:
schedule:
- cron: '0 20 */1 * *' # once a day. UTC time
workflow_dispatch:
env:
MAVEN_OPTS: -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false -Dmaven.wagon.http.retryHandler.class=standard -Dmaven.wagon.http.retryHandler.count=3 -Dcheckstyle.skip=true
CACHE_PREFIX: shardingsphere
jobs:
check-spotbugs:
if: (github.repository == 'apache/shardingsphere')
name: Check - SpotBugs
runs-on: ubuntu-latest
timeout-minutes: 60
steps:
- uses: actions/checkout@v3
- uses: actions/cache@v3
with:
path: ~/.m2/repository
key: ${{ env.CACHE_PREFIX }}-maven-third-party-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ env.CACHE_PREFIX }}-maven-third-party-
- name: Run SpotBugs
run: ./mvnw clean install spotbugs:check -T1C
check-and-report-sonarcloud:
if: (github.repository == 'apache/shardingsphere')
name: Check - SonarCloud
runs-on: ubuntu-latest
timeout-minutes: 40
steps:
- uses: actions/checkout@v3
- uses: actions/setup-java@v3
with:
java-version: 11
distribution: 'temurin'
- uses: actions/cache@v3
with:
path: ~/.sonar/cache
key: ${{ runner.os }}-sonar
restore-keys: ${{ runner.os }}-sonar
- uses: actions/cache@v3
with:
path: ~/.m2/repository
key: ${{ env.CACHE_PREFIX }}-maven-third-party-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ env.CACHE_PREFIX }}-maven-third-party-
- name: Analyze with SonarCloud
env:
MAVEN_OPTS: "-XX:+UseG1GC -XX:InitialHeapSize=2g -XX:MaxHeapSize=6g -XX:+UseStringDeduplication"
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONARCLOUD_TOKEN }}
run: ./mvnw -B clean verify org.sonarsource.scanner.maven:sonar-maven-plugin:sonar -Dsonar.projectKey=apache_shardingsphere -Dmaven.javadoc.skip=true -Drat.skip=true -Djacoco.skip=true -DskipTests
jacoco-coverage-report-sonarcloud:
if: (github.repository == 'apache/shardingsphere')
name: Coverage - SonarCloud
runs-on: ubuntu-latest
timeout-minutes: 40
steps:
- uses: actions/checkout@v3
- uses: actions/setup-java@v3
with:
java-version: 11
distribution: 'temurin'
- uses: actions/cache@v3
with:
path: ~/.sonar/cache
key: ${{ runner.os }}-sonar
restore-keys: ${{ runner.os }}-sonar
- uses: actions/cache@v3
with:
path: ~/.m2/repository
key: ${{ env.CACHE_PREFIX }}-maven-third-party-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ env.CACHE_PREFIX }}-maven-third-party-
- name: Aggregate jacoco coverage report
run:
./mvnw clean verify -Dmaven.javadoc.skip=true -B -V -Pcoverage
- name: Generate jacoco coverage to SonarCloud
env:
MAVEN_OPTS: "-XX:+UseG1GC -XX:InitialHeapSize=2g -XX:MaxHeapSize=6g -XX:+UseStringDeduplication"
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONARCLOUD_TOKEN }}
run: ./mvnw -B sonar:sonar -Dsonar.login=${SONAR_TOKEN} -Dsonar.projectKey=apache_shardingsphere -Dsonar.coverage.jacoco.xmlReportPaths=report/target/site/jacoco-aggregate/jacoco.xml -Dmaven.javadoc.skip=true -Drat.skip=true
checkstyle-report-sonarcloud:
if: (github.repository == 'apache/shardingsphere')
name: Checkstyle - SonarCloud
runs-on: ubuntu-latest
timeout-minutes: 45
steps:
- uses: actions/checkout@v3
- uses: actions/setup-java@v3
with:
java-version: 11
distribution: 'temurin'
- uses: actions/cache@v3
with:
path: ~/.sonar/cache
key: ${{ runner.os }}-sonar
restore-keys: ${{ runner.os }}-sonar
- uses: actions/cache@v3
with:
path: ~/.m2/repository
key: ${{ env.CACHE_PREFIX }}-maven-third-party-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ env.CACHE_PREFIX }}-maven-third-party-
- name: Aggregate checkstyle report
run:
./mvnw clean verify checkstyle:checkstyle-aggregate
- name: Upload checkstyle report to SonarCloud
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONARCLOUD_TOKEN }}
run: ./mvnw -B sonar:sonar -Dsonar.projectKey=apache_shardingsphere -Dsonar.java.checkstyle.reportPaths=target/checkstyle-result.xml
check-dead-links:
if: (github.repository == 'apache/shardingsphere')
name: Check - Dead Links
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@v3
- run: sudo npm install -g [email protected]
- name: Check dead link
run: |
IGNORED_PATH_LIST=("./docs/document/themes" "./docs/community/content/powered-by" "./docs/blog/content/material" "./docs/blog/themes")
ignore_current_file=false
for file in $(find . -name "*.md"); do
for ignored_path in ${IGNORED_PATH_LIST[@]}
do
if [[ $file =~ $ignored_path ]]; then
ignore_current_file=true
break
fi
done
if [[ $ignore_current_file == true ]]; then
ignore_current_file=false
continue
fi
echo "Checking $file"
markdown-link-check -c .github/workflows/resources/linkcheck/markdown-link-check.json -q "$file"
done
check-codeql:
if: (github.repository == 'apache/shardingsphere')
name: Check - CodeQL
runs-on: ubuntu-latest
timeout-minutes: 45
permissions:
actions: read
contents: read
security-events: write
steps:
- uses: actions/checkout@v3
- uses: actions/setup-java@v3
with:
java-version: 11
distribution: 'temurin'
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
with:
languages: java
- uses: actions/cache@v3
with:
path: ~/.m2/repository
key: ${{ env.CACHE_PREFIX }}-maven-third-party-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ env.CACHE_PREFIX }}-maven-third-party-
- name: Install Project
run: ./mvnw clean install -DskipTests -Dmaven.javadoc.skip=true -Drat.skip=true
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
with:
category: "/language:java"
check-stale:
if: (github.repository == 'apache/shardingsphere')
name: Check - Stale Issues
runs-on: ubuntu-latest
timeout-minutes: 10
permissions:
issues: write
steps:
- uses: actions/stale@v8
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
days-before-issue-stale: 30
days-before-pr-stale: 30
days-before-close: -1
stale-issue-label: "stale"