Skip to content
Step Execution & Logs
step 1/5

Reading — step 1 of 5

Read

~1 min readExecution

Step Execution & Logs

For each step:

  1. Run a shell command (or invoke an action).
  2. Capture stdout + stderr → log streamed to UI in real-time.
  3. Exit code 0 → success; non-zero → failure.
python

Real CI runners stream logs to S3-style storage in chunks. Browsers display them via WebSocket from the API.

continue-on-error: even if step fails, continue to next step. Useful for non-critical lints.

Timeouts:

- run: pytest
  timeout-minutes: 10

Without timeout, hung tests hang the entire job. Default is usually 360 minutes; lower in pratice.

Environment variables:

  • Job-level: env: block
  • Step-level: env: per step
  • Secret: ${{ secrets.NPM_TOKEN }} injected from the CI provider's secret store

Secrets are masked in logs (replaced with ***). Sloppy code can leak secrets — echo $SECRET would be masked, but echo $SECRET | base64 is NOT (the b64 form isn't matched).

Discussion

Ask a question, share an insight, or help someone who’s stuck.

Sign in to post a comment or reply.

Loading…