0

I define multiple commands to run in the same step of CircleCI job. I want the output of every commands to be appended to the stdout.

The commands are:

cat semantic-output.log | grep "^# \|^## " | grep -E "\b(\d+)\.(\d+)\.(\d+)\b" | tee cr-info/change.log || true
sed -n '/^### /,$p' semantic-output.log | tee cr-info/details.log || true

The file is like:

npm warn exec The following package was not found and will be installed: semantic-release@24.2.5
[6:34:45 AM] [semantic-release] › ⚠  Run automated release from branch main on repository git@github.com:MyCompany/foo.git in dry-run mode
[6:34:46 AM] [semantic-release] › ⚠  Skip v1.23.0 tag creation in dry-run mode
[6:34:46 AM] [semantic-release] › ⚠  Skip step "publish" of plugin "@semantic-release/github" in dry-run mode
[6:34:46 AM] [semantic-release] › ⚠  Skip step "success" of plugin "@semantic-release/github" in dry-run mode
[6:34:43 AM] [semantic-release] › ℹ  Running semantic-release version 24.2.5
[6:34:43 AM] [semantic-release] › ✔  Loaded plugin "verifyConditions" from "@semantic-release/github"
[6:34:43 AM] [semantic-release] › ✔  Loaded plugin "analyzeCommits" from "@semantic-release/commit-analyzer"
[6:34:43 AM] [semantic-release] › ✔  Loaded plugin "generateNotes" from "@semantic-release/release-notes-generator"
[6:34:43 AM] [semantic-release] › ✔  Loaded plugin "publish" from "@semantic-release/github"
[6:34:43 AM] [semantic-release] › ✔  Loaded plugin "addChannel" from "@semantic-release/github"
[6:34:43 AM] [semantic-release] › ✔  Loaded plugin "success" from "@semantic-release/github"
[6:34:43 AM] [semantic-release] › ✔  Loaded plugin "fail" from "@semantic-release/github"
[6:34:45 AM] [semantic-release] › ✔  Allowed to push to the Git repository
[6:34:45 AM] [semantic-release] › ℹ  Start step "verifyConditions" of plugin "@semantic-release/github"
[6:34:45 AM] [semantic-release] [@semantic-release/github] › ℹ  Verify GitHub authentication
[6:34:46 AM] [semantic-release] › ✔  Completed step "verifyConditions" of plugin "@semantic-release/github"
[6:34:46 AM] [semantic-release] › ℹ  Found git tag v1.22.0 associated with version 1.22.0 on branch main
[6:34:46 AM] [semantic-release] › ℹ  Found 6 commits since last release
[6:34:46 AM] [semantic-release] › ℹ  Start step "analyzeCommits" of plugin "@semantic-release/commit-analyzer"
[6:34:46 AM] [semantic-release] [@semantic-release/commit-analyzer] › ℹ  Analyzing commit: feature/xxx: yyy
[6:34:46 AM] [semantic-release] [@semantic-release/commit-analyzer] › ℹ  The release type for the commit is minor
[6:34:46 AM] [semantic-release] [@semantic-release/commit-analyzer] › ℹ  Analyzing commit: feature/xxx: yyy
[6:34:46 AM] [semantic-release] [@semantic-release/commit-analyzer] › ℹ  The release type for the commit is minor
[6:34:46 AM] [semantic-release] › ✔  Completed step "analyzeCommits" of plugin "@semantic-release/commit-analyzer"
[6:34:46 AM] [semantic-release] › ℹ  The next release version is 1.23.0
[6:34:46 AM] [semantic-release] › ℹ  Start step "generateNotes" of plugin "@semantic-release/release-notes-generator"
[6:34:46 AM] [semantic-release] › ✔  Completed step "generateNotes" of plugin "@semantic-release/release-notes-generator"
[6:34:46 AM] [semantic-release] › ✔  Published release 1.23.0 on default channel
[6:34:46 AM] [semantic-release] › ℹ  Release note for version 1.23.0:
# 1.23.0 (https://github.com/MyCompany/foo/compare/v1.22.0...v1.23.0) (2025-06-27)

Features

* **feature/xxx:** some message([yyyyyyy]...

But I only see the output of sed, not cat | grep.

Can I put more than one commands into one step while not wipe out the stdout buffer after each line?

WesternGun
  • 101
  • 2

0 Answers0