Updated arduino/nicla_vision LABS part #135
Workflow file for this run
This file contains 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
name: '๐ฎ Workflow Controller' | |
on: | |
workflow_dispatch: # Manual trigger | |
push: | |
branches: [main, dev] | |
pull_request: | |
branches: [main, dev] | |
jobs: | |
checkout: | |
runs-on: ubuntu-latest | |
steps: | |
- name: ๐ฅ Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
# Quality Check Jobs (Run on PRs and Pushes) | |
structure-check: | |
needs: checkout | |
uses: ./.github/workflows/structure-check.yml | |
link-check: | |
needs: checkout | |
uses: ./.github/workflows/link-check.yml | |
lint-markdown: | |
needs: checkout | |
uses: ./.github/workflows/lint-markdown.yml | |
# Metadata Update Jobs (Run Only After Merge to dev) | |
update-changelog: | |
needs: [structure-check, link-check, lint-markdown] | |
uses: ./.github/workflows/update-changelog.yml | |
update-contributors: | |
needs: [structure-check, link-check, lint-markdown] | |
uses: ./.github/workflows/update-contributors.yml | |
# Build Jobs | |
build-dev: | |
name: ๐ง Development Build | |
if: github.ref == 'refs/heads/dev' | |
needs: [update-changelog, update-contributors] | |
strategy: | |
matrix: | |
os: [ubuntu-latest, windows-latest] | |
uses: ./.github/workflows/quarto-build.yml | |
with: | |
environment: development | |
os: ${{ matrix.os }} | |
target: dev | |
secrets: | |
SSH_DEPLOY_KEY: ${{ secrets.SSH_DEPLOY_KEY }} | |
build-main: | |
name: ๐ Production Build | |
if: github.ref == 'refs/heads/main' && github.event_name == 'push' | |
needs: [update-changelog, update-contributors] | |
uses: ./.github/workflows/quarto-build.yml | |
with: | |
environment: production | |
os: ubuntu-latest | |
target: main | |
secrets: | |
SSH_DEPLOY_KEY: ${{ secrets.SSH_DEPLOY_KEY }} | |
# Status Reporting | |
report-status: | |
needs: [ | |
structure-check, | |
link-check, | |
lint-markdown, | |
update-changelog, | |
update-contributors, | |
build-main, | |
build-dev | |
] | |
if: always() | |
runs-on: ubuntu-latest | |
steps: | |
- name: ๐ Create Status Report | |
run: | | |
{ | |
echo "# ๐ Workflow Status Report" | |
echo | |
echo "## ๐ Quality Checks" | |
echo "- Structure Check: ${{ needs.structure-check.result == 'success' && 'โ Passed' || 'โ Failed' }}" | |
echo "- Link Check: ${{ needs.link-check.result == 'success' && 'โ Passed' || 'โ Failed' }}" | |
echo "- Markdown Lint: ${{ needs.lint-markdown.result == 'success' && 'โ Passed' || 'โ Failed' }}" | |
echo | |
echo "## ๐ Metadata Updates" | |
echo "- Changelog: ${{ needs.update-changelog.result == 'success' && 'โ Updated' || 'โ Failed' }}" | |
echo "- Contributors: ${{ needs.update-contributors.result == 'success' && 'โ Updated' || 'โ Failed' }}" | |
echo | |
if [[ "${{ github.ref }}" == "refs/heads/main" ]]; then | |
echo "## ๐ Production Build" | |
echo "- Main Build: ${{ needs.build-main.result == 'success' && 'โ Success' || 'โ Failed' }}" | |
fi | |
if [[ "${{ github.ref }}" == "refs/heads/dev" ]]; then | |
echo "## ๐ง Development Build" | |
echo "- Dev Build: ${{ needs.build-dev.result == 'success' && 'โ Success' || 'โ Failed' }}" | |
fi | |
echo | |
echo "---" | |
echo "โฐ Completed at: $(date '+%Y-%m-%d %H:%M:%S')" | |
} >> $GITHUB_STEP_SUMMARY | |
- name: ๐ Check Overall Status | |
if: always() | |
run: | | |
FAILED=0 | |
# Check quality checks | |
[[ "${{ needs.structure-check.result }}" != "success" ]] && FAILED=1 | |
[[ "${{ needs.link-check.result }}" != "success" ]] && FAILED=1 | |
[[ "${{ needs.lint-markdown.result }}" != "success" ]] && FAILED=1 | |
# Check metadata updates | |
[[ "${{ needs.update-changelog.result }}" != "success" ]] && FAILED=1 | |
[[ "${{ needs.update-contributors.result }}" != "success" ]] && FAILED=1 | |
# Check builds based on branch | |
if [[ "${{ github.ref }}" == "refs/heads/main" ]]; then | |
[[ "${{ needs.build-main.result }}" != "success" ]] && FAILED=1 | |
fi | |
if [[ "${{ github.ref }}" == "refs/heads/dev" ]]; then | |
[[ "${{ needs.build-dev.result }}" != "success" ]] && FAILED=1 | |
fi | |
if [[ $FAILED -eq 1 ]]; then | |
echo "::error::โ One or more workflow steps failed" | |
exit 1 | |
else | |
echo "โ All checks passed successfully" | |
fi |