Reading — step 1 of 5
Read
~1 min readExecution
Step Execution & Logs
For each step:
- Run a shell command (or invoke an action).
- Capture stdout + stderr → log streamed to UI in real-time.
- 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…