Skip to content

Fix curl Dependencies #96

Fix curl Dependencies

Fix curl Dependencies #96

Workflow file for this run

name: Build Project
on:
push:
branches: [ master, ver/* ]
pull_request:
branches: [ master, ver/* ]
workflow_dispatch:
jobs:
setup:
runs-on: macos-latest
timeout-minutes: 20
name: Gradle Setup
steps:
- uses: actions/checkout@v4
- uses: gradle/actions/wrapper-validation@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: '17'
cache: 'gradle'
- name: Set up Konan
uses: actions/cache@v4
with:
path: |
~/.konan/caches
~/.konan/dependencies
~/.konan/kotlin-native-prebuilt-macos-*
key: ${{ runner.os }}-konan-${{ hashFiles('**/Dependencies.kt') }}
restore-keys: |
${{ runner.os }}-konan-
- name: Change Permissions
run: chmod +x ./gradlew
- name: Gradle Information
run: ./gradlew project tasks dependencies
build:
runs-on: ${{ matrix.os }}
needs: setup
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
include:
- name: linux
os: ubuntu-latest
- name: macos-arm64
os: macos-latest
- name: macos-x64
os: macos-13
- name: windows
os: windows-latest
name: Build Java 17 / ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: '17'
cache: 'gradle'
- name: Set up Konan
uses: actions/cache@v4
with:
path: |
~/.konan/caches
~/.konan/dependencies
~/.konan/kotlin-native-prebuilt-*
key: ${{ runner.os }}-konan-${{ hashFiles('**/Dependencies.kt') }}
restore-keys: |
${{ runner.os }}-konan-
- name: Install Linux Dependencies
if: ${{ runner.os == 'Linux' }}
run: |
sudo apt-get update
sudo apt-get install libcurl4-gnutls-dev
- name: Install Windows Dependencies
if: ${{ runner.os == 'Windows' }}
run: choco install curl
- name: Install macOS Dependencies
if: ${{ runner.os == 'macOS' }}
run: brew install curl
- name: Change Permissions
run: chmod +x ./gradlew
- name: Build with Gradle
run: ./gradlew clean assemble publishToMavenLocal --info --stacktrace
env:
ORG_GRADLE_PROJECT_signingKey: ${{ secrets.SIGNING_PRIVATE_KEY }}
ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.SIGNING_PASSWORD }}
- name: Archive Build Artifacts
uses: actions/upload-artifact@v4
with:
name: build-artifacts-${{ matrix.name }}
path: build/libs/
- name: Stop Gradle
run: ./gradlew --stop
test:
runs-on: macos-latest
timeout-minutes: 60
needs: setup
permissions:
checks: write
pull-requests: write
name: Test Project
steps:
- uses: actions/checkout@v4
- name: Setup JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'zulu'
cache: 'gradle'
- name: Set up Konan
uses: actions/cache@v4
with:
path: |
~/.konan/caches
~/.konan/dependencies
~/.konan/kotlin-native-prebuilt-macos-*
key: ${{ runner.os }}-konan-${{ hashFiles('**/Dependencies.kt') }}
restore-keys: |
${{ runner.os }}-konan-
- name: Change Permissions
run: chmod +x ./gradlew
- name: Install Dependencies
run: brew install curl
- name: Gradle Test
run: ./gradlew allTests jvmJacocoTestReport
- name: Archive Test Reports
if: success() || failure()
uses: actions/upload-artifact@v4
with:
name: test-report
path: build/reports/tests/
- name: Collect JaCoCo Report
if: ${{ github.event_name != 'pull_request' }}
id: jacoco_reporter
uses: PavanMudigonda/jacoco-reporter@v5.1
with:
coverage_results_path: build/jacoco.xml
coverage_report_name: Code Coverage
github_token: ${{ secrets.GITHUB_TOKEN }}
skip_check_run: false
minimum_coverage: 85
fail_below_threshold: false
publish_only_summary: false
- name: Print JaCoCo Report
if: ${{ github.event_name != 'pull_request' }}
run: |
echo "| Outcome | Value |" >> $GITHUB_STEP_SUMMARY
echo "| --- | --- |" >> $GITHUB_STEP_SUMMARY
echo "| Code Coverage % | ${{ steps.jacoco_reporter.outputs.coverage_percentage }} |" >> $GITHUB_STEP_SUMMARY
echo "| :heavy_check_mark: Number of Lines Covered | ${{ steps.jacoco_reporter.outputs.covered_lines }} |" >> $GITHUB_STEP_SUMMARY
echo "| :x: Number of Lines Missed | ${{ steps.jacoco_reporter.outputs.missed_lines }} |" >> $GITHUB_STEP_SUMMARY
echo "| Total Number of Lines | ${{ steps.jacoco_reporter.outputs.total_lines }} |" >> $GITHUB_STEP_SUMMARY
- name: Upload Code Coverage Artifacts (Push)
if: ${{ github.event_name != 'pull_request' }}
uses: actions/upload-artifact@v4
with:
name: coverage-report
path: "*/coverage-results.md"
- name: Upload Code Coverage Artifacts (Pull Request)
if: ${{ github.event_name == 'pull_request' }}
uses: madrapps/jacoco-report@v1.7.1
with:
paths: build/jacoco.xml
token: ${{ secrets.GITHUB_TOKEN }}
pass-emoji:
min-coverage-overall: 85
min-coverage-changed-files: 90
deploy:
runs-on: ubuntu-latest
needs: build
name: Deploy Dokka
if: ${{ github.event_name != 'pull_request' && github.ref_name == 'master' }}
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: '17'
cache: 'gradle'
- name: Change Permissions
run: chmod +x ./gradlew
- name: Build Dokka
run: ./gradlew clean dokkaHtml
- name: Deploy Dokka
run: bash dokka.sh ${GITHUB_SHA::7}
publish:
runs-on: macos-latest
needs: build
name: Publish to Repository
if: ${{ github.event_name != 'pull_request' && github.ref_name == 'master' }}
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
cache: 'gradle'
- name: Set up Konan
uses: actions/cache@v4
with:
path: |
~/.konan/caches
~/.konan/dependencies
~/.konan/kotlin-native-prebuilt-macos-*
key: ${{ runner.os }}-konan-${{ hashFiles('**/Dependencies.kt') }}
restore-keys: |
${{ runner.os }}-konan-
- name: Change Permissions
run: chmod +x ./gradlew
- name: Publish to Calculus Games
env:
NEXUS_USERNAME: ${{ secrets.NEXUS_USERNAME }}
NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }}
ORG_GRADLE_PROJECT_signingKey: ${{ secrets.SIGNING_PRIVATE_KEY }}
ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.SIGNING_PASSWORD }}
run: ./gradlew publishAllPublicationsToCalculusGamesRepository -Psnapshot=true
- name: Publish to GitHub Packages
env:
GITHUB_ACTOR: ${{ github.actor }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
ORG_GRADLE_PROJECT_signingKey: ${{ secrets.SIGNING_PRIVATE_KEY }}
ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.SIGNING_PASSWORD }}
run: ./gradlew publishAllPublicationsToGitHubPackagesRepository -Psuffix=${GITHUB_SHA::7}