1#!/usr/bin/env bash
2#
3# This script creates a project, a jobset with an input of type local
4# path. This local path is a directory that contains a Nix expression
5# to define a job.
6# The EXPR-PATH environment variable must be set with the local path.
7
8set -e
9
10URL=http://localhost:3000
11USERNAME="admin"
12PASSWORD="admin"
13PROJECT_NAME="trivial"
14JOBSET_NAME="trivial"
15EXPR_PATH=${EXPR_PATH:-}
16
17if [ -z $EXPR_PATH ]; then
18 echo "Environment variable EXPR_PATH must be set"
19 exit 1
20fi
21
22mycurl() {
23 curl --referer $URL -H "Accept: application/json" -H "Content-Type: application/json" $@
24}
25
26cat >data.json <<EOF
27{ "username": "$USERNAME", "password": "$PASSWORD" }
28EOF
29mycurl -X POST -d '@data.json' $URL/login -c hydra-cookie.txt
30
31cat >data.json <<EOF
32{
33 "displayname":"Trivial",
34 "enabled":"1",
35 "visible":"1"
36}
37EOF
38mycurl --silent -X PUT $URL/project/$PROJECT_NAME -d @data.json -b hydra-cookie.txt
39
40cat >data.json <<EOF
41{
42 "description": "Trivial",
43 "checkinterval": "60",
44 "enabled": "1",
45 "visible": "1",
46 "keepnr": "1",
47 "enableemail": true,
48 "emailoverride": "hydra@localhost",
49 "nixexprinput": "trivial",
50 "nixexprpath": "trivial.nix",
51 "inputs": {
52 "trivial": {
53 "value": "$EXPR_PATH",
54 "type": "path"
55 }
56 }
57}
58EOF
59mycurl --silent -X PUT $URL/jobset/$PROJECT_NAME/$JOBSET_NAME -d @data.json -b hydra-cookie.txt