Path error #64
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 | |
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 | |
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 |