From 83928066172ef34de24ca301d922e127b0025eda Mon Sep 17 00:00:00 2001 From: Jan Klattenhoff Date: Wed, 25 Sep 2024 09:14:54 +0200 Subject: [PATCH] feat: add quality check workflow for code validation --- .gitea/workflows/sq.yml | 109 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 .gitea/workflows/sq.yml diff --git a/.gitea/workflows/sq.yml b/.gitea/workflows/sq.yml new file mode 100644 index 0000000..4a441ff --- /dev/null +++ b/.gitea/workflows/sq.yml @@ -0,0 +1,109 @@ +name: "Quality Check" + +on: + - push + - pull_request + +jobs: + oas: + name: "Validate OAS" + runs-on: "ubuntu-latest" + container: + image: "openjdk:21-jdk" + steps: + - name: "Checkout" + uses: actions/checkout@v3 + - uses: actions/cache@v3 + with: + path: | + ~/.gradle/caches + ~/.gradle/wrapper + key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} + restore-keys: | + ${{ runner.os }}-gradle- + - name: "Prepare Gradle" + run: gradle clean + - name: "Validate OAS Spec" + run: gradle validateSwagger + - name: "Stop Gradle" + run: gradle --stop + + linting: + name: "Linting" + runs-on: "ubuntu-latest" + container: + image: "openjdk:21-jdk" + steps: + - name: "Checkout" + uses: actions/checkout@v3 + - uses: actions/cache@v3 + with: + path: | + ~/.gradle/caches + ~/.gradle/wrapper + key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} + restore-keys: | + ${{ runner.os }}-gradle- + - name: "Prepare Gradle" + run: gradle clean + - name: "Generate OAS Boilerplate" + run: gradle generateSwaggerCode + - name: "Linting Main" + run: gradle checkstyleMain + - name: "Linting Test" + run: gradle checkstyleTest + - name: "Stop Gradle" + run: gradle --stop + + static: + name: "Static Analysis" + runs-on: "ubuntu-latest" + container: + image: "openjdk:21-jdk" + steps: + - name: "Checkout" + uses: actions/checkout@v3 + - uses: actions/cache@v3 + with: + path: | + ~/.gradle/caches + ~/.gradle/wrapper + key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} + restore-keys: | + ${{ runner.os }}-gradle- + - name: "Prepare Gradle" + run: gradle clean + - name: "Generate OAS Boilerplate" + run: gradle generateSwaggerCode + - name: "Static Analysis Main" + run: gradle spotbugsMain + - name: "Static Analysis Test" + run: gradle spotbugsTest + - name: "Stop Gradle" + run: gradle --stop + + test: + name: "Testing" + runs-on: "ubuntu-latest" + container: + image: "openjdk:21-jdk" + steps: + - name: "Checkout" + uses: actions/checkout@v3 + - uses: actions/cache@v3 + with: + path: | + ~/.gradle/caches + ~/.gradle/wrapper + key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} + restore-keys: | + ${{ runner.os }}-gradle- + - name: "Prepare Gradle" + run: gradle clean + - name: "Generate OAS Boilerplate" + run: gradle generateSwaggerCode + - name: "Run Tests" + run: gradle test + - name: "Stop Gradle" + run: gradle --stop +