diff --git a/.github/workflows/outputs-demo.yml b/.github/workflows/outputs-demo.yml new file mode 100644 index 0000000..3eadec1 --- /dev/null +++ b/.github/workflows/outputs-demo.yml @@ -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<> $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 }}"