Skip to content

Commit f1460d6

Browse files
committed
Support including/excluding specific version patterns
1 parent 07a2fe6 commit f1460d6

File tree

6 files changed

+83
-3
lines changed

6 files changed

+83
-3
lines changed

.github/workflows/depup.yml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,3 +43,19 @@ jobs:
4343
repo: thinca/vim-themis
4444
tag: true
4545
labels: demo
46+
47+
include:
48+
runs-on: ubuntu-latest
49+
steps:
50+
- uses: actions/checkout@v4
51+
- uses: ./with-pr
52+
id: depup
53+
with:
54+
file: testdata/testfile
55+
version_name: TERRAFORM_VERSION
56+
repo: hashicorp/terraform
57+
include: '^\d+\.\d+\.\d+$'
58+
labels: demo
59+
60+
- name: Check diff
61+
run: git diff

.github/workflows/test.yml

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,3 +76,33 @@ jobs:
7676

7777
- name: Check diff
7878
run: git diff
79+
80+
include:
81+
runs-on: ubuntu-latest
82+
steps:
83+
- uses: actions/checkout@v4
84+
- uses: ./
85+
id: depup
86+
with:
87+
file: testdata/testfile
88+
version_name: TERRAFORM_VERSION
89+
repo: hashicorp/terraform
90+
include: '^\d+\.\d+\.\d+$'
91+
92+
- name: Check diff
93+
run: git diff
94+
95+
exclude:
96+
runs-on: ubuntu-latest
97+
steps:
98+
- uses: actions/checkout@v4
99+
- uses: ./
100+
id: depup
101+
with:
102+
file: testdata/testfile
103+
version_name: TERRAFORM_VERSION
104+
repo: hashicorp/terraform
105+
exclude: '-(alpha|beta|rc)'
106+
107+
- name: Check diff
108+
run: git diff

action.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,12 @@ inputs:
1818
description: 'Check tags instead of releases.'
1919
default: 'false'
2020
required: false
21+
include:
22+
description: 'Regular expression to use only matched versions.'
23+
required: false
24+
exclude:
25+
description: 'Regular expression not to use matched versions.'
26+
required: false
2127
outputs:
2228
current:
2329
description: 'current version'

entrypoint.sh

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,23 @@ list_versions() {
3737
fi
3838
}
3939

40+
# Filter given version list using given include/exclude regular expressions.
41+
filter_versions() {
42+
list=$(cat)
43+
44+
if [ -n "${INPUT_INCLUDE}" ]; then
45+
echo "include pattern: ${INPUT_INCLUDE}" >&2
46+
list="$(echo "${list}" | grep -P -- "${INPUT_INCLUDE}")"
47+
fi
48+
49+
if [ -n "${INPUT_EXCLUDE}" ]; then
50+
echo "exclude pattern: ${INPUT_EXCLUDE}" >&2
51+
list="$(echo "${list}" | grep -vP -- "${INPUT_EXCLUDE}")"
52+
fi
53+
54+
echo "${list}"
55+
}
56+
4057
set_output() {
4158
name=$1
4259
value=$2
@@ -50,6 +67,7 @@ set_output() {
5067
LATEST_VERSION="$(\
5168
list_versions | \
5269
grep -oP '\d+(\.\d+)+(-[^'\''\"\s]*)?$'| \
70+
filter_versions | \
5371
sort --version-sort --reverse | \
5472
head -n1 \
5573
)"

testdata/testfile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,3 +41,5 @@ POETRY_VERSION="1.1.3"
4141
ENV POETRY_VERSION='1.1.3'
4242

4343
THEMIS_VERSION=1.5
44+
45+
TERRAFORM_VERSION=1.8

with-pr/action.yml

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,12 @@ inputs:
1818
description: 'Check tags instead of releases.'
1919
default: 'false'
2020
required: false
21+
include:
22+
description: 'Regular expression to use only matched versions.'
23+
required: false
24+
exclude:
25+
description: 'Regular expression not to use matched versions.'
26+
required: false
2127
tag_prefix:
2228
description: 'Tag prefix used for building link in PR description'
2329
default: 'v'
@@ -28,13 +34,13 @@ inputs:
2834
outputs:
2935
current:
3036
description: 'current version'
31-
value: ${{ steps.depup.outputs.current }}
37+
value: ${{ steps.depup.outputs.current }}
3238
latest:
3339
description: 'latest version'
34-
value: ${{ steps.depup.outputs.latest }}
40+
value: ${{ steps.depup.outputs.latest }}
3541
repo:
3642
description: 'target GitHub repository. Same as the repo from input.'
37-
value: ${{ steps.depup.outputs.repo }}
43+
value: ${{ steps.depup.outputs.repo }}
3844

3945
runs:
4046
using: 'composite'
@@ -46,6 +52,8 @@ runs:
4652
file: ${{ inputs.file }}
4753
version_name: ${{ inputs.version_name }}
4854
repo: ${{ inputs.repo }}
55+
include: ${{ inputs.include }}
56+
exclude: ${{ inputs.exclude }}
4957
tag: ${{ inputs.tag }}
5058
- name: Create Pull Request
5159
uses: peter-evans/create-pull-request@v6

0 commit comments

Comments
 (0)