name: CD concurrency: production on: # Allows you to run this workflow manually from the Actions tab workflow_dispatch: inputs: version: type: choice required: true description: Version options: - conventional - patch - minor - major - prerelease - from-package - from-git prerelease: type: choice description: Pre-release options: - - canary - beta dryrun: description: 'Dry-run' type: boolean run-name: Deploy ${{ inputs.version }} ${{ inputs.dryrun && '--dry-run' || '' }} ${{ inputs.prerelease && format('--prerelease {0}', inputs.prerelease) || '' }} jobs: deploy: runs-on: ubuntu-latest environment: production permissions: contents: write id-token: write env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} CONVENTIONAL_GITHUB_RELEASER_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: - uses: actions/checkout@v4 with: fetch-depth: 0 # Fetch all history for all tags and branches - uses: actions/setup-node@v4 with: node-version: 20 # this line is required for the setup-node action to be able to run the npm publish below. registry-url: 'https://registry.npmjs.org' - uses: fregante/setup-git-user@v1 - run: npm ci - run: npm test - run: npm link # consumers should use npm link wet-run or below npx wet-run ... - run: wet release ${{ inputs.version }} ${{ inputs.dryrun && '--dry-run' || '' }} ${{ inputs.prerelease && format('--prerelease {0}', inputs.prerelease) || '' }} --provenance --changelog --github-release --log-level verbose - name: Get NPM version id: npm-version uses: martinbeentjes/npm-get-version-action@v1.3.1 - name: Released ${{ steps.npm-version.outputs.current-version}} ✨ run: echo ${{ steps.npm-version.outputs.current-version}}