Setup Kotlin
ActionsTags
(2)Setup the Kotlin™ cli compiler in GitHub Actions
This action downloads the Kotlin™ compiler and installs it to the path. It won't touch the installed JREs.
By default, the latest released version of Kotlin is installed.
This can be overriden via the version flag.
It allows you to use the kotlinc and the kotlin tool to compile source code and run scripts.
⚠️ Note: You probably don't need this action. GitHub now pre-installs Kotlin, if this works for you, there is no need to use this action. See this issue for more details. Furthermore, you don't need this action if you want to build a Kotlin project using Maven/Gradle as they will download the compiler for you. This action is useful if you need or want to use thekotlin/kotlinc/kotlinc-nativecli tools, if you want to install a specific version of them or if you run workflows in a container/runner where Kotlin is not preinstalled.
See this repo for usage examples.
name: CI
on:
  push:
  workflow_dispatch:
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: fwilhe2/setup-kotlin@main
      - run: kotlinc myProgram.kt -include-runtime -d /tmp/hello.jar; java -jar /tmp/hello.jar
      - run: kotlin myScript.main.ktsYou can also build os-native binaries using kotlinc-native as in this example:
jobs:
  build:
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [ ubuntu-latest, windows-latest, macos-latest ]
    steps:
      - uses: actions/checkout@v2
      - uses: fwilhe2/setup-kotlin@main
        with:
          install-native: true
      - run: kotlinc-native foo.kt
      - run: ./program.exe
        if: ${{ matrix.os == 'windows-latest' }}
      - run: ./program.kexe
        if: ${{ matrix.os != 'windows-latest' }}If you provide a string-argument script, the action will execute it via kotlin-main-kts script definition jar, see this example:
    - uses: fwilhe2/setup-kotlin@main
      with:
        script: |
            #!/usr/bin/env kotlin
            //more kotlin script code hereStarting with version 1.4.30, you can configure kotlin as a shell in Actions like in this example:
      - uses: fwilhe2/setup-kotlin@main
        with:
          version: 2.2.10
      - run: |
            java.io.File(".").listFiles().forEach {it -> println(it.getName().toString())}
        shell: kotlin -howtorun .main.kts {0}See https://youtrack.jetbrains.com/issue/KT-43534 and actions/runner#813 for more details.
This software is not affiliated with or endorsed by the owner of the Kotlin trademark. The name is used to describe what this software does.
This software is released under the MIT License (MIT), see LICENSE for details.
Setup Kotlin is not certified by GitHub. It is provided by a third-party and is governed by separate terms of service, privacy policy, and support documentation.