Skip to content

Commit

Permalink
ci(github): Add workflows for PR checks
Browse files Browse the repository at this point in the history
These are based on ORT's workflows.

Signed-off-by: Sebastian Schuberth <[email protected]>
  • Loading branch information
sschuberth committed Jul 12, 2024
1 parent f1aa55e commit 783c3c1
Show file tree
Hide file tree
Showing 3 changed files with 177 additions and 0 deletions.
67 changes: 67 additions & 0 deletions .commitlintrc.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
# Commitlint configuration.
# See: https://github.com/conventional-changelog/commitlint/blob/master/docs/reference-rules.md
---
parserPreset:
parserOpts:
headerPattern: '^(\w*)(?:\((.*)\))?!?: (.*)$'
breakingHeaderPattern: '^(\w*)(?:\((.*)\))?!: (.*)$'
headerCorrespondence: ['type', 'scope', 'subject']
noteKeywords: ['BREAKING CHANGE', 'BREAKING-CHANGE', '\[\d+\]:', 'Signed-off-by:']
revertPattern: '/^(?:Revert|revert:)\s"?([\s\S]+?)"?\s*This reverts commit (\w*)\./i'
revertCorrespondence: ['header', 'hash']
rules:
body-leading-blank:
- 2
- always
body-max-line-length:
- 2
- always
- 75
footer-leading-blank:
- 2
- always
header-max-length:
- 2
- always
- 75
scope-case:
- 0
subject-case:
- 1
- always
- - pascal-case
- sentence-case
- start-case
- upper-case
subject-empty:
- 2
- never
subject-full-stop:
- 2
- never
- .
type-case:
- 2
- always
- lower-case
type-empty:
- 2
- never
type-enum:
- 2
- always
- - build
- chore
- ci
- deps
- docs
- feat
- fix
- perf
- refactor
- revert
- style
- test
signed-off-by:
- 2
- always
64 changes: 64 additions & 0 deletions .github/workflows/build-and-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
name: Build and Test

on:
pull_request:
branches:
- main
push:
branches:
- main

env:
GRADLE_OPTS: -Dorg.gradle.daemon=false -Dkotest.assertions.multi-line-diff=unified

jobs:
build:
runs-on: ubuntu-22.04
steps:
- name: Checkout Repository
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
- name: Setup Gradle
uses: gradle/actions/setup-gradle@dbbdc275be76ac10734476cc723d82dfe7ec6eda # v3
with:
gradle-home-cache-cleanup: true
- name: Build all classes
run: ./gradlew classes
codeql-analysis:
needs: build
runs-on: ubuntu-22.04
permissions:
# Needed for SARIF scanning upload.
security-events: write
steps:
- name: Checkout Repository
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
- name: Initialize CodeQL
uses: github/codeql-action/init@b611370bb5703a7efb587f9d136a52ea24c5c38c # v3
with:
languages: java
tools: linked
- name: Setup Gradle
uses: gradle/actions/setup-gradle@dbbdc275be76ac10734476cc723d82dfe7ec6eda # v3
with:
gradle-home-cache-cleanup: true
- name: Build all classes
run: ./gradlew -Dorg.gradle.jvmargs=-Xmx1g classes
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@b611370bb5703a7efb587f9d136a52ea24c5c38c # v3
test:
needs: build
runs-on: ubuntu-22.04
steps:
- name: Checkout Repository
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
- name: Setup Gradle
uses: gradle/actions/setup-gradle@dbbdc275be76ac10734476cc723d82dfe7ec6eda # v3
with:
gradle-home-cache-cleanup: true
- name: Run tests
run: ./gradlew --scan test funTest
- name: Create Test Summary
uses: test-summary/action@31493c76ec9e7aa675f1585d3ed6f1da69269a86 # v2
with:
paths: "**/test-results/**/TEST-*.xml"
if: always()
46 changes: 46 additions & 0 deletions .github/workflows/static-analysis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: Static Analysis

on:
pull_request:
branches:
- main
push:
branches:
- main

env:
GRADLE_OPTS: -Dorg.gradle.daemon=false

jobs:
commit-lint:
runs-on: ubuntu-22.04
steps:
- name: Checkout Repository
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
with:
fetch-depth: 0
- name: Check Commit Messages
uses: wagoid/commitlint-github-action@7f0a61df502599e1f1f50880aaa7ec1e2c0592f2 # v6
with:
configFile: .commitlintrc.yml
detekt-issues:
runs-on: ubuntu-22.04
permissions:
# Needed for SARIF scanning upload.
security-events: write
steps:
- name: Checkout Repository
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
- name: Setup Gradle
uses: gradle/actions/setup-gradle@dbbdc275be76ac10734476cc723d82dfe7ec6eda # v3
with:
gradle-home-cache-cleanup: true
- name: Check for Detekt Issues
run: ./gradlew detekt
- name: Check for Detekt Issues with type resolution
run: ./gradlew detektMain detektTest detektFunTest
- name: Upload SARIF File
uses: github/codeql-action/upload-sarif@b611370bb5703a7efb587f9d136a52ea24c5c38c # v3
if: always() # Upload even if the previous step failed.
with:
sarif_file: build/reports/detekt/detekt.sarif

0 comments on commit 783c3c1

Please sign in to comment.