Skip to content

Commit

Permalink
chore(dsl)!: change type of sourceFile to File (#1439)
Browse files Browse the repository at this point in the history
Part of #1412.
  • Loading branch information
krzema12 committed May 9, 2024
1 parent b84da76 commit 43dcdf0
Show file tree
Hide file tree
Showing 17 changed files with 56 additions and 52 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/end-to-end-tests.main.kts
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ workflow(
yamlConsistencyJobAdditionalSteps = {
publishToMavenLocal()
},
sourceFile = __FILE__.toPath(),
sourceFile = __FILE__,
) {
val GREETING by Contexts.env
val FIRST_NAME by Contexts.env
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ internal fun RegularAction<*>.mavenCoordinatesForAction(version: Version? = null
}

internal fun Workflow.findDependencyDeclaration(action: RegularAction<*>): Pair<Path?, Int?> {
val file = sourceFile?.takeIf { it.exists() }
val file = sourceFile?.toPath()?.takeIf { it.exists() }
val line =
file?.let { sourceFile ->
val currentCoordinates = action.mavenCoordinatesForAction()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ class ReportingTest : FunSpec(
workflow(
name = "Test workflow",
on = listOf(Push()),
sourceFile = sourceTempFile.toPath(),
sourceFile = sourceTempFile,
) {
job(
id = "test_job",
Expand Down
20 changes: 10 additions & 10 deletions github-workflows-kt/api/github-workflows-kt.api
Original file line number Diff line number Diff line change
Expand Up @@ -484,30 +484,30 @@ public abstract interface class io/github/typesafegithub/workflows/domain/WithOu
}

public final class io/github/typesafegithub/workflows/domain/Workflow : io/github/typesafegithub/workflows/dsl/HasCustomArguments {
public fun <init> (Ljava/lang/String;Ljava/util/List;Ljava/util/Map;Ljava/nio/file/Path;Ljava/lang/String;Lio/github/typesafegithub/workflows/domain/Concurrency;Ljava/util/Map;Ljava/lang/String;Ljava/util/Map;Lkotlin/jvm/functions/Function1;Ljava/util/List;Ljava/util/Map;)V
public synthetic fun <init> (Ljava/lang/String;Ljava/util/List;Ljava/util/Map;Ljava/nio/file/Path;Ljava/lang/String;Lio/github/typesafegithub/workflows/domain/Concurrency;Ljava/util/Map;Ljava/lang/String;Ljava/util/Map;Lkotlin/jvm/functions/Function1;Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public fun <init> (Ljava/lang/String;Ljava/util/List;Ljava/util/Map;Ljava/io/File;Ljava/lang/String;Lio/github/typesafegithub/workflows/domain/Concurrency;Ljava/util/Map;Ljava/lang/String;Ljava/util/Map;Lkotlin/jvm/functions/Function1;Ljava/util/List;Ljava/util/Map;)V
public synthetic fun <init> (Ljava/lang/String;Ljava/util/List;Ljava/util/Map;Ljava/io/File;Ljava/lang/String;Lio/github/typesafegithub/workflows/domain/Concurrency;Ljava/util/Map;Ljava/lang/String;Ljava/util/Map;Lkotlin/jvm/functions/Function1;Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public final fun component1 ()Ljava/lang/String;
public final fun component10 ()Lkotlin/jvm/functions/Function1;
public final fun component11 ()Ljava/util/List;
public final fun component12 ()Ljava/util/Map;
public final fun component2 ()Ljava/util/List;
public final fun component3 ()Ljava/util/Map;
public final fun component4 ()Ljava/nio/file/Path;
public final fun component4 ()Ljava/io/File;
public final fun component5 ()Ljava/lang/String;
public final fun component6 ()Lio/github/typesafegithub/workflows/domain/Concurrency;
public final fun component7 ()Ljava/util/Map;
public final fun component8 ()Ljava/lang/String;
public final fun component9 ()Ljava/util/Map;
public final fun copy (Ljava/lang/String;Ljava/util/List;Ljava/util/Map;Ljava/nio/file/Path;Ljava/lang/String;Lio/github/typesafegithub/workflows/domain/Concurrency;Ljava/util/Map;Ljava/lang/String;Ljava/util/Map;Lkotlin/jvm/functions/Function1;Ljava/util/List;Ljava/util/Map;)Lio/github/typesafegithub/workflows/domain/Workflow;
public static synthetic fun copy$default (Lio/github/typesafegithub/workflows/domain/Workflow;Ljava/lang/String;Ljava/util/List;Ljava/util/Map;Ljava/nio/file/Path;Ljava/lang/String;Lio/github/typesafegithub/workflows/domain/Concurrency;Ljava/util/Map;Ljava/lang/String;Ljava/util/Map;Lkotlin/jvm/functions/Function1;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lio/github/typesafegithub/workflows/domain/Workflow;
public final fun copy (Ljava/lang/String;Ljava/util/List;Ljava/util/Map;Ljava/io/File;Ljava/lang/String;Lio/github/typesafegithub/workflows/domain/Concurrency;Ljava/util/Map;Ljava/lang/String;Ljava/util/Map;Lkotlin/jvm/functions/Function1;Ljava/util/List;Ljava/util/Map;)Lio/github/typesafegithub/workflows/domain/Workflow;
public static synthetic fun copy$default (Lio/github/typesafegithub/workflows/domain/Workflow;Ljava/lang/String;Ljava/util/List;Ljava/util/Map;Ljava/io/File;Ljava/lang/String;Lio/github/typesafegithub/workflows/domain/Concurrency;Ljava/util/Map;Ljava/lang/String;Ljava/util/Map;Lkotlin/jvm/functions/Function1;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lio/github/typesafegithub/workflows/domain/Workflow;
public fun equals (Ljava/lang/Object;)Z
public final fun getConcurrency ()Lio/github/typesafegithub/workflows/domain/Concurrency;
public final fun getEnv ()Ljava/util/Map;
public final fun getJobs ()Ljava/util/List;
public final fun getName ()Ljava/lang/String;
public final fun getOn ()Ljava/util/List;
public final fun getPermissions ()Ljava/util/Map;
public final fun getSourceFile ()Ljava/nio/file/Path;
public final fun getSourceFile ()Ljava/io/File;
public final fun getTargetFileName ()Ljava/lang/String;
public final fun getYamlConsistencyJobAdditionalSteps ()Lkotlin/jvm/functions/Function1;
public final fun getYamlConsistencyJobCondition ()Ljava/lang/String;
Expand Down Expand Up @@ -1899,8 +1899,8 @@ public final class io/github/typesafegithub/workflows/dsl/JobBuilder : io/github
}

public final class io/github/typesafegithub/workflows/dsl/WorkflowBuilder {
public fun <init> (Ljava/lang/String;Ljava/util/List;Ljava/util/Map;Ljava/nio/file/Path;Ljava/lang/String;Lio/github/typesafegithub/workflows/domain/Concurrency;Ljava/nio/file/Path;Ljava/lang/String;Ljava/util/Map;Lkotlin/jvm/functions/Function1;Ljava/util/List;Ljava/util/Map;Ljava/util/Map;)V
public synthetic fun <init> (Ljava/lang/String;Ljava/util/List;Ljava/util/Map;Ljava/nio/file/Path;Ljava/lang/String;Lio/github/typesafegithub/workflows/domain/Concurrency;Ljava/nio/file/Path;Ljava/lang/String;Ljava/util/Map;Lkotlin/jvm/functions/Function1;Ljava/util/List;Ljava/util/Map;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public fun <init> (Ljava/lang/String;Ljava/util/List;Ljava/util/Map;Ljava/io/File;Ljava/lang/String;Lio/github/typesafegithub/workflows/domain/Concurrency;Ljava/nio/file/Path;Ljava/lang/String;Ljava/util/Map;Lkotlin/jvm/functions/Function1;Ljava/util/List;Ljava/util/Map;Ljava/util/Map;)V
public synthetic fun <init> (Ljava/lang/String;Ljava/util/List;Ljava/util/Map;Ljava/io/File;Ljava/lang/String;Lio/github/typesafegithub/workflows/domain/Concurrency;Ljava/nio/file/Path;Ljava/lang/String;Ljava/util/Map;Lkotlin/jvm/functions/Function1;Ljava/util/List;Ljava/util/Map;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public final fun build ()Lio/github/typesafegithub/workflows/domain/Workflow;
public final fun getGitRootDir ()Ljava/nio/file/Path;
public final fun job ([Lkotlin/Unit;Ljava/lang/String;Ljava/lang/String;Lio/github/typesafegithub/workflows/domain/RunnerType;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Ljava/lang/Integer;Lio/github/typesafegithub/workflows/domain/Concurrency;Lio/github/typesafegithub/workflows/domain/Container;Lio/github/typesafegithub/workflows/domain/Environment;Ljava/util/Map;Lio/github/typesafegithub/workflows/domain/JobOutputs;Lkotlin/jvm/functions/Function1;)Lio/github/typesafegithub/workflows/domain/Job;
Expand All @@ -1911,8 +1911,8 @@ public final class io/github/typesafegithub/workflows/dsl/WorkflowBuilder {

public final class io/github/typesafegithub/workflows/dsl/WorkflowBuilderKt {
public static final fun toBuilder (Lio/github/typesafegithub/workflows/domain/Workflow;)Lio/github/typesafegithub/workflows/dsl/WorkflowBuilder;
public static final fun workflow ([Lkotlin/Unit;Ljava/lang/String;Ljava/util/List;Ljava/util/Map;Ljava/nio/file/Path;Ljava/lang/String;Lio/github/typesafegithub/workflows/domain/Concurrency;Ljava/lang/String;Ljava/util/Map;Lkotlin/jvm/functions/Function1;Ljava/util/Map;ZLjava/nio/file/Path;Lio/github/typesafegithub/workflows/yaml/Preamble;Lkotlin/jvm/functions/Function1;Ljava/util/Map;Lkotlin/jvm/functions/Function1;)Lio/github/typesafegithub/workflows/domain/Workflow;
public static synthetic fun workflow$default ([Lkotlin/Unit;Ljava/lang/String;Ljava/util/List;Ljava/util/Map;Ljava/nio/file/Path;Ljava/lang/String;Lio/github/typesafegithub/workflows/domain/Concurrency;Ljava/lang/String;Ljava/util/Map;Lkotlin/jvm/functions/Function1;Ljava/util/Map;ZLjava/nio/file/Path;Lio/github/typesafegithub/workflows/yaml/Preamble;Lkotlin/jvm/functions/Function1;Ljava/util/Map;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lio/github/typesafegithub/workflows/domain/Workflow;
public static final fun workflow ([Lkotlin/Unit;Ljava/lang/String;Ljava/util/List;Ljava/util/Map;Ljava/io/File;Ljava/lang/String;Lio/github/typesafegithub/workflows/domain/Concurrency;Ljava/lang/String;Ljava/util/Map;Lkotlin/jvm/functions/Function1;Ljava/util/Map;ZLjava/nio/file/Path;Lio/github/typesafegithub/workflows/yaml/Preamble;Lkotlin/jvm/functions/Function1;Ljava/util/Map;Lkotlin/jvm/functions/Function1;)Lio/github/typesafegithub/workflows/domain/Workflow;
public static synthetic fun workflow$default ([Lkotlin/Unit;Ljava/lang/String;Ljava/util/List;Ljava/util/Map;Ljava/io/File;Ljava/lang/String;Lio/github/typesafegithub/workflows/domain/Concurrency;Ljava/lang/String;Ljava/util/Map;Lkotlin/jvm/functions/Function1;Ljava/util/Map;ZLjava/nio/file/Path;Lio/github/typesafegithub/workflows/yaml/Preamble;Lkotlin/jvm/functions/Function1;Ljava/util/Map;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lio/github/typesafegithub/workflows/domain/Workflow;
}

public final class io/github/typesafegithub/workflows/dsl/expressions/Contexts : io/github/typesafegithub/workflows/dsl/expressions/contexts/FunctionsContext {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@ import io.github.typesafegithub.workflows.domain.triggers.Trigger
import io.github.typesafegithub.workflows.dsl.HasCustomArguments
import io.github.typesafegithub.workflows.dsl.JobBuilder
import kotlinx.serialization.Contextual
import java.nio.file.Path
import java.io.File

public data class Workflow(
val name: String,
val on: List<Trigger>,
val env: Map<String, String>,
val sourceFile: Path?,
val sourceFile: File?,
val targetFileName: String?,
val concurrency: Concurrency? = null,
val permissions: Map<Permission, Mode>? = null,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ public class JobBuilder<OUTPUT : JobOutputs>(
val id = "step-${job.steps.size}"
val sourceFilePath =
workflowBuilder.gitRootDir?.let {
sourceFile.relativeToAbsolute(it).invariantSeparatorsPathString
sourceFile.toPath().relativeToAbsolute(it).invariantSeparatorsPathString
}
val newStep =
KotlinLogicStep(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import io.github.typesafegithub.workflows.shared.internal.findGitRoot
import io.github.typesafegithub.workflows.yaml.Preamble
import io.github.typesafegithub.workflows.yaml.writeToFile
import kotlinx.serialization.Contextual
import java.io.File
import java.nio.file.Path
import kotlin.io.path.absolute

Expand All @@ -23,7 +24,7 @@ public class WorkflowBuilder(
name: String,
on: List<Trigger>,
env: Map<String, String> = mapOf(),
sourceFile: Path?,
sourceFile: File?,
targetFileName: String?,
concurrency: Concurrency? = null,
public val gitRootDir: Path? = null,
Expand Down Expand Up @@ -169,15 +170,18 @@ public fun workflow(
name: String,
on: List<Trigger>,
env: Map<String, String> = mapOf(),
sourceFile: Path? = null,
targetFileName: String? = sourceFile?.fileName?.let { it.toString().substringBeforeLast(".main.kts") + ".yaml" },
sourceFile: File? = null,
targetFileName: String? =
sourceFile?.toPath()?.fileName?.let {
it.toString().substringBeforeLast(".main.kts") + ".yaml"
},
concurrency: Concurrency? = null,
yamlConsistencyJobCondition: String? = null,
yamlConsistencyJobEnv: Map<String, String> = mapOf(),
yamlConsistencyJobAdditionalSteps: (JobBuilder<JobOutputs.EMPTY>.() -> Unit)? = null,
permissions: Map<Permission, Mode>? = null,
addConsistencyCheck: Boolean = sourceFile != null,
gitRootDir: Path? = sourceFile?.absolute()?.findGitRoot(),
gitRootDir: Path? = sourceFile?.toPath()?.absolute()?.findGitRoot(),
preamble: Preamble? = null,
getenv: (String) -> String? = { System.getenv(it) },
_customArguments: Map<String, @Contextual Any> = mapOf(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ private fun Workflow.generateYaml(
): String {
val sourceFilePath =
gitRootDir?.let {
sourceFile?.relativeToAbsolute(gitRootDir)?.invariantSeparatorsPathString
sourceFile?.toPath()?.relativeToAbsolute(gitRootDir)?.invariantSeparatorsPathString
}

val jobsWithConsistencyCheck =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ class IntegrationTest : FunSpec({
workflow(
name = "Test workflow",
on = listOf(Push()),
sourceFile = sourceTempFile.toPath(),
sourceFile = sourceTempFile,
yamlConsistencyJobEnv = mapOf("GITHUB_TOKEN" to expr("secrets.GITHUB_TOKEN")),
) {
job(
Expand Down Expand Up @@ -108,7 +108,7 @@ class IntegrationTest : FunSpec({
hello! workflow
""".trimIndent(),
),
sourceFile = sourceTempFile.toPath(),
sourceFile = sourceTempFile,
addConsistencyCheck = false,
_customArguments =
mapOf(
Expand Down Expand Up @@ -233,7 +233,7 @@ class IntegrationTest : FunSpec({
workflow(
name = "Test workflow",
on = listOf(Push()),
sourceFile = sourceTempFile.toPath(),
sourceFile = sourceTempFile,
addConsistencyCheck = false,
concurrency = Concurrency("workflow_staging_environment"),
) {
Expand Down Expand Up @@ -295,7 +295,7 @@ class IntegrationTest : FunSpec({
workflow(
name = "Test workflow",
on = listOf(Push()),
sourceFile = sourceTempFile.toPath(),
sourceFile = sourceTempFile,
addConsistencyCheck = false,
) {
job(id = "deploy-dev", runsOn = RunnerType.UbuntuLatest) {
Expand Down Expand Up @@ -373,7 +373,7 @@ class IntegrationTest : FunSpec({
workflow(
name = "Test workflow",
on = listOf(Push()),
sourceFile = sourceTempFile.toPath(),
sourceFile = sourceTempFile,
addConsistencyCheck = false,
concurrency = Concurrency("workflow_staging_environment", cancelInProgress = true),
) {
Expand Down Expand Up @@ -435,7 +435,7 @@ class IntegrationTest : FunSpec({
name = "Test workflow",
on = listOf(Push()),
yamlConsistencyJobCondition = "\${{ always() }}",
sourceFile = sourceTempFile.toPath(),
sourceFile = sourceTempFile,
) {
job(
id = "test_job",
Expand Down Expand Up @@ -538,7 +538,7 @@ class IntegrationTest : FunSpec({
workflow(
name = "test",
on = listOf(Push()),
sourceFile = sourceTempFile.toPath(),
sourceFile = sourceTempFile,
preamble =
Just(
"""
Expand Down Expand Up @@ -575,7 +575,7 @@ class IntegrationTest : FunSpec({
workflow(
name = "test",
on = listOf(Push()),
sourceFile = sourceTempFile.toPath(),
sourceFile = sourceTempFile,
preamble =
Just(
"""
Expand Down Expand Up @@ -614,7 +614,7 @@ class IntegrationTest : FunSpec({
workflow(
name = "Test workflow",
on = listOf(Push()),
sourceFile = sourceTempFile.toPath(),
sourceFile = sourceTempFile,
preamble =
WithOriginalAfter(
"""
Expand Down Expand Up @@ -657,7 +657,7 @@ class IntegrationTest : FunSpec({
workflow(
name = "Test workflow",
on = listOf(Push()),
sourceFile = sourceTempFile.toPath(),
sourceFile = sourceTempFile,
preamble =
WithOriginalBefore(
"""
Expand Down Expand Up @@ -700,7 +700,7 @@ class IntegrationTest : FunSpec({
workflow(
name = "test",
on = listOf(Push()),
sourceFile = sourceTempFile.toPath(),
sourceFile = sourceTempFile,
preamble = Just(""),
addConsistencyCheck = false,
) {
Expand Down Expand Up @@ -731,7 +731,7 @@ class IntegrationTest : FunSpec({
workflow(
name = "test",
on = listOf(Push()),
sourceFile = sourceTempFile.toPath(),
sourceFile = sourceTempFile,
) {
job(id = "test", runsOn = RunnerType.UbuntuLatest) {
run(name = "Step with Kotlin code in lambda") {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ class CompensatingLibrarysMissingFeaturesSnippets : FunSpec({
// --8<-- [end:custom-arguments-1]
name = "customArguments",
on = listOf(Push()),
sourceFile = sourceTempFile.toPath(),
sourceFile = sourceTempFile,
// --8<-- [start:custom-arguments-2]
// ...
_customArguments =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ class GettingStartedSnippets : FunSpec({
workflow(
name = "Test workflow",
on = listOf(Push()),
sourceFile = __FILE__.toPath(),
sourceFile = __FILE__,
) {
job(id = "test_job", runsOn = UbuntuLatest) {
uses(name = "Check out", action = CheckoutV4())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ class JobOutputsSnippets : FunSpec({
workflow(
name = "Test workflow",
on = listOf(Push()),
sourceFile = sourceTempFile.toPath(),
sourceFile = sourceTempFile,
) {
// --8<-- [start:define-job-outputs-1]
val myJob =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ class TypeSafeExpressionsSnippets : FunSpec({
workflow(
name = "Test workflow",
on = listOf(Push()),
sourceFile = sourceTempFile.toPath(),
sourceFile = sourceTempFile,
) {
job(
id = "test_job",
Expand All @@ -46,7 +46,7 @@ class TypeSafeExpressionsSnippets : FunSpec({
workflow(
name = "Test workflow",
on = listOf(Push()),
sourceFile = sourceTempFile.toPath(),
sourceFile = sourceTempFile,
) {
// --8<-- [start:custom-environment-variables-1]
val GREETING by Contexts.env
Expand Down Expand Up @@ -79,7 +79,7 @@ class TypeSafeExpressionsSnippets : FunSpec({
workflow(
name = "Test workflow",
on = listOf(Push()),
sourceFile = sourceTempFile.toPath(),
sourceFile = sourceTempFile,
) {
// --8<-- [start:secrets]
val SUPER_SECRET by Contexts.secrets
Expand Down

0 comments on commit 43dcdf0

Please sign in to comment.