Skip to content

[#2196] Use git blame line info for aggregate blame author modified and date info #3856

[#2196] Use git blame line info for aggregate blame author modified and date info

[#2196] Use git blame line info for aggregate blame author modified and date info #3856

Workflow file for this run

# 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: '18.x'
JAVA_DISTRIBUTION: 'zulu'
JAVA_VER: 11
jobs:
mainbuild:
name: ${{ matrix.os }} JDK 11
strategy:
fail-fast: false
matrix:
# Deprecation Notice: MacOS 12 will be deprecated by the end of 2024
os: [ubuntu-20.04, ubuntu-22.04, macos-12, macos-13, 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 11
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: false
- 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 11
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