https://github.com/stepci/runner
Step CI Test Runner
https://github.com/stepci/runner
hacktoberfest
Last synced: 9 months ago
JSON representation
Step CI Test Runner
- Host: GitHub
- URL: https://github.com/stepci/runner
- Owner: stepci
- License: mpl-2.0
- Created: 2022-09-14T09:07:01.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2025-04-05T18:33:54.000Z (over 1 year ago)
- Last Synced: 2025-10-10T02:26:14.994Z (9 months ago)
- Topics: hacktoberfest
- Language: TypeScript
- Homepage: https://stepci.com
- Size: 279 KB
- Stars: 20
- Watchers: 2
- Forks: 26
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Step CI Runner
Step CI Test Runner
## Installation
```
npm install @stepci/runner
```
## Usage
### Run workflow from file
```js
import { runFromFile } from '@stepci/runner'
runFromFile('./examples/status.yml').then(console.log)
```
### Run workflow from config
```js
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)
```
### Events
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**
```js
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 })
```