Skip to content

Fixed access to an exception error #7

Fixed access to an exception error

Fixed access to an exception error #7

Workflow file for this run

name: Main Branch Workflow
on:
push:
branches: [ "main" ]
paths-ignore:
- 'README.md'
- 'CODE_OF_CONDUCT.md'
- 'CONTRIBUTING.md'
- 'LICENSE'
- '.github/**'
- 'examples/**'
workflow_dispatch:
jobs:
build-jars:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
- name: Build with Gradle Wrapper
run: ./gradlew build --no-daemon
- name: Extract project name from Gradle
id: extract-name
run: |
PROJECT_NAME=$(./gradlew -q printProjectName --no-daemon)
echo "PROJECT_NAME=${PROJECT_NAME}" >> $GITHUB_ENV
- name: Extract version from Gradle
id: extract-version
run: |
VERSION=$(./gradlew -q printProjectVersion --no-daemon)
echo "VERSION=${VERSION}" >> $GITHUB_ENV
- name: Upload jars
uses: actions/upload-artifact@v4
with:
name: ${{ env.PROJECT_NAME }}-${{ env.VERSION }}-jars
path: build/libs/*.jar
- name: Upload JaCoCo test report
uses: actions/upload-artifact@v4
with:
name: ${{ env.PROJECT_NAME }}-${{ env.VERSION }}-test-report
path: build/reports/jacoco/jacocoRootReport/jacocoRootReport.xml
upload-codecov:
runs-on: ubuntu-latest
needs:
- build-jars
steps:
- uses: actions/checkout@v4
- name: Extract project name from Gradle
id: extract-name
run: |
PROJECT_NAME=$(./gradlew -q printProjectName --no-daemon)
echo "PROJECT_NAME=${PROJECT_NAME}" >> $GITHUB_ENV
- name: Extract version from Gradle
id: extract-version
run: |
VERSION=$(./gradlew -q printProjectVersion --no-daemon)
echo "VERSION=${VERSION}" >> $GITHUB_ENV
- name: Download JaCoCo test report
uses: actions/download-artifact@v4
with:
name: ${{ env.PROJECT_NAME }}-${{ env.VERSION }}-test-report
path: artifacts/
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: ./build/reports/jacoco/test/jacocoTestReport.xml
fail_ci_if_error: true
documentate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
- name: Documentate with Gradle Wrapper
run: ./gradlew documentate --no-daemon
- name: Deploy to GitHub Pages
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./build/dokka/htmlMultiModule
publish_branch: gh-pages
create-release:
runs-on: ubuntu-latest
needs:
- build-jars
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Extract project name from Gradle
id: extract_name
run: |
PROJECT_NAME=$(./gradlew -q printProjectName)
echo "PROJECT_NAME=${PROJECT_NAME}" >> $GITHUB_ENV
- name: Extract version from Gradle
id: get-version
run: |
VERSION=$(./gradlew -q printProjectVersion)
echo "VERSION=${VERSION}" >> $GITHUB_ENV
- name: Download jars
uses: actions/download-artifact@v4
with:
name: ${{ env.PROJECT_NAME }}-${{ env.VERSION }}-jars
path: artifacts/
- name: Release
uses: softprops/action-gh-release@v2
if: "!contains(env.VERSION, '-')"
with:
tag_name: ${{ env.VERSION }}
body_path: ./CHANGELOG.md
files: |
artifacts/*
publish:
runs-on: ubuntu-latest
needs:
- create-release
permissions:
contents: read
packages: write
steps:
- name: Checkout source
uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
- name: Configure Gradle
uses: gradle/gradle-build-action@v3
- name: Publish to GitHub Packages
run: ./gradlew publish --no-daemon
env:
PGP_PRIVATE_KEY: ${{ secrets.PGP_PRIVATE_KEY }}
PGP_PRIVATE_KEY_PASSWORD: ${{ secrets.PGP_PRIVATE_KEY_PASSWORD }}
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }}
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
GITHUB_REPO: ${{ github.repository }}
GITHUB_USERNAME: ${{ github.actor }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
dependency-submission:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
# Generates and submits a dependency graph, enabling Dependabot Alerts for all project dependencies.
# See: https://github.com/gradle/actions/blob/main/dependency-submission/README.md
- name: Generate and submit dependency graph
uses: gradle/actions/dependency-submission@af1da67850ed9a4cedd57bfd976089dd991e2582 # v4.0.0
generate-git-badges:
name: Generate Git Badges
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Output git info
id: git_info
run: |
function format_size { echo $(numfmt --to iec --suffix B $1); }
function format_number { LC_ALL=en_US.UTF-8 printf "%'d\n" $1; }
echo "file_count=$(format_number $(git ls-files | wc -l))" >> $GITHUB_OUTPUT
echo "lines_of_code=$(find . -type f -name "*.kt" -exec wc -l {} + | awk '{s+=$1} END {print s}')" >> $GITHUB_OUTPUT
git gc
echo "size=$(format_size $(($(git count-objects -v | grep 'size-pack: ' | sed 's/size-pack: //g' | tr -d '\n') * 1024)))" >> $GITHUB_OUTPUT
shell: bash
- name: Generate-Badge
uses: likespro/generate-badge@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
filename: |
(
"git-size"
"git-file-count"
"git-lines-of-code"
)
label: ("size" "files" "lines-of-code")
message: |
(
"${{ steps.git_info.outputs.size }}"
"${{ steps.git_info.outputs.file_count }}"
"${{ steps.git_info.outputs.lines_of_code }}"
)
namedLogo: ("git" "git" "git")
color: ("f1502f" "f1502f" "f1502f")