Merge pull request #21 from tj-actions/add-support-for-tags

Added support for getting the current tag
This commit is contained in:
Tonye Jack 2021-04-24 06:47:14 -04:00 committed by GitHub
commit fdb3a42221
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 43 additions and 16 deletions

View File

@ -2,6 +2,8 @@ name: CI
on:
push:
tags:
- '*'
branches:
- main
pull_request:
@ -19,6 +21,7 @@ jobs:
id: branch-name
uses: ./
- name: Show output
if: "!startsWith(github.ref, 'refs/tags/')"
run: |
echo "Current Branch: ${{ steps.branch-name.outputs.current_branch }}"
echo "Base Ref: ${{ steps.branch-name.outputs.base_ref_branch }}"
@ -26,38 +29,43 @@ jobs:
echo "Ref: ${{ steps.branch-name.outputs.ref_branch }}"
echo "Is Default: ${{ steps.branch-name.outputs.is_default }}"
- name: Check is_default for pull request
if: github.event_name == 'pull_request' && steps.branch-name.outputs.is_default != 'false'
if: github.event_name == 'pull_request' && !startsWith(github.ref, 'refs/tags/') && steps.branch-name.outputs.is_default != 'false'
run: |
echo "Is default is invalid: ${{ steps.branch-name.outputs.is_default }}"
exit 1
- name: Check is_default for non pull request
if: github.event_name != 'pull_request' && steps.branch-name.outputs.is_default != 'true'
if: github.event_name != 'pull_request' && !startsWith(github.ref, 'refs/tags/') && steps.branch-name.outputs.is_default != 'true'
run: |
echo "Is default is invalid: ${{ steps.branch-name.outputs.is_default }}"
exit 1
- name: Test base ref output
if: github.event_name == 'pull_request' && !steps.branch-name.outputs.base_ref_branch
if: github.event_name == 'pull_request' && !startsWith(github.ref, 'refs/tags/') && !steps.branch-name.outputs.base_ref_branch
run: |
echo "Base ref unset: ${{ steps.branch-name.outputs.base_ref_branch }}"
exit 1
- name: Test head ref output
if: github.event_name == 'pull_request' && !steps.branch-name.outputs.head_ref_branch
if: github.event_name == 'pull_request' && !startsWith(github.ref, 'refs/tags/') && !steps.branch-name.outputs.head_ref_branch
run: |
echo "Head ref unset: ${{ steps.branch-name.outputs.head_ref_branch }}"
exit 1
- name: Test ref output
if: "!steps.branch-name.outputs.ref_branch"
if: "!steps.branch-name.outputs.ref_branch && !startsWith(github.ref, 'refs/tags/') "
run: |
echo "Ref unset: ${{ steps.branch-name.outputs.ref_branch }}"
exit 1
- name: Test current branch output for pull_request event.
if: github.event_name == 'pull_request' && !steps.branch-name.outputs.current_branch
if: github.event_name == 'pull_request' && !startsWith(github.ref, 'refs/tags/') && !steps.branch-name.outputs.current_branch
run: |
echo "Current branch unset: ${{ steps.branch-name.outputs.current_branch }}"
exit 1
- name: Test current branch output for push event.
if: github.event_name == 'push' && !steps.branch-name.outputs.current_branch
if: github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/') && !steps.branch-name.outputs.current_branch
run: |
echo "Current branch unset: ${{ steps.branch-name.outputs.current_branch }}"
exit 1
- name: Test current tag for push events.
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') && !steps.branch-name.outputs.tag
run: |
echo "Current tag unset: ${{ steps.branch-name.outputs.tag }}"
exit 1

View File

@ -14,6 +14,7 @@ Get branch information without the `/ref/*` prefix
| base_ref_branch | `string` | `main` | The target branch of a pull request |
| head_ref_branch | `string` | `feature/test` | The source branch of a pull request |
| ref_branch | `string` | `1/merge` *OR* `main` | The branch that triggered the workflow run |
| tag | `string` | `v0.0.1` *OR* `0.0.1` | The tag that triggered the workflow run |
## Usage
@ -78,6 +79,11 @@ Get branch information without the `/ref/*` prefix
echo "${{ steps.branch-name.outputs.base_ref_branch }}"
# Outputs: "main" for main <- PR branch.
- name: Get the current tag
if: startsWith(github.ref, 'refs/tags/')
run: |
echo "${{ steps.branch-name.outputs.tag }}"
# Outputs: "v0.0.1" OR "0.0.1"
```

View File

@ -31,19 +31,24 @@ outputs:
ref_branch:
value: ${{ steps.branch.outputs.ref_branch }}
description: 'The branch that triggered the workflow run.'
tag:
value: ${{ steps.branch.outputs.tag }}
description: 'The tag that triggered the workflow run.'
runs:
using: "composite"
steps:
- id: branch
run: |
export BASE_REF=${{ inputs.base_ref }}
export HEAD_REF=${{ inputs.head_ref }}
export REF=${{ inputs.ref }}
echo "::set-output name=base_ref_branch::${BASE_REF/refs\/heads\//}"
echo "::set-output name=head_ref_branch::${HEAD_REF/refs\/heads\//}"
REF_BRANCH=${REF/refs\/pull\//}
echo "::set-output name=ref_branch::${REF_BRANCH/refs\/heads\//}"
if [[ !${{ startsWith(inputs.ref, 'refs/tags/') }} ]]; then
export BASE_REF=${{ inputs.base_ref }}
export HEAD_REF=${{ inputs.head_ref }}
export REF=${{ inputs.ref }}
echo "::set-output name=base_ref_branch::${BASE_REF/refs\/heads\//}"
echo "::set-output name=head_ref_branch::${HEAD_REF/refs\/heads\//}"
REF_BRANCH=${REF/refs\/pull\//}
echo "::set-output name=ref_branch::${REF_BRANCH/refs\/heads\//}"
fi
shell: bash
- id: current_branch
run: |
@ -61,6 +66,14 @@ runs:
echo "::set-output name=is_default::false"
fi
shell: bash
- id: tag
run: |
if [[ ${{ startsWith(inputs.ref, 'refs/tags/') }} ]]; then
export REF=${{ inputs.ref }}
TAG=${REF/refs\/tags\//}
echo "::set-output name=tag::$TAG"
fi
shell: bash
branding:
icon: git-branch