mirror of
https://github.com/reecetech/version-increment.git
synced 2026-08-18 11:07:50 +00:00
Compare commits
16 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5f59cf0be0 | ||
|
|
26724048ca | ||
|
|
69ceeacf75 | ||
|
|
284d1792e3 | ||
|
|
9e616d7ba5 | ||
|
|
cfe1cec8c0 | ||
|
|
ca9517f82b | ||
|
|
d503d08693 | ||
|
|
a096ae3fb1 | ||
|
|
a29aa752dc | ||
|
|
f1dfe8f5a1 | ||
|
|
feaac9b904 | ||
|
|
36b965a12f | ||
|
|
9a52af87bc | ||
|
|
a5d65984a6 | ||
|
|
39ac246d0c |
49
.github/workflows/test-and-release.yml
vendored
49
.github/workflows/test-and-release.yml
vendored
@@ -13,7 +13,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v7
|
||||
|
||||
- name: Run ShellCheck
|
||||
uses: ludeeus/action-shellcheck@2.0.0
|
||||
@@ -24,12 +24,12 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v7
|
||||
|
||||
- name: Setup bats
|
||||
uses: bats-core/bats-action@2.0.0
|
||||
uses: bats-core/bats-action@4.0.0
|
||||
with:
|
||||
bats-version: 1.11.0
|
||||
bats-version: 1.14.0
|
||||
|
||||
- name: Test
|
||||
run: bats tests/*.bats
|
||||
@@ -40,7 +40,7 @@ jobs:
|
||||
github_token: ${{ github.token }}
|
||||
steps:
|
||||
- name: Checkout code # have to checkout to have the source code available
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v7
|
||||
|
||||
- name: Remove .git directory # remove the git directory to make the testing valid
|
||||
run: rm -rf .git/
|
||||
@@ -67,6 +67,18 @@ jobs:
|
||||
shell: bash
|
||||
run: '[[ "$(date +%Y.%-m)" == "$(echo "${{ steps.version-increment.outputs.VERSION }}" | cut -d "." -f 1-2)" ]]'
|
||||
|
||||
- name: Test conventional commit increment version (with API)
|
||||
id: version-increment-conventional
|
||||
run: ./version-increment.sh
|
||||
env:
|
||||
current_version: 1.2.3
|
||||
scheme: conventional_commits
|
||||
use_api: 'true'
|
||||
|
||||
- name: Check conventional commit increment result
|
||||
shell: bash
|
||||
run: '[[ -n "${{ steps.version-increment-conventional.outputs.VERSION }}" ]]'
|
||||
|
||||
test-action-yml: # integration testing
|
||||
needs:
|
||||
- lint
|
||||
@@ -82,7 +94,7 @@ jobs:
|
||||
runs-on: ${{ matrix.os }}
|
||||
steps:
|
||||
- name: Checkout code # have to checkout to have the source code available
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v7
|
||||
|
||||
- name: Remove .git directory # remove the git directory to make the testing valid
|
||||
shell: bash
|
||||
@@ -96,7 +108,7 @@ jobs:
|
||||
use_api: true
|
||||
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v7
|
||||
|
||||
- name: Get next version via Git
|
||||
uses: ./
|
||||
@@ -132,28 +144,25 @@ jobs:
|
||||
[[ "${{ steps.version-prefix.outputs.prefixed-version }}" = "foo/bar@0.0.1"* ]]
|
||||
|
||||
release:
|
||||
permissions:
|
||||
contents: write
|
||||
needs:
|
||||
- test-action-yml
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v7
|
||||
|
||||
- name: Lookup version
|
||||
id: version-lookup
|
||||
run: ./version-lookup.sh
|
||||
|
||||
- name: Increment version
|
||||
id: version-increment
|
||||
run: ./version-increment.sh
|
||||
env:
|
||||
current_version: ${{ steps.version-lookup.outputs.CURRENT_VERSION }}
|
||||
scheme: calver
|
||||
- name: Get next version
|
||||
uses: ./
|
||||
id: version
|
||||
with:
|
||||
scheme: 'calver'
|
||||
|
||||
- name: Release version
|
||||
uses: softprops/action-gh-release@v1
|
||||
uses: softprops/action-gh-release@v3
|
||||
if: ${{ github.ref_name == github.event.repository.default_branch }}
|
||||
with:
|
||||
draft: false
|
||||
prerelease: false
|
||||
tag_name: "${{ steps.version-increment.outputs.VERSION }}"
|
||||
tag_name: "${{ steps.version.outputs.version }}"
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Get next version
|
||||
uses: reecetech/version-increment@2024.4.3
|
||||
uses: reecetech/version-increment@2024.10.1
|
||||
id: version
|
||||
with:
|
||||
scheme: semver
|
||||
@@ -34,7 +34,7 @@ use the API mode:
|
||||
|
||||
```yaml
|
||||
- name: Get next version
|
||||
uses: reecetech/version-increment@2024.4.3
|
||||
uses: reecetech/version-increment@2024.10.1
|
||||
id: version
|
||||
with:
|
||||
use_api: true
|
||||
|
||||
@@ -44,7 +44,7 @@ inputs:
|
||||
description: |
|
||||
Prefix the tag with a string (defaults to empty string). e.g. if set to `@org/product/` the action will filter by this prefix and return `@org/product/1.2.3` in `prefixed-version` output
|
||||
required: false
|
||||
default: false
|
||||
default: ''
|
||||
|
||||
outputs:
|
||||
current-version:
|
||||
|
||||
@@ -282,6 +282,34 @@ function init_repo {
|
||||
[[ "$output" = *"VERSION=$(date +%Y.%-m.1)+pre.${short_ref}"* ]]
|
||||
}
|
||||
|
||||
@test "uses the API commit message for conventional commits without a checkout" {
|
||||
local no_checkout_dir="${BATS_TEST_TMPDIR}/no-checkout"
|
||||
local mock_bin="${BATS_TEST_TMPDIR}/bin"
|
||||
|
||||
mkdir -p "${no_checkout_dir}" "${mock_bin}"
|
||||
printf '%s\n' \
|
||||
'#!/usr/bin/env bash' \
|
||||
'printf "%s\n" "{\"commit\":{\"message\":\"feat: API-only change\"}}"' \
|
||||
> "${mock_bin}/curl"
|
||||
chmod +x "${mock_bin}/curl"
|
||||
|
||||
export PATH="${mock_bin}:${PATH}"
|
||||
export current_version=1.2.3
|
||||
export scheme="conventional_commits"
|
||||
export use_api="true"
|
||||
export github_token="test-token"
|
||||
export GITHUB_REF="refs/heads/main"
|
||||
export GITHUB_SHA="abcdef1234567890"
|
||||
export GITHUB_API_URL="https://fake.github.example.com"
|
||||
export GITHUB_REPOSITORY="gh-org/example"
|
||||
|
||||
run bash -c 'cd "$1" && version-increment.sh' -- "${no_checkout_dir}"
|
||||
|
||||
print_run_info
|
||||
[ "$status" -eq 0 ] &&
|
||||
[[ "$output" = *"VERSION=1.3.0"* ]]
|
||||
}
|
||||
|
||||
@test "increments the patch version after a fix commit (conventional commits)" {
|
||||
init_repo
|
||||
|
||||
|
||||
@@ -63,7 +63,18 @@ fi
|
||||
## Conventional commits
|
||||
if [[ "${scheme}" == 'conventional_commits' ]] ; then
|
||||
# Get message from given commit
|
||||
commit_message=$(git log -1 --pretty=format:%B "${git_commit_sha}")
|
||||
if [[ "${use_api:-}" == 'true' ]] ; then
|
||||
commit_message="$(
|
||||
curl -fsSL \
|
||||
-H "Accept: application/vnd.github+json" \
|
||||
-H "Authorization: Bearer ${github_token}" \
|
||||
-H "X-GitHub-Api-Version: 2022-11-28" \
|
||||
"${GITHUB_API_URL}/repos/${GITHUB_REPOSITORY}/commits/${git_commit_sha}" \
|
||||
| jq -r '.commit.message'
|
||||
)"
|
||||
else
|
||||
commit_message="$(git log -1 --pretty=format:%B "${git_commit_sha}")"
|
||||
fi
|
||||
|
||||
# Check commit message header
|
||||
found_match='false'
|
||||
|
||||
Reference in New Issue
Block a user