fix test for pipeline
This commit is contained in:
parent
8de2f25d00
commit
2a02a0afb2
3 changed files with 18 additions and 3 deletions
|
@ -134,15 +134,18 @@ fun remote(host: String, remoteUser: String, password: Secret? = null, platform:
|
||||||
* Returns Prov instance which eexcutes its tasks in a local docker container with name containerName.
|
* Returns Prov instance which eexcutes its tasks in a local docker container with name containerName.
|
||||||
* If a container with the given name is running already, it'll be reused if parameter useExistingContainer is set to true.
|
* If a container with the given name is running already, it'll be reused if parameter useExistingContainer is set to true.
|
||||||
* If a container is reused, it is not checked if it has the correct, specified image.
|
* If a container is reused, it is not checked if it has the correct, specified image.
|
||||||
|
* Determines automatically if sudo is required if sudo is null, otherwise the specified sudo is used
|
||||||
*/
|
*/
|
||||||
@Api // used by other libraries resp. KotlinScript
|
@Api // used by other libraries resp. KotlinScript
|
||||||
fun docker(
|
fun docker(
|
||||||
containerName: String = "provs_default",
|
containerName: String = "provs_default",
|
||||||
useExistingContainer: Boolean = true,
|
useExistingContainer: Boolean = true,
|
||||||
imageName: String = "ubuntu",
|
imageName: String = "ubuntu",
|
||||||
sudo: Boolean = true
|
sudo: Boolean? = null
|
||||||
): Prov {
|
): Prov {
|
||||||
|
|
||||||
|
val sudoRequired = sudo ?: checkSudoRequiredForDocker()
|
||||||
|
|
||||||
local().provideContainer(containerName, imageName)
|
local().provideContainer(containerName, imageName)
|
||||||
|
|
||||||
return Prov.newInstance(
|
return Prov.newInstance(
|
||||||
|
@ -153,7 +156,18 @@ fun docker(
|
||||||
ContainerStartMode.USE_RUNNING_ELSE_CREATE
|
ContainerStartMode.USE_RUNNING_ELSE_CREATE
|
||||||
else
|
else
|
||||||
ContainerStartMode.CREATE_NEW_KILL_EXISTING,
|
ContainerStartMode.CREATE_NEW_KILL_EXISTING,
|
||||||
sudo = sudo
|
sudo = sudoRequired
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
fun checkSudoRequiredForDocker(): Boolean {
|
||||||
|
return if (local().chk("docker -v")) {
|
||||||
|
false
|
||||||
|
} else if (local().chk("sudo docker -v")) {
|
||||||
|
true
|
||||||
|
} else {
|
||||||
|
throw IllegalStateException("Docker could not be run.")
|
||||||
|
}
|
||||||
|
}
|
|
@ -24,7 +24,7 @@ internal class K3dKtTest {
|
||||||
provideContainer(
|
provideContainer(
|
||||||
containerName,
|
containerName,
|
||||||
"yobasystems/alpine-docker:dind-amd64",
|
"yobasystems/alpine-docker:dind-amd64",
|
||||||
ContainerStartMode.CREATE_NEW_KILL_EXISTING, // for re-create a potentially existing container
|
// ContainerStartMode.CREATE_NEW_KILL_EXISTING, // for re-create a potentially existing container
|
||||||
sudo = false,
|
sudo = false,
|
||||||
options = "--privileged"
|
options = "--privileged"
|
||||||
)
|
)
|
||||||
|
|
|
@ -4,6 +4,7 @@ import org.domaindrivenarchitecture.provs.core.Prov
|
||||||
import org.domaindrivenarchitecture.provs.core.docker
|
import org.domaindrivenarchitecture.provs.core.docker
|
||||||
import org.domaindrivenarchitecture.provs.core.echoCommandForText
|
import org.domaindrivenarchitecture.provs.core.echoCommandForText
|
||||||
import org.domaindrivenarchitecture.provs.test.tags.ContainerTest
|
import org.domaindrivenarchitecture.provs.test.tags.ContainerTest
|
||||||
|
import org.domaindrivenarchitecture.provs.test.tags.NonCi
|
||||||
import org.junit.jupiter.api.Assertions.assertEquals
|
import org.junit.jupiter.api.Assertions.assertEquals
|
||||||
import org.junit.jupiter.api.Test
|
import org.junit.jupiter.api.Test
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue