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

Publish KNCR Repositories #164

Publish KNCR Repositories

Publish KNCR Repositories #164

Workflow file for this run

name: Publish KNCR Repositories
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
schedule:
- cron: "0 0 * * Sun" # Weekly on Sunday at midnight UTC
workflow_dispatch:
jobs:
publish:
runs-on: ${{ matrix.os }}
timeout-minutes: 180
strategy:
fail-fast: false
matrix:
include:
- name: linux-x64
os: ubuntu-24.04
parallelism: 0
- name: macos-x64
os: macos-15-intel
parallelism: 0
- name: macos-arm64
os: macos-15
parallelism: 0
- name: windows-x64
os: windows-2025
parallelism: 2
permissions:
contents: read
defaults:
run:
shell: bash
name: Publish KNCR Builds / ${{ matrix.name }}
if: ${{ github.event_name != 'pull_request' }}
steps:
- uses: actions/checkout@v6
- 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@v4
with:
path: |
~/.konan/caches
~/.konan/dependencies
~/.konan/kotlin-native-prebuilt-*
key: ${{ runner.os }}-${{ runner.arch }}-konan
restore-keys: |
${{ runner.os }}-${{ runner.arch }}-konan
- name: Install Kotlin
uses: fwilhe2/setup-kotlin@main
with:
version: '2.2.21'
install-native: true
- name: Setup Maven
uses: stCarolas/setup-maven@v5
with:
maven-version: 3.8.4
- name: Setup Maven Settings
uses: s4u/maven-settings-action@v4.0.0
with:
servers: '[{"id": "calcugames", "username": "${{ secrets.NEXUS_USERNAME }}", "password": "${{ secrets.NEXUS_PASSWORD }}"}]'
# Dependencies
- name: Install Windows Dependencies
if: startsWith(matrix.os, 'windows')
shell: cmd
run: powershell -Command "(Invoke-WebRequest -Uri https://git.io/JnHTY -OutFile install_zlib.bat)"; ./install_zlib.bat; del install_zlib.bat
- name: Install macOS Dependencies
if: startsWith(matrix.os, 'macos')
run: brew install zlib glfw
- name: Install Linux Dependencies
if: startsWith(matrix.os, 'ubuntu')
run: |
sudo apt-get update
sudo apt-get install -y libasound2-dev libdumb1-dev libflac-dev libfreetype6-dev mesa-common-dev libgl1-mesa-dev libglx-dev libglu1-mesa-dev libgtk-3-dev libjpeg-dev libopenal-dev libopusfile-dev libphysfs-dev libpng-dev libpulse-dev libtheora-dev libvorbis-dev libwebp-dev libxcursor-dev libxext-dev libxinerama-dev libxpm-dev libxrandr-dev libxxf86vm-dev pkg-config freeglut3-dev libz-dev xorg
- name: Install CInterop Dependencies
run: cinterop -def .github/deps.def -o .github/deps.klib -verbose
# KNCR
- name: Get Compiler Information
run: |
g++ --version
clang++ --version
- name: Change Permissions
run: chmod +x ./gradlew
- name: Run KNCR (Install)
if: ${{ github.event_name == 'pull_request' }}
run: ./gradlew clean kncrRun -PmvnTask=install --no-daemon
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Run KNCR (Publish)
if: ${{ github.event_name != 'pull_request' }}
run: ./gradlew clean kncrRun --no-daemon
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Archive Logs
if: success() || failure()
uses: actions/upload-artifact@v6
with:
name: kncr-logs-${{ matrix.name }}
path: logs
if-no-files-found: 'ignore'
- name: Stop Gradle
run: ./gradlew --stop