Skip to content

Instantly share code, notes, and snippets.

View joan38's full-sized avatar

Joan Goyeau joan38

View GitHub Profile
### Keybase proof
I hereby claim:
* I am joan38 on github.
* I am joan38 (https://keybase.io/joan38) on keybase.
* I have a public key whose fingerprint is AC07 BB8E 6885 2EE0 39A9 496D 9FEF A36C 4AF3 609A
To claim this, I am signing this object:
object Orkestra extends OrkestraServer with GithubHooks with CronTriggers {
lazy val board = Folder("Orkestra")(
PullRequestChecks.board,
CreateEnvironment.board,
PublishBackend.board,
DeployBackend.board,
PublishAndDeploy.board,
CopyData.board
)
object CopyData {
lazy val board = JobBoard[(String, String) => Unit](JobId("copyData"), "Copy Data")(
Input[String]("Source environment"),
Input[String]("Destination environment")
)
lazy val job = Job(board) { implicit workDir => (source, destination) =>
Await.result(copyData(source, destination), 1.minute)
}
}
object PublishAndDeploy {
lazy val board =
JobBoard[(GitRef, Boolean, String) => Unit](
JobId("publishAndDeployBackend"),
"Publish and Deploy Backend"
)(
Input[GitRef]("Git ref"),
Checkbox("Run checks", checked = true),
Input[String]("Environment name")
)
object Orkestra extends OrkestraServer with GithubHooks {
lazy val board = Folder("Orkestra")(
PullRequestChecks.board,
CreateEnvironment.board,
PublishBackend.board,
DeployBackend.board,
PublishAndDeploy.board
)
lazy val jobs = Set(
object PublishBackend {
lazy val board = JobBoard[(GitRef, Boolean) => String](JobId("publishBackend"), "Publish Backend")(
Input[GitRef]("Git ref"),
Checkbox("Run checks")
)
lazy val job = Job(board) { implicit workDir => (gitRef, runChecks) =>
Await.result(PublishBackend(gitRef, runChecks), 1.hour)
}
}
object DeployBackend {
lazy val board = JobBoard[(String, String) => Unit](JobId("deployBackend"), "Deploy Backend")(
Input[String]("Version"),
Input[String]("Environment name")
)
lazy val job = Job(board) { implicit workDir => (version, environmentName) =>
Await.result(DeployBackend(version, environmentName), 1.minute)
}
}
object Orkestra extends OrkestraServer with GithubHooks {
lazy val board = Folder("Orkestra")(
PullRequestChecks.board,
CreateEnvironment.board
)
lazy val jobs = Set(PullRequestChecks.job, CreateEnvironment.job)
lazy val githubTriggers = Set(
PullRequestTrigger(Repository("myOrganisation/myRepo"), PullRequestChecks.job)()
object CreateEnvironment {
lazy val board = JobBoard[String => Unit](JobId("createEnvironment"), "Create Environment")(
Input[String]("Environment name")
)
lazy val job = Job(board) { implicit workDir => environmentName =>
Await.result(for {
_ <- Kubernetes.client.namespaces.createOrUpdate(Namespace(environmentName))
_ <- Elasticsearch.deploy(environmentName)
} yield (), 1.minute)
object Orkestra extends OrkestraServer with GithubHooks {
lazy val board = Folder("Orkestra")(PullRequestChecks.board)
lazy val jobs = Set(PullRequestChecks.job)
lazy val githubTriggers = Set(
PullRequestTrigger(Repository("myOrganisation/myRepo"), PullRequestChecks.job)()
)
}