Merge e2e and deploy-review Nomad job for CI
This way we don't have to manage two separate job files.
This commit is contained in:

committed by
Tobias Kantusch

parent
24b7f1a2fa
commit
0d697bfd67
@ -114,8 +114,8 @@ test_e2e:
|
|||||||
- export NOMAD_ADDR=http://localhost:4646
|
- export NOMAD_ADDR=http://localhost:4646
|
||||||
- nomad agent -dev -log-level=WARN &
|
- nomad agent -dev -log-level=WARN &
|
||||||
- sleep 5
|
- sleep 5
|
||||||
# Setup Nomad job and wait for it
|
- export NOMAD_NAMESPACE="default"
|
||||||
- nomad run ci/e2e-test.nomad
|
- ./ci/nomad-run-env-job.sh ci/demo-job.tpl.nomad ci/demo-job.nomad
|
||||||
- sleep 5
|
- sleep 5
|
||||||
# Start Poseidon and wait for it
|
# Start Poseidon and wait for it
|
||||||
- ./poseidon &
|
- ./poseidon &
|
||||||
@ -158,10 +158,7 @@ deploy_review:
|
|||||||
before_script:
|
before_script:
|
||||||
- export NOMAD_NAMESPACE="$NOMAD_SLUG"
|
- export NOMAD_NAMESPACE="$NOMAD_SLUG"
|
||||||
- nomad namespace apply $NOMAD_NAMESPACE
|
- nomad namespace apply $NOMAD_NAMESPACE
|
||||||
- envsubst "$(env | sed -e 's/=.*//' -e 's/^/\$/g')" < ci/deploy-review.tpl.nomad > ci/deploy-review.nomad
|
- ./ci/nomad-run-env-job.sh ci/demo-job.tpl.nomad ci/demo-job.nomad
|
||||||
- nomad validate ci/deploy-review.nomad
|
|
||||||
- nomad plan ci/deploy-review.nomad || [ $? == 1 ]
|
|
||||||
- nomad run ci/deploy-review.nomad
|
|
||||||
only:
|
only:
|
||||||
- branches
|
- branches
|
||||||
- tags
|
- tags
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
job "python" {
|
job "python" {
|
||||||
datacenters = ["dc1"]
|
datacenters = ["dc1"]
|
||||||
type = "batch"
|
type = "batch"
|
||||||
|
namespace = "${NOMAD_NAMESPACE}"
|
||||||
|
|
||||||
group "python-group" {
|
group "python-group" {
|
||||||
ephemeral_disk {
|
ephemeral_disk {
|
@ -1,52 +0,0 @@
|
|||||||
// This job is used by our deploy CI stage to create a seed job.
|
|
||||||
|
|
||||||
job "python" {
|
|
||||||
datacenters = ["dc1"]
|
|
||||||
type = "batch"
|
|
||||||
namespace = "${NOMAD_NAMESPACE}"
|
|
||||||
|
|
||||||
group "python" {
|
|
||||||
ephemeral_disk {
|
|
||||||
migrate = false
|
|
||||||
size = 10
|
|
||||||
sticky = false
|
|
||||||
}
|
|
||||||
count = 5
|
|
||||||
scaling {
|
|
||||||
enabled = true
|
|
||||||
max = 300
|
|
||||||
}
|
|
||||||
spread {
|
|
||||||
// see https://www.nomadproject.io/docs/job-specification/spread#even-spread-across-data-center
|
|
||||||
// This spreads the load evenly amongst our nodes
|
|
||||||
attribute = "${node.unique.name}"
|
|
||||||
weight = 100
|
|
||||||
}
|
|
||||||
|
|
||||||
task "python" {
|
|
||||||
driver = "docker"
|
|
||||||
kill_timeout = "0s"
|
|
||||||
kill_signal = "SIGKILL"
|
|
||||||
|
|
||||||
config {
|
|
||||||
image = "openhpi/co_execenv_python:3.8"
|
|
||||||
command = "sleep"
|
|
||||||
args = ["infinity"]
|
|
||||||
}
|
|
||||||
|
|
||||||
logs {
|
|
||||||
max_files = 1
|
|
||||||
max_file_size = 1
|
|
||||||
}
|
|
||||||
|
|
||||||
resources {
|
|
||||||
cpu = 40
|
|
||||||
memory = 40
|
|
||||||
}
|
|
||||||
|
|
||||||
restart {
|
|
||||||
delay = "0s"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
14
ci/nomad-run-env-job.sh
Executable file
14
ci/nomad-run-env-job.sh
Executable file
@ -0,0 +1,14 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# This script substitutes environment variables in the given Nomad job and runs it afterwards.
|
||||||
|
|
||||||
|
if [[ "$#" -ne 2 ]]; then
|
||||||
|
echo "Usage: $0 path/to/infile path/to/outfile"
|
||||||
|
fi
|
||||||
|
|
||||||
|
envsubst "$(env | sed -e 's/=.*//' -e 's/^/\$/g')" < $1 > $2
|
||||||
|
nomad validate $2
|
||||||
|
# nomad plan returns 1 if allocations are created or destroyed which is what we want here
|
||||||
|
# https://www.nomadproject.io/docs/commands/job/plan#usage
|
||||||
|
nomad plan $2 || [ $? == 1 ]
|
||||||
|
nomad run $2
|
Reference in New Issue
Block a user