Skip to content
This repository was archived by the owner on Mar 24, 2026. It is now read-only.

chore(deps): update actions/attest-build-provenance action to v4 #167

chore(deps): update actions/attest-build-provenance action to v4

chore(deps): update actions/attest-build-provenance action to v4 #167

Workflow file for this run

name: Build Project
on:
push:
branches: [ master, ver/* ]
pull_request:
branches: [ master, ver/* ]
workflow_dispatch:
jobs:
setup:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v6
- uses: gradle/actions/wrapper-validation@v5
- name: Set up JDK 21
uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: '21'
cache: 'gradle'
- name: Change Permissions
run: chmod +x ./gradlew
- name: Gradle Information
run: ./gradlew project tasks dependencies
build:
runs-on: ${{ matrix.os }}
needs: setup
timeout-minutes: 360
permissions:
contents: read
id-token: write
attestations: write
strategy:
fail-fast: false
matrix:
include:
- name: linux-x64
os: ubuntu-24.04
- name: macos-arm64
os: macos-15
- name: macos-x64
os: macos-15-intel
- name: windows
os: windows-2025
steps:
- uses: actions/checkout@v6
with:
submodules: 'recursive'
lfs: true
- name: Set up JDK 21
uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: '21'
cache: 'gradle'
- name: Set up Konan
uses: actions/cache@v5
with:
path: |
~/.konan/caches
~/.konan/dependencies
~/.konan/kotlin-native-prebuilt-*
key: ${{ runner.os }}-${{ runner.arch }}-konan
restore-keys: |
${{ runner.os }}-konan
${{ runner.os }}-${{ runner.arch }}-konan
- name: Change Permissions
run: chmod +x ./gradlew
- name: Build with Gradle
run: ./gradlew clean assemble
- name: Archive Build Artifacts
id: archive
uses: actions/upload-artifact@v5
with:
name: build-artifacts-${{ matrix.name }}-${{ github.run_id }}
path: |
build/classes/
build/bin/
build/libs/
- name: Attest Build Artifacts
uses: actions/attest-build-provenance@v4
with:
subject-name: build-artifacts-${{ matrix.name }}-${{ github.run_id }}
subject-digest: sha256:${{ steps.archive.outputs.artifact-digest }}
- name: Stop Gradle
if: success() || failure()
run: ./gradlew --stop
test:
runs-on: ${{ matrix.os }}
timeout-minutes: 120
needs: setup
permissions:
contents: read
id-token: write
attestations: write
strategy:
fail-fast: false
matrix:
include:
- name: linux-x64
os: ubuntu-24.04
- name: macos-arm64
os: macos-15
- name: macos-x64
os: macos-15-intel
- name: windows
os: windows-2025
steps:
- uses: actions/checkout@v6
with:
submodules: 'recursive'
lfs: true
- name: Set up JDK 21
uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: '21'
cache: 'gradle'
- name: Set up Konan
uses: actions/cache@v5
with:
path: |
~/.konan/caches
~/.konan/dependencies
~/.konan/kotlin-native-prebuilt-*
key: ${{ runner.os }}-${{ runner.arch }}-konan
restore-keys: |
${{ runner.os }}-konan
${{ runner.os }}-${{ runner.arch }}-konan
- name: Change Permissions
run: chmod +x ./gradlew
- name: Test Project
run: ./gradlew check
- name: Archive Test Artifacts
if: success() || failure()
id: archive
uses: actions/upload-artifact@v5
with:
name: test-artifacts-${{ matrix.name }}-${{ github.run_id }}
path: |
build/reports/
build/test-results/
- name: Attest Test Artifacts
if: success() || failure()
uses: actions/attest-build-provenance@v4
with:
subject-name: test-artifacts-${{ matrix.name }}-${{ github.run_id }}
subject-digest: sha256:${{ steps.archive.outputs.artifact-digest }}
- name: Stop Gradle
if: success() || failure()
run: ./gradlew --stop
deploy:
runs-on: ubuntu-latest
needs: [build, test]
if: ${{ github.event_name != 'pull_request' && github.ref_name == 'master' }}
timeout-minutes: 45
permissions:
contents: write
steps:
- uses: actions/checkout@v6
with:
submodules: 'recursive'
lfs: true
- name: Set up JDK 21
uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: '21'
cache: 'gradle'
- name: Change Permissions
run: chmod +x ./gradlew
- name: Build Dokka
run: ./gradlew clean dokkaGeneratePublicationHtml
- name: Deploy Dokka
run: bash dokka.sh ${GITHUB_SHA::7}
publish:
runs-on: ${{ matrix.os }}
needs: [build, test]
if: ${{ github.event_name != 'pull_request' }}
timeout-minutes: 30
name: publish (${{ matrix.os }})
permissions:
contents: write
packages: write
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-24.04
publication: LinuxX64
is_main: true
- os: macos-15
publication: MacosArm64
is_main: false
- os: macos-15-intel
publication: MacosX64
is_main: false
- os: windows-2025
publication: MingwX64
is_main: false
steps:
- uses: actions/checkout@v6
with:
submodules: 'recursive'
lfs: true
- name: Set up JDK 21
uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: '21'
cache: 'gradle'
- name: Set up Konan
uses: actions/cache@v5
with:
path: |
~/.konan/caches
~/.konan/dependencies
~/.konan/kotlin-native-prebuilt-*
key: ${{ runner.os }}-${{ runner.arch }}-konan
restore-keys: |
${{ runner.os }}-konan
${{ runner.os }}-${{ runner.arch }}-konan
- name: Change Permissions
run: chmod +x ./gradlew
- name: Publish Kotlin Multiplatform to Calculus Games
if: ${{ matrix.is_main }}
shell: bash
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 publishKotlinMultiplatformPublicationToCalculusGamesRepository -Psnapshot=true
- name: Publish Kotlin Multiplatform to GitHub Packages
if: ${{ matrix.is_main && github.ref_name == 'master' }}
shell: bash
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 publishKotlinMultiplatformPublicationToGitHubPackagesRepository -Psuffix=${GITHUB_SHA::7}
- name: Publish Native Publication to Calculus Games
shell: bash
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 publish${{ matrix.publication }}PublicationToCalculusGamesRepository -Psnapshot=true
- name: Publish Native Publication to GitHub Packages
if: ${{ github.ref_name == 'master' }}
shell: bash
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 publish${{ matrix.publication }}PublicationToGitHubPackagesRepository -Psuffix=${GITHUB_SHA::7}
- name: Stop Gradle
if: success() || failure()
run: ./gradlew --stop