Compare commits

..

No commits in common. "master" and "0.5.1" have entirely different histories.

7 changed files with 14 additions and 57 deletions

View File

@ -180,9 +180,7 @@ proc start*(cfg: StrawBossConfig): void =
try:
let authToken = makeAuthToken(cfg, uname, pwd)
resp($(%authToken), JSON)
except:
jsonResp(Http401, getCurrentExceptionMsg())
if ctx.cfg.debug: echo getStackTrace()
except: jsonResp(Http401, getCurrentExceptionMsg())
get "/verify-auth":
checkAuth()
@ -268,16 +266,17 @@ proc start*(cfg: StrawBossConfig): void =
checkAuth()
var details = ""
try:
let activeRuns = workers
.filterIt(it.process.running and it.projectName == @"projectName")
.mapIt(cfg.getRun(@"projectName", $it.runId));
.mapIt(cfg.getRun(@"projecName", $it.runId));
resp($(%activeRuns), JSON)
except NotFoundException:
jsonResp(Http404, getCurrentExceptionMsg())
except:
json500Resp(getCurrentException(), "problem loading active runs")
try: raise getCurrentException()
except NotFoundException:
jsonResp(Http404, getCurrentExceptionMsg())
except:
json500Resp(getCurrentException(), "problem loading active runs")
get "/project/@projectName/run/@runId":
## Details for a specific run
@ -447,7 +446,7 @@ proc start*(cfg: StrawBossConfig): void =
get re".*":
jsonResp(Http404, "URL [" & request.path & "] is not present on this server.")
jsonResp(Http404)
post re".*":
jsonResp(Http404)

View File

@ -2,7 +2,6 @@ import cliutils, httpclient, json, os, osproc, sequtils, strutils, tempfile,
times, unittest, untar, uuids
from langutils import sameContents
from algorithm import sorted
import ../testutil
import ../../../main/nim/strawbosspkg/configuration
@ -206,40 +205,9 @@ suite "strawboss server":
# Run the "build" step
# Kick off a build that depends on "build" (which was run in the last test)
test "kick off multiple runs and check the list of active runs via the API":
let http = newAuthenticatedHttpClient(apiBase, "bob@builder.com", "password")
# Kick off multiple runs of the "long-running" job
let queuedRuns = toSeq((1..3)).map(proc (idx: int): Run =
let resp = http.post(apiBase & "/project/" & testProjName & "/step/long-running/run/0.3.1")
check resp.status.startsWith("200")
return parseRun(parseJson(resp.body)))
# Collect run ids.
let runIds = queuedRuns.mapIt($(it.id)).sorted(cmpIgnoreCase)
# Check on the runs
let getActiveResp = http.get(apiBase & "/project/" & testProjName & "/runs/active")
check getActiveResp.status.startsWith("200")
let activeRuns = parseJson(getActiveResp.body).getElems().mapIt(parseRun(it))
let activeRunIds = activeRuns.mapIt($(it.id)).sorted(cmpIgnoreCase)
# Make sure we see all runs in the active state.
check runIds == activeRunIds
let completedRuns = runIds.map(proc (runId: string): Run =
return http.waitForBuild(apiBase, testProjName, runId))
# Make sure all are completed and all are accounted for
check completedRuns.allIt(it.status.state == BuildState.complete)
check completedRuns.mapIt($(it.id)).sorted(cmpIgnoreCase) == runIds;
# Check that there are no more active runs
let getActiveResp2 = http.get(apiBase & "/project/" & testProjName & "/runs/active")
let remainingActiveRuns = parseJson(getActiveResp2.body).getElems().mapIt(parseRun(it))
check remainingActiveRuns.len == 0
# TODO
#test "kick off multiple runs and check the list of active runs via the API":
# check false
# Last-chance catch to kill the server in case some test err'ed and didn't
# reach it's teardown handler

@ -1 +1 @@
Subproject commit ab883bd9602a1373347a23c8bee4ed28dd475aec
Subproject commit 127be8f66fcc6d4d223acf56668d42ff9c37bfb0

Binary file not shown.

View File

@ -48,4 +48,4 @@ task test, "Runs both the unit and functional test suites.":
task dist, "Creates distributable package.":
exec "nimble build"
mkdir "dist"
exec "cp strawboss strawboss.config.json example.json dist/."
exec "cp strawboss strawboss.config.json dist/."

View File

@ -4,6 +4,7 @@
"steps": {
"compile": {
"artifacts": ["strawboss"],
"containerImage": "nimlang/nim:0.19.0",
"stepCmd": "nimble build"
},
"unittest": {

View File

@ -1,11 +0,0 @@
Run a build. Look for:
- Run request archived
- Output logs archived with the run request
- Artifacts archived in the build-data directory.
- Configuration for that version archived in configurations directory.
- Status for that version archived in the status directory
Run the build again for the same project and build ref:
- Build should be skipped.
- Run request should be archived.