-
-
Notifications
You must be signed in to change notification settings - Fork 23
/
SetupJuliaV2.kt
122 lines (111 loc) · 4.73 KB
/
SetupJuliaV2.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
// This file was generated using action-binding-generator. Don't change it by hand, otherwise your
// changes will be overwritten with the next binding code regeneration.
// See https://github.com/typesafegithub/github-workflows-kt for more info.
@file:Suppress(
"DataClassPrivateConstructor",
"UNUSED_PARAMETER",
)
package io.github.typesafegithub.workflows.actions.juliaactions
import io.github.typesafegithub.workflows.domain.actions.Action
import io.github.typesafegithub.workflows.domain.actions.RegularAction
import java.util.LinkedHashMap
import kotlin.Boolean
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.Map
import kotlin.collections.toList
import kotlin.collections.toTypedArray
/**
* Action: Setup Julia environment
*
* Setup a Julia environment and add it to the PATH
*
* [Action on GitHub](https://github.com/julia-actions/setup-julia)
*
* @param version The Julia version to download (if necessary) and use. Example: 1.0.4
* @param includeAllPrereleases Include prereleases when matching the Julia version to available
* versions.
* @param arch Architecture of the Julia binaries. Defaults to the architecture of the runner
* executing the job.
* @param showVersioninfo Display InteractiveUtils.versioninfo() after installing
* @param _customInputs Type-unsafe map where you can put any inputs that are not yet supported by
* the binding
* @param _customVersion Allows overriding action's version, for example to use a specific minor
* version, or a newer version that the binding doesn't yet know about
*/
public data class SetupJuliaV2 private constructor(
/**
* The Julia version to download (if necessary) and use. Example: 1.0.4
*/
public val version: String? = null,
/**
* Include prereleases when matching the Julia version to available versions.
*/
public val includeAllPrereleases: Boolean? = null,
/**
* Architecture of the Julia binaries. Defaults to the architecture of the runner executing the
* job.
*/
public val arch: SetupJuliaV2.Architecture? = null,
/**
* Display InteractiveUtils.versioninfo() after installing
*/
public val showVersioninfo: Boolean? = null,
/**
* Type-unsafe map where you can put any inputs that are not yet supported by the binding
*/
public val _customInputs: Map<String, String> = mapOf(),
/**
* Allows overriding action's version, for example to use a specific minor version, or a newer
* version that the binding doesn't yet know about
*/
public val _customVersion: String? = null,
) : RegularAction<SetupJuliaV2.Outputs>("julia-actions", "setup-julia", _customVersion ?: "v2") {
public constructor(
vararg pleaseUseNamedArguments: Unit,
version: String? = null,
includeAllPrereleases: Boolean? = null,
arch: SetupJuliaV2.Architecture? = null,
showVersioninfo: Boolean? = null,
_customInputs: Map<String, String> = mapOf(),
_customVersion: String? = null,
) : this(version=version, includeAllPrereleases=includeAllPrereleases, arch=arch,
showVersioninfo=showVersioninfo, _customInputs=_customInputs,
_customVersion=_customVersion)
@Suppress("SpreadOperator")
override fun toYamlArguments(): LinkedHashMap<String, String> = linkedMapOf(
*listOfNotNull(
version?.let { "version" to it },
includeAllPrereleases?.let { "include-all-prereleases" to it.toString() },
arch?.let { "arch" to it.stringValue },
showVersioninfo?.let { "show-versioninfo" to it.toString() },
*_customInputs.toList().toTypedArray(),
).toTypedArray()
)
override fun buildOutputObject(stepId: String): Outputs = Outputs(stepId)
public sealed class Architecture(
public val stringValue: String,
) {
public object X64 : SetupJuliaV2.Architecture("x64")
public object X86 : SetupJuliaV2.Architecture("x86")
public object Aarch64 : SetupJuliaV2.Architecture("aarch64")
public class Custom(
customStringValue: String,
) : SetupJuliaV2.Architecture(customStringValue)
}
public class Outputs(
stepId: String,
) : Action.Outputs(stepId) {
/**
* The installed Julia version. May vary from the version input if a version range was given
* as input.
*/
public val juliaVersion: String = "steps.$stepId.outputs.julia-version"
/**
* Path to the directory containing the Julia executable. Equivalent to JULIA_BINDIR:
* https://docs.julialang.org/en/v1/manual/environment-variables/#JULIA_BINDIR
*/
public val juliaBindir: String = "steps.$stepId.outputs.julia-bindir"
}
}