[#2061] Add contributors section to the README (#2062) #4
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This workflow executes the various RepoSense tests | |
name: Continuous Integration | |
on: | |
push: | |
branches-ignore: | |
- gh-pages | |
pull_request: | |
branches-ignore: | |
- gh-pages | |
env: | |
NODE_VER: '16.x' | |
JAVA_DISTRIBUTION: 'zulu' | |
JAVA_VER: 8 | |
jobs: | |
mainbuild: | |
name: ${{ matrix.os }} JDK 8 | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-20.04, ubuntu-22.04, macos-11, macos-12, windows-2019, windows-2022] | |
runs-on: ${{ matrix.os }} | |
env: | |
HOMEBREW_NO_AUTO_UPDATE: 1 # Prevent time-consuming brew update | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Set up JDK 1.8 | |
uses: actions/setup-java@v3 | |
with: | |
distribution: ${{ env.JAVA_DISTRIBUTION }} | |
java-version: ${{ env.JAVA_VER }} | |
- name: Verify Java version | |
run: echo "Actual JDK in use -- "; java -version | |
- name: Set up Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ env.NODE_VER }} | |
- name: Set up Gradle caching | |
uses: actions/cache@v3 | |
with: | |
path: | | |
$HOME/.gradle/caches | |
$HOME/.gradle/wrapper | |
key: ${{ matrix.os }}-gradle-${{ hashFiles('**/*.gradle*') }} | |
restore-keys: | | |
${{ matrix.os }}-gradle- | |
- name: Set up Node caching | |
uses: actions/cache@v3 | |
with: | |
path: $HOME/.npm | |
key: ${{ matrix.os }}-node-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ matrix.os }}-node- | |
- name: Grant execute permission for gradlew | |
if: ${{ runner.os != 'Windows' }} | |
run: chmod +x gradlew # Windows does not need this | |
- name: Run environmental checks | |
run: ./gradlew environmentalChecks | |
- name: Run linter | |
run: ./gradlew lintFrontend | |
- name: Build with Gradle | |
run: ./gradlew clean checkstyleAll test systemTest coverage | |
- name: Run code coverage | |
if: ${{ success() && ( matrix.os == 'ubuntu-20.04' || matrix.os == 'macos-11' || matrix.os == 'windows-2022' ) }} | |
uses: codecov/codecov-action@v3 | |
with: | |
directory: ${{ github.workspace }}/build/reports/jacoco/coverage | |
files: coverage.xml | |
fail_ci_if_error: true | |
- name: Build preview website (pull request) | |
if: ${{ success() && github.event_name == 'pull_request' && matrix.os == 'ubuntu-20.04' }} | |
run: | | |
git fetch --all && git config --global user.email "-" && git config --global user.name "-" && ./gradlew run -Dargs="--since d1" | |
sudo apt-get -y install graphviz | |
npm install -g markbind-cli | |
(cd docs && markbind build) | |
- name: Save PR number and HEAD commit (pull request) | |
if: ${{ success() && github.event_name == 'pull_request' && matrix.os == 'ubuntu-20.04' }} | |
run: | | |
mkdir -p ./pr | |
echo ${{ github.event.number }} > ./pr/NUMBER | |
echo ${{ github.event.pull_request.head.sha }} > ./pr/SHA | |
- name: Upload artifacts (pull request) | |
if: ${{ success() && github.event_name == 'pull_request' && matrix.os == 'ubuntu-20.04' }} | |
uses: actions/upload-artifact@v3 | |
with: | |
name: reposense-deployment | |
path: | | |
./reposense-report | |
./docs/_site | |
./pr | |
cypress: | |
name: Cypress frontend tests | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Set up JDK 1.8 | |
uses: actions/setup-java@v3 | |
with: | |
distribution: ${{ env.JAVA_DISTRIBUTION }} | |
java-version: ${{ env.JAVA_VER }} | |
- name: Verify Java version | |
run: echo "Actual JDK in use -- "; java -version | |
- name: Set up Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ env.NODE_VER }} | |
- name: Set up Gradle caching | |
uses: actions/cache@v3 | |
with: | |
path: | | |
$HOME/.gradle/caches | |
$HOME/.gradle/wrapper | |
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*') }} | |
restore-keys: | | |
${{ runner.os }}-gradle- | |
- name: Set up Node caching | |
uses: actions/cache@v3 | |
with: | |
path: $HOME/.npm | |
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-node- | |
- name: Grant execute permission for gradlew | |
run: chmod +x gradlew | |
- name: Set up environment | |
run: sudo apt-get install -y libgtk2.0-0 libnotify-dev libgconf-2-4 libnss3 libxss1 libasound2 | |
- name: Run frontend tests | |
run: ./gradlew frontendTest -Pci |