name: Run npm version and push tags concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true permissions: contents: write on: workflow_dispatch: inputs: version: description: What version would you like to use? jobs: build: runs-on: ubuntu-latest strategy: matrix: node-version: [18.x] steps: - uses: actions/checkout@v4 with: fetch-depth: 0 token: ${{ secrets.GH_PUSH_TOKEN }} - name: Set up git-cliff uses: kenji-miyake/setup-git-cliff@v1 - name: setup git config run: | git config user.name "GitHub Actions Bot" git config user.email "<>" - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v3 with: node-version: ${{ matrix.node-version }} cache: 'yarn' - if: ${{ endsWith(github.event.inputs.version, '0') }} run: | PREV_COMMIT=$(git rev-list --tags --max-count=1) echo PREV=$(git describe --tags ${PREV_COMMIT}) >> $GITHUB_ENV - if: ${{ !endsWith(github.event.inputs.version, '0') }} run: echo PREV=$(git describe --abbrev=0) >> $GITHUB_ENV - name: Generate changelog if not pre-release continue-on-error: true if: ${{ !contains(github.event.inputs.version, '-') }} env: PREV: ${{ env.PREV }} run: | git-cliff ${PREV}..HEAD --tag v${{ github.event.inputs.version }} --prepend CHANGELOG.md git commit -am "docs: Update CHANGELOG.md" - run: yarn install --frozen-lockfile --ignore-scripts - name: npm version run: | npm version ${{ github.event.inputs.version }} --ignore-scripts git push origin ${{ github.ref_name }} git push --tags env: CI: true