feat(crg): add crg-grade and crg-badge justfile recipes #46
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # SPDX-License-Identifier: PMPL-1.0-or-later | |
| # Seambot - Seam hygiene and integration health | |
| # Part of gitbot-fleet | |
| name: Seambot Integration Health | |
| permissions: | |
| contents: read | |
| on: | |
| push: | |
| branches: [main, develop] | |
| pull_request: | |
| branches: [main] | |
| workflow_dispatch: | |
| jobs: | |
| seam-health: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 | |
| - name: Setup Rust toolchain | |
| uses: dtolnay/rust-toolchain@6d9817901c499d6b02debbb57edb38d33daa680b # stable | |
| with: | |
| toolchain: stable | |
| - name: Cache dependencies | |
| uses: Swatinem/rust-cache@ad397744b0d591a723ab90405b7247fac0e6b8db # v2 | |
| - name: Clone seambot | |
| run: | | |
| git clone https://github.com/hyperpolymath/seambot.git /tmp/seambot | |
| cd /tmp/seambot | |
| cargo build --release | |
| - name: Check for seam register | |
| id: check-seam | |
| run: | | |
| if [ -f spec/seams/seam-register.json ]; then | |
| echo "has_seam=true" >> $GITHUB_OUTPUT | |
| else | |
| echo "has_seam=false" >> $GITHUB_OUTPUT | |
| fi | |
| - name: Run seambot check | |
| if: steps.check-seam.outputs.has_seam == 'true' | |
| id: seambot | |
| continue-on-error: true | |
| run: | | |
| /tmp/seambot/target/release/seambot check > seambot-results.txt 2>&1 | |
| echo $? > seambot-exit-code.txt | |
| - name: Display results | |
| if: always() && steps.check-seam.outputs.has_seam == 'true' | |
| run: | | |
| if [ -f seambot-results.txt ]; then | |
| echo "## Seambot Integration Health Results" >> $GITHUB_STEP_SUMMARY | |
| echo '```' >> $GITHUB_STEP_SUMMARY | |
| cat seambot-results.txt >> $GITHUB_STEP_SUMMARY | |
| echo '```' >> $GITHUB_STEP_SUMMARY | |
| exit_code=$(cat seambot-exit-code.txt) | |
| if [ "$exit_code" = "0" ]; then | |
| echo "✅ All seam checks passed" >> $GITHUB_STEP_SUMMARY | |
| else | |
| echo "❌ Seam checks failed (exit code: $exit_code)" >> $GITHUB_STEP_SUMMARY | |
| fi | |
| fi | |
| - name: Skip message | |
| if: steps.check-seam.outputs.has_seam == 'false' | |
| run: | | |
| echo "## Seambot - Skipped" >> $GITHUB_STEP_SUMMARY | |
| echo "No spec/seams/seam-register.json found. Seambot checks are not applicable to this repository." >> $GITHUB_STEP_SUMMARY | |
| - name: Upload results | |
| if: always() && steps.check-seam.outputs.has_seam == 'true' | |
| uses: actions/upload-artifact@1eb3cb2b3e0f29609092a73eb033bb759a334595 # v4 | |
| with: | |
| name: seambot-results | |
| path: seambot-results.txt | |
| if-no-files-found: ignore |