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}
36EOF
37mycurl --silent -X PUT $URL/project/$PROJECT_NAME -d @data.json -b hydra-cookie.txt
38
39cat >data.json <<EOF
40{
41 "description": "Trivial",
42 "checkinterval": "60",
43 "enabled": "1",
44 "visible": "1",
45 "keepnr": "1",
46 "nixexprinput": "trivial",
47 "nixexprpath": "trivial.nix",
48 "inputs": {
49 "trivial": {
50 "value": "$EXPR_PATH",
51 "type": "path"
52 }
53 }
54}
55EOF
56mycurl --silent -X PUT $URL/jobset/$PROJECT_NAME/$JOBSET_NAME -d @data.json -b hydra-cookie.txt