Skip to content

Add a GitHub workflow to test plugin within SonarQube #4

Add a GitHub workflow to test plugin within SonarQube

Add a GitHub workflow to test plugin within SonarQube #4

Workflow file for this run

name: CI
on:
push:
branches: [main]
tags:
- "[0-9]+.[0-9]+.[0-9]+"
pull_request:
types: [opened, synchronize, reopened]
jobs:
test:
name: Lint and Test
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18.x, 20.x]
java-version: [11]
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- name: Use JDK ${{ matrix.java-version }}
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: ${{ matrix.java-version }}
- name: Install dependencies
run: yarn install --immutable
working-directory: eslint-plugin
- name: Lint eslint-plugin
run: yarn lint
working-directory: eslint-plugin
- name: Test eslint-plugin
run: yarn test:cov
working-directory: eslint-plugin
- name: Verify SonarQube plugin
run: mvn -e -B verify
working-directory: sonar-plugin
- name: SonarCloud Scan
uses: SonarSource/sonarcloud-github-action@master
if: |
(github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) &&
matrix.node-version == '20.x' &&
github.actor != 'dependabot[bot]'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
integration-test:
name: Integration test
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Use Node.js 20.x
uses: actions/setup-node@v4
with:
node-version: 20.x
- name: Use JDK 11
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 11
- name: Install dependencies
run: yarn install --immutable
working-directory: eslint-plugin
- name: Build SonarQube plugin
run: mvn -e -B package
working-directory: sonar-plugin
- name: Check SonarQube with the plugin
run: docker compose up --wait