name: Release

on:
  push:
    tags: ['v*']

permissions:
  contents: write
  id-token: write

jobs:
  publish:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 22
          registry-url: https://registry.npmjs.org
          cache: npm
      - run: npm ci
      - run: npm run build && npm test
      - name: Tag matches package.json
        run: test "v$(node -p "require('./package.json').version")" = "${GITHUB_REF_NAME}"
      # Trusted Publishing (OIDC) requires npm 11.5.1 or newer; no token needed
      - run: npm install -g npm@latest
      - run: npm publish
      - name: GitHub release
        run: |
          zip -qr "flag-icons-${GITHUB_REF_NAME}.zip" css svg png sass flags.json LICENSE README.md
          gh release create "$GITHUB_REF_NAME" "flag-icons-${GITHUB_REF_NAME}.zip" --title "$GITHUB_REF_NAME" --generate-notes
        env:
          GH_TOKEN: ${{ github.token }}
