chore(release): v1.16.1 #14
This file contains hidden or 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: CI | |
| on: | |
| pull_request: | |
| branches: [ main ] | |
| push: | |
| branches: [ main ] | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| jobs: | |
| shellcheck: | |
| name: Shellcheck | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 | |
| - name: Run shellcheck on main script | |
| run: shellcheck aicommit | |
| - name: Run shellcheck on install script | |
| run: shellcheck install.sh | |
| - name: Run shellcheck on test helpers | |
| run: | | |
| if [ -d tests/helpers ]; then | |
| shellcheck tests/helpers/*.bash || true | |
| fi | |
| integration-tests: | |
| name: Integration Tests | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, macos-latest] | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 | |
| - name: Install dependencies (Ubuntu) | |
| if: runner.os == 'Linux' | |
| run: sudo apt-get update && sudo apt-get install -y jq curl git | |
| - name: Install dependencies (macOS) | |
| if: runner.os == 'macOS' | |
| run: brew install jq curl git | |
| - name: Install BATS | |
| run: | | |
| git clone https://github.com/bats-core/bats-core.git /tmp/bats-core | |
| cd /tmp/bats-core | |
| sudo ./install.sh /usr/local | |
| - name: Run tests | |
| env: | |
| OPENAI_API_KEY: test-key-for-ci | |
| run: ./tests/run-tests.sh | |
| install-validation: | |
| name: Install Script Validation | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, macos-latest] | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 | |
| - name: Install dependencies | |
| run: | | |
| if [ "$RUNNER_OS" == "Linux" ]; then | |
| sudo apt-get update && sudo apt-get install -y jq curl git | |
| else | |
| brew install jq curl git | |
| fi | |
| - name: Run install script | |
| run: ./install.sh | |
| - name: Verify installation | |
| run: | | |
| aicommit --help | |
| # Test git integration (use -h instead of --help to avoid man page lookup) | |
| git aicommit -h | |
| changelog-validation: | |
| name: CHANGELOG Validation | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 | |
| - name: Validate CHANGELOG format | |
| run: | | |
| if [ ! -f CHANGELOG.md ]; then | |
| echo "❌ CHANGELOG.md not found" | |
| exit 1 | |
| fi | |
| echo "Checking CHANGELOG.md format..." | |
| if ! grep -q "# Changelog" CHANGELOG.md; then | |
| echo "❌ Missing '# Changelog' header" | |
| exit 1 | |
| fi | |
| if ! grep -q "## \[Unreleased\]" CHANGELOG.md; then | |
| echo "❌ Missing '## [Unreleased]' section" | |
| exit 1 | |
| fi | |
| if ! grep -q "keepachangelog.com" CHANGELOG.md; then | |
| echo "❌ Missing keepachangelog.com reference" | |
| exit 1 | |
| fi | |
| echo "✅ CHANGELOG.md is valid" |