Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
83 changes: 83 additions & 0 deletions .github/workflows/outputs-demo.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
name: Outputs Demo

on:
- push

jobs:
info:
name: info
runs-on: ubuntu-latest
outputs:
commit-sha: ${{ steps.commit.outputs.sha }}
branch-name: ${{ steps.branch.outputs.branch }}
commit-message: ${{ steps.message.outputs.message }}
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Get commit SHA
id: commit
run: |
SHA=$(git rev-parse --short HEAD)
echo "sha=$SHA" >> $GITHUB_OUTPUT
# Get current branch name
- name: Get branch name
id: branch
run: |
BRANCH=$(git rev-parse --abbrev-ref HEAD)
echo "branch=$BRANCH" >> $GITHUB_OUTPUT
# Get the commit message
- name: Get commit message
id: message
run: |
MESSAGE=$(git log -1 --pretty=%B)
echo "message=$MESSAGE" >> $GITHUB_OUTPUT

build:
name: Build Project
runs-on: ubuntu-latest
needs: info
outputs:
build-report: ${{ steps.report.outputs.content }}
steps:
# Remember we have to check out the repository first!
- name: Checkout repository
uses: actions/checkout@v5

# This step installs the dependencies
- name: Install dependencies
run: npm ci

- name: Print build info
run: |
echo "Building commit ${{ needs.info.outputs.commit-sha }} on branch ${{ needs.info.outputs.branch-name }}"

- name: Generate build report
id: report
run: |
{
echo "content<<EOF"
echo "Build Report"
echo "============"
echo "Node.js: $(node --version)"
echo "npm: $(npm --version)"
echo "Status: SUCCESS"
echo "EOF"
} >> $GITHUB_OUTPUT

- name: Build
run: npm run build

summary:
name: Summary
runs-on: ubuntu-latest
needs: [info, build]
steps:
- name: Print summary
run: |
echo "## Build Summary"
echo ""
echo "- **Commit SHA:** ${{ needs.info.outputs.commit-sha }}"
echo "- **Branch Name:** ${{ needs.info.outputs.branch-name }}"
echo "- **Commit Message:** ${{ needs.info.outputs.commit-message }}"
echo ""
echo "${{ needs.build.outputs.build-report }}"