Skip to content

ci: test matrix summary #5

ci: test matrix summary

ci: test matrix summary #5

Workflow file for this run

name: Deploy
on:
pull_request:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
entry: [sm, saas] # Add more entries as needed
steps:
- name: Checkout code
uses: actions/checkout@v2
# Your deployment step here
- name: Deploy to ${{ matrix.entry }}
run: |
# Your deployment script goes here
# Simulate deployment process and create a success/failure status
echo "Deploying to ${{ matrix.entry }}"
if [ "${{ matrix.entry }}" = "sm" ]; then
exit 0
else
exit 1
fi
- name: Save deployment status
if: always()
run: |
mkdir -p deployment_status
echo "${{ matrix.entry }}=${{ job.status }}" > deployment_status/status_${{ matrix.entry }}.txt
- name: Cache deployment status
if: always()
uses: actions/cache/save@v4
with:
path: deployment_status
key: deploy-status-${{ github.run_id }}-${{ github.run_attempt }}-${{ matrix.entry }}
summarize:
if: always()
needs: deploy
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Restore deployment status
uses: actions/cache/restore@v4
with:
path: deployment_status
key: deploy-status-${{ github.run_id }}-${{ github.run_attempt }}-
restore-keys: deploy-status-${{ github.run_id }}-${{ github.run_attempt }}-
- name: Summarize deployment statuses
run: |
summary="Deployment status summary:\n"
ls deployment_status
for file in deployment_status/status_*.txt; do
entry=$(basename "$file" .txt | cut -d'_' -f2)
status=$(cat "$file")
echo "$entry: $status\n"
summary+="$entry: $status\n"
done
echo "$summary" > summary.txt
echo "$summary"
- name: Post summary as a comment
uses: actions/github-script@v7
with:
script: |
const fs = require('fs');
const summary = fs.readFileSync('summary.txt', 'utf8');
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
body: summary,
});