Step CI Test Runner
npm install @stepci/runner
import { runFromFile } from '@stepci/runner'
runFromFile('./examples/status.yml').then(console.log)
import { run } from '@stepci/runner'
// Example workflow
const workflow = {
version: "1.0",
name: "Status Test",
env: {
host: "example.com"
},
tests: {
example: {
steps: [{
name: "GET request",
http: {
url: "https://${{env.host}}",
method: "GET",
check: {
status: "/^20/"
}
}
}]
}
}
}
run(workflow).then(console.log)
If you supply an EventEmitter
as argument, you can subscribe to following events:
-
step:http_request
, when a http request is made -
step:http_response
, when a http response is received -
step:grpc_request
, when a grpc request is made -
step:grpc_response
, when a grpc is received -
step:result
, when step finishes -
step:error
, when step errors -
test:result
, when test finishes -
workflow:result
, when workflow finishes -
loadtest:result
, when loadtest finishes
Example: Events
import { run } from '@stepci/runner'
import { EventEmitter } from 'node:events'
// Example workflow
const workflow = {
version: "1.0",
name: "Status Test",
env: {
host: "example.com"
},
tests: {
example: {
steps: [{
name: "GET request",
http: {
url: "https://${{env.host}}",
method: "GET",
check: {
status: "/^20/"
}
}
}]
}
}
}
const ee = new EventEmitter()
ee.on('done', console.log)
run(workflow, { ee })