m2s2-cli 0.2.8

CLI for scaffolding M²S² design system projects
name: Tag Release

on:
  push:
    branches: [main]
    paths:
      - 'Cargo.toml'

jobs:
  tag:
    runs-on: ubuntu-22.04
    permissions:
      contents: write
    steps:
      - uses: actions/create-github-app-token@v1
        id: app-token
        with:
          app-id: ${{ secrets.APP_ID }}
          private-key: ${{ secrets.APP_PRIVATE_KEY }}

      - uses: actions/checkout@v4
        with:
          fetch-depth: 0
          token: ${{ steps.app-token.outputs.token }}

      - name: Get version from Cargo.toml
        id: version
        run: |
          VERSION=$(cargo metadata --no-deps --format-version 1 | jq -r '.packages[0].version')
          echo "version=$VERSION" >> "$GITHUB_OUTPUT"

      - name: Check if tag already exists
        id: tag-check
        run: |
          if git ls-remote --tags origin "refs/tags/v${{ steps.version.outputs.version }}" | grep -q .; then
            echo "exists=true" >> "$GITHUB_OUTPUT"
          else
            echo "exists=false" >> "$GITHUB_OUTPUT"
          fi

      - name: Push tag
        if: steps.tag-check.outputs.exists == 'false'
        run: |
          git config user.name "github-actions[bot]"
          git config user.email "github-actions[bot]@users.noreply.github.com"
          git tag "v${{ steps.version.outputs.version }}"
          git push origin "v${{ steps.version.outputs.version }}"
        env:
          GITHUB_TOKEN: ${{ steps.app-token.outputs.token }}