Add test #1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
name: Test and Release | |
on: | |
push: | |
branches: | |
- '**' | |
tags-ignore: | |
- '**' | |
jobs: | |
lint: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Run ShellCheck | |
uses: ludeeus/action-shellcheck@2.0.0 | |
with: | |
check_together: 'yes' | |
test: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Setup bats | |
uses: bats-core/bats-action@2.0.0 | |
with: | |
bats-version: 1.11.0 | |
- name: Test | |
run: bats tests/*.bats | |
test-api-mode: # requires github API, didn't want to mock it | |
runs-on: ubuntu-latest | |
env: | |
github_token: ${{ github.token }} | |
steps: | |
- name: Checkout code # have to checkout to have the source code available | |
uses: actions/checkout@v4 | |
- name: Remove .git directory # remove the git directory to make the testing valid | |
run: rm -rf .git/ | |
- name: Test lookup version (with API) | |
id: version-lookup | |
env: | |
use_api: 'true' | |
run: ./version-lookup.sh | |
- name: Check lookup result | |
shell: bash | |
run: '[[ -n "${{ steps.version-lookup.outputs.CURRENT_VERSION }}" ]]' | |
- name: Test increment version (with API) | |
id: version-increment | |
run: ./version-increment.sh | |
env: | |
current_version: ${{ steps.version-lookup.outputs.CURRENT_VERSION }} | |
scheme: calver | |
use_api: 'true' | |
- name: Check increment result | |
shell: bash | |
run: '[[ "$(date +%Y.%-m)" == "$(echo "${{ steps.version-increment.outputs.VERSION }}" | cut -d "." -f 1-2)" ]]' | |
test-action-yml: # integration testing | |
needs: | |
- lint | |
- test | |
- test-api-mode | |
strategy: | |
matrix: | |
os: | |
- macos-latest | |
- ubuntu-latest | |
- windows-latest | |
fail-fast: true | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout code # have to checkout to have the source code available | |
uses: actions/checkout@v4 | |
- name: Remove .git directory # remove the git directory to make the testing valid | |
shell: bash | |
run: rm -rf .git/ | |
- name: Get next version via API | |
uses: ./ | |
id: version-via-api | |
with: | |
scheme: 'calver' | |
use_api: true | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Get next version via Git | |
uses: ./ | |
id: version-via-git | |
with: | |
scheme: 'calver' | |
use_api: false | |
- name: Check results agree | |
shell: bash | |
run: | | |
[[ "${{ steps.version-via-api.outputs.current-version }}" == "${{ steps.version-via-git.outputs.current-version }}" ]] | |
[[ "${{ steps.version-via-api.outputs.major-version }}" == "${{ steps.version-via-git.outputs.major-version }}" ]] | |
[[ "${{ steps.version-via-api.outputs.minor-version }}" == "${{ steps.version-via-git.outputs.minor-version }}" ]] | |
[[ "${{ steps.version-via-api.outputs.patch-version }}" == "${{ steps.version-via-git.outputs.patch-version }}" ]] | |
# Don't test the full version or pre-version, since the number of digits is likely to be different (9 via api vs. 7 via git) | |
release: | |
needs: | |
- test-action-yml | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- 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: Release version | |
uses: softprops/action-gh-release@v1 | |
if: ${{ github.ref_name == github.event.repository.default_branch }} | |
with: | |
draft: false | |
prerelease: false | |
tag_name: "${{ steps.version-increment.outputs.VERSION }}" |