Skip to content

feat: calculate branch reusable workflow #1

feat: calculate branch reusable workflow

feat: calculate branch reusable workflow #1

name: Calculate Branch
on:
workflow_call:
inputs:
branch:
description: The branch name
required: true
type: string
repo:
description: The GitHub repository name
required: true
type: string
outputs:
branch: ${{ steps.calculate_branch.outputs.branch }}
found: ${{ steps.calculate_branch.outputs.found }}
sha: ${{ steps.calculate_branch.outputs.sha }}
sha_short: ${{ steps.calculate_branch.outputs.sha_short }}
secrets:
github_token:

Check failure on line 19 in .github/workflows/calculate-branch.yaml

View workflow run for this annotation

GitHub Actions / .github/workflows/calculate-branch.yaml

Invalid workflow file

secret name `github_token` within `workflow_call` can not be used since it would collide with system reserved name
required: true
jobs:
calculate-branch:
runs-on: ubuntu-latest
steps:
- name: Calculate Branch
id: calculate_branch
env:
GH_TOKEN: ${{ secrets.github_token }}
run: |
requested_branch="${{ inputs.branch }}"
repo="${{ inputs.repo }}"
branch_name=
found=
echo "Checking to see if the branch \"${requested_branch}\" exists in this project."
branch_info=$(gh api "/repos/encodium/${repo}/branches/$requested_branch" --jq '{name: .name, sha: .commit.sha}')
branch_name_candidate=$(echo "$branch_info" | jq -r '.name')
sha=$(echo "$branch_info" | jq -r '.sha')
sha_short=$(echo "$branch_info" | jq -r '.sha[:7]')
echo "Branch name from response: ${branch_name_candidate}"
echo "SHA from response: ${sha}"
echo "SHA (short) from response: ${sha_short}"
if [[ "$branch_name_candidate" == "$requested_branch" ]];
then
echo "Branch \"${branch_name_candidate}\" found."
branch_name="$branch_name_candidate"
found=true
fi
echo "branch=$branch_name" >> "$GITHUB_OUTPUT"
echo "found=$found" >> "$GITHUB_OUTPUT"
echo "sha=$sha" >> "$GITHUB_OUTPUT"
echo "sha_short=$sha_short" >> "$GITHUB_OUTPUT"