Skip to content

Commit

Permalink
Merge pull request #21 from tj-actions/add-support-for-tags
Browse files Browse the repository at this point in the history
Added support for getting the current tag
  • Loading branch information
jackton1 committed Apr 24, 2021
2 parents 592194a + e20a6f0 commit fdb3a42
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 16 deletions.
22 changes: 15 additions & 7 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ name: CI

on:
push:
tags:
- '*'
branches:
- main
pull_request:
Expand All @@ -19,45 +21,51 @@ 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 }}"
echo "Head Ref: ${{ steps.branch-name.outputs.head_ref_branch }}"
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
8 changes: 7 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -77,7 +78,12 @@ Get branch information without the `/ref/*` prefix
run: |
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"
```


Expand Down
29 changes: 21 additions & 8 deletions action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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: |
Expand All @@ -60,7 +65,15 @@ runs:
else
echo "::set-output name=is_default::false"
fi
shell: bash
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
Expand Down

0 comments on commit fdb3a42

Please sign in to comment.