fix: only trigger release workflow when new tag is created #2
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: Tag | |
| on: | |
| push: | |
| branches: | |
| - main | |
| workflow_dispatch: | |
| jobs: | |
| tag: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: write | |
| actions: write | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Set up Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: "lts/*" | |
| - name: Install plugins | |
| run: npm install @semantic-release/git @semantic-release/exec | |
| - name: Run semantic-release | |
| id: release | |
| run: | | |
| before=$(git tag -l | sort -V | tail -1) | |
| npx semantic-release | |
| after=$(git tag -l | sort -V | tail -1) | |
| if [ "$before" != "$after" ]; then | |
| echo "released=true" >> "$GITHUB_OUTPUT" | |
| echo "new_tag=$after" >> "$GITHUB_OUTPUT" | |
| else | |
| echo "released=false" >> "$GITHUB_OUTPUT" | |
| fi | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Trigger release workflow | |
| if: steps.release.outputs.released == 'true' | |
| run: | | |
| gh workflow run release.yml --ref main | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |