https://kotlinlang.org logo
Join SlackCommunities
Powered by
# github-workflows-kt
  • m

    Mario Ruiz

    09/21/2024, 4:19 PM
    I think I didn't explain it correctly here, could anyone help? https://github.com/jreleaser/release-action/pull/16
    👍 1
    👌 1
    p
    • 2
    • 2
  • p

    Piotr KrzemiƄski

    10/17/2024, 7:17 AM
    github workflows kt v3.0.1 released! Mostly a technical release, to include changes in the docs, but it also bumps some deps. No need to release the library as frequently as before given we have the bindings server 🙂
    github workflows kt 1
    🎉 1
  • p

    Piotr KrzemiƄski

    10/20/2024, 8:24 AM
    Summer is over, it's time for some planning! I need your help figuring out what to work on within github-workflows-kt. I run on spare resources, so once I do have time to contribute, I want to be sure the ROI for the users is as high as possible. đŸ€” Please write in this thread what you'd like to see added/modified/fixed in the project. Your input will be used to compile a list of roadmap-like topics, and we'll later run voting to help figure out the priorities. Thanks!
    l
    • 2
    • 3
  • p

    Piotr KrzemiƄski

    11/20/2024, 10:56 AM
    https://blog.jetbrains.com/kotlin/2024/11/state-of-kotlin-scripting-2024/ on a positive note: > We will continue to develop the
    .main.kts
    script type, which is already helpful for simple automation tasks. We have plans to extend its functionality and streamline IDE support. Such scripts continue to be supported out of the box in the Kotlin compiler and the Kotlin plugin for IntelliJ IDEA.
  • p

    Piotr KrzemiƄski

    12/09/2024, 7:37 AM
    It’s been almost 3 years since the inception of github-workflows-kt library, a tool that lets you write GitHub Actions workflows in Kotlin instead of YAML (featured in Java Advent in 2022 here). One of its flagship features, and an interesting subproblem, is providing type-safe Kotlin bindings for as many GitHub actions as possible. We started by hand-crafting and unit-testing each individual binding, but it clearly doesn’t scale well as we want to support as many actions as possible. Curious about the challenges we faced (and the ones we still face!), and what approaches we tried on our way? Want to learn how we implemented a Maven-compatible server as a part of the current solution? Does generating and compiling Kotlin code on the fly sound interesting? Read on! https://www.javaadvent.com/2024/12/the-journey-of-providing-kotlin-bindings-for-github-actions.html
    github workflows kt 1
  • p

    Piotr KrzemiƄski

    01/02/2025, 11:36 AM
    github workflows kt v3.0.2 released! (mainly to keep up with the most recent Kotlin version)
    🎉 1
    • 1
    • 1
  • p

    Piotr KrzemiƄski

    01/08/2025, 8:13 AM
    we're sorry for any instability of the bindings server in the recent days - we're facing some issues with the hosting infra. If you see any further issues, please let us know (preferably in this thread)! CC @LeoColman
    v
    l
    • 3
    • 46
  • p

    Piotr KrzemiƄski

    01/11/2025, 9:25 AM
    FYI @Vampire @LeoColman after the recent incident, I'm experimenting with Allow fallback to local bindings server if remote is down
    👍 1
    v
    • 2
    • 7
  • p

    Piotr KrzemiƄski

    01/13/2025, 10:29 AM
    github workflows kt v3.1.0 released! Focusing on adding a way to mitigate the bindings server's availability issues, at least for one of the core uses cases. Not much, but it's honest work! 🙂
    🎉 2
  • v

    Vampire

    01/21/2025, 10:24 AM
    ..., how would I write this in a working way?
    Copy code
    lateinit var deploymentStep: ActionStep<DeployPages.Outputs>
    job(
        id = "deploy",
        name = "Deploy Site",
        runsOn = UbuntuLatest,
        needs = listOf(buildSite),
        permissions = mapOf(
            Pages to Write,  // to deploy to Pages
            IdToken to Write // to verify the deployment originates from an appropriate source
        ),
        environment = Environment(
            name = "github-pages",
            url = expr { deploymentStep.outputs.pageUrl }
        )
    ) {
        deploymentStep = uses(
            name = "Deploy to GitHub Pages",
            action = DeployPages()
        )
    }
    p
    • 2
    • 100
  • p

    Piotr KrzemiƄski

    01/22/2025, 2:58 PM
    github workflows kt v3.2.0 released! A bunch of features this time, thanks to the feedback from @Vampire 🙂
    🎉 1
    kodee happy 1
    github workflows kt 1
  • v

    Vampire

    02/01/2025, 11:30 AM
    Was there an update to the bindings server yesterday? A workflow failed yesterday due to the server: https://github.com/spockframework/spock/actions/runs/13081698170/job/36506444705#step:3:7 If it was due to an update, can we maybe introduce a less disruptive update strategy like first starting the new server and only ditching the old one when the new is fully operationable or something similar? If it was not, what happened? :-) cc: @LeoColman
    l
    o
    p
    • 4
    • 10
  • p

    Piotr KrzemiƄski

    02/01/2025, 4:51 PM
    Dear Piotr Krzeminski,
    We are Hassan and Guillaume, researchers from the Software Engineering Lab at the University of Mons (Belgium). Our ongoing research involves studying and improving the maintenance practices of GitHub Actions workflows in open-source software repositories on GitHub. We are contacting you because we found that you were involved in maintaining GitHub Actions workflows (e.g., build.yaml in the typesafegithub/github-workflows-kt GitHub repository). We would like to benefit from your experience on this matter. Therefore, we would really appreciate your participation in a short survey.
    Not sure if they sent it to me on purpose, but I feel obliged to participate 😁
    ➕ 2
    • 1
    • 1
  • p

    Piotr KrzemiƄski

    02/13/2025, 5:00 PM
    @LeoColman drafting some ideas for custom metrics, now that we have Micrometer and Grafana in place (kudos!): ‱ Number of requests under a specific action (owner+name+version) ‱ Time of fetching the YAMLs and compiling the binding ‱ Bindings cache hit rate (0-1) ‱ Number of requests using major versions, full versions, other ‱ Number of inputs/outputs of an action with undefined typings Of course, not saying you should implement these, I'd be happy to implement some of them as well 😊 Exciting!
    github workflows kt 1
    • 1
    • 3
  • l

    LeoColman

    03/08/2025, 7:02 PM
    AlĂŽ! The action AndroidEmulatorRunner from ReactiveCircus have weird bindings. Specifically, this doesn't compile
    Copy code
    uses(
          name = "Android Tests",
          action = AndroidEmulatorRunner(
            apiLevel = 33,
            emulatorOptions = "-no-snapshot -no-audio -no-boot-anim",
            disableAnimations = true,
            script = "./gradlew connectedAndroidTest",
            target = "default",
          )
        )
    As it becomes a private constructor, And this compiles
    Copy code
    action = AndroidEmulatorRunner(
            apiLevel = 33,
            emulatorOptions = "-no-snapshot -no-audio -no-boot-anim",
            disableAnimations = true,
            script = "./gradlew connectedAndroidTest",
          )
    For some reason I don't know. I expected the first one and the second one to compile using the same constructor I'm experimenting with it here
    ✅ 1
    p
    • 2
    • 4
  • p

    Piotr KrzemiƄski

    03/25/2025, 1:02 PM
    thanks @Vampire for noticing and reporting a problem with Personal Access Tokens not being able to list versions for some actions (ref), and @LeoColman for driving a fix by adding a feature to authorize as a GitHub app where this problem doesn't exist 🎉 the power of community and open-source success baby
    🩜 1
    👌 1
    v
    l
    • 3
    • 171
  • p

    Piotr KrzemiƄski

    03/27/2025, 1:18 PM
    github workflows kt v3.3.0 released!
    🎉 4
  • v

    Vampire

    04/16/2025, 9:33 AM
    ‱ Would it maybe make more sense to use
    refreshAfterWrite
    instead of
    expireAfterWrite
    for the cache? ‱ (maybe combined with a size based eviction using
    maximumSize
    that evicts LRU if max size is reached,
    softValues
    is not usable as Aedile uses an
    AsyncCache
    under the hood.) ‱ Would it maybe make sense to also cache the
    maven-metadata.xml
    generation now that using version ranges is a thing and not only Renovate and friends use it?
    p
    l
    • 3
    • 4
  • l

    LeoColman

    04/16/2025, 4:41 PM
    [Incident][Solved] 500s on the Jit Server
    p
    • 2
    • 5
  • l

    LeoColman

    04/16/2025, 10:27 PM
    Found a clue Until I restart we have a hanging connection for over a day
    👀 1
    p
    • 2
    • 2
  • p

    Piotr KrzemiƄski

    04/17/2025, 8:24 PM
    And kudos @LeoColman for configuring the monitoring thanks to which we have nice insights into failures and could quantify the problem!
    đŸ«¶ 1
    v
    • 2
    • 28
  • p

    Piotr KrzemiƄski

    04/29/2025, 5:23 PM
    I noticed some failures to fetch the bindings (example 1, example 2) but the failure metric is constantly at 0. However, the cache size metric has been creeping up for the last hours, not really sure why. Something weird is happening, and it seems to be related to the traffic pattern
    v
    l
    • 3
    • 16
  • p

    Piotr KrzemiƄski

    05/01/2025, 8:17 AM
    @LeoColman we've got some failures last night, and I'm struggling to find logs for it via Portainer. Do you have another way of accessing the logs? I tried SSHing into the container ("Container console"), but I don't see a log file anywhere, probably because it goes only to the stdout and nothing writes it to any file. As a quick idea for [Feature] Collect, Store, and make available Application Logs , we could modify the Log4j config to write the logs also to a file, with some upper limit, RollingFileAppender should do the job
    v
    l
    • 3
    • 54
  • v

    Vampire

    05/05/2025, 1:22 PM
    Ah, I know why we see the
    404 Not Found: GET - /org/jetbrains/kotlin/kotlin-stdlib/unspecified/kotlin-stdlib-unspecified.pom
    on the binding server: https://repo.maven.apache.org/maven2/io/arrow-kt/arrow-atomic-jvm/2.0.1/arrow-atomic-jvm-2.0.1.pom
    💡 1
    p
    • 2
    • 14
  • v

    Vampire

    05/05/2025, 2:31 PM
    Did anyone see this before? https://github.com/Vampire/test-reporter/actions/runs/14838819644/job/41656435826#step:1:37
    Copy code
    Getting action download info
    Error: Missing download info for actions/checkout@v4
    😕
    👀 1
    p
    • 2
    • 6
  • p

    Piotr KrzemiƄski

    05/06/2025, 11:37 AM
    github workflows kt v3.4.0 released!
    🎉 2
  • s

    Sebastian Schuberth

    05/06/2025, 12:28 PM
    What do you think about adding a "How do I get my own action supported by github-workflows-kt?" to the FAQ?
    p
    v
    • 3
    • 22
  • p

    Piotr KrzemiƄski

    05/07/2025, 4:14 AM
    FWIW, I've surfaced some metrics related to typing source, in particular to identify actions without typings, to be able to proactively add typings for them. It's also interesting to see the ratio of the # of actions that have typings in the catalog vs. in the actions repo:
    💡 1
    👌 1
    v
    • 2
    • 7
  • v

    Vampire

    05/10/2025, 2:02 PM
    Can we disable the "required plugin" ktlint in the project? Everytime I open the project I have to ignore the warning that the plugin is not installed. And I will not reinstall the plugin unless the non-sense to set vital IntelliJ IDEA properties to some arbitrary value during initialization in
    ktlint
    just because
    ktlint-intellij-plugin
    is not able or willing to properly program the integration is reverted.
    p
    p
    • 3
    • 5
  • v

    Vampire

    05/11/2025, 10:48 AM
    Is it really correct, that it you use
    val FOO by Contexts.env
    , you end up with just
    FOO
    instead of
    env.FOO
    ?
    p
    • 2
    • 8