name: Build and Release on: push: tags: - 'v*' jobs: # NPM Registry & GitHub Release release: # Use Windows Server 2022 runs-on: windows-2022 steps: # Step I - name: Get Source Code uses: actions/checkout@v3 with: fetch-depth: 0 # Step II - name: Setup Node.js uses: actions/setup-node@v3 with: node-version: 18 registry-url: https://registry.npmjs.com # Step III - name: Install Dependencies run: npm ci # Step IV - name: Build Project run: npm run build # Step V - name: Create tar.gz File uses: TheDoctor0/zip-release@0.7.1 with: type: tar path: dist/ filename: build.tar.gz # Step VI - name: Publish to NPM Registry uses: rxfork/npm-publish@v1 with: token: ${{ secrets.NPM_TOKEN }} # Step VII - name: Generate Changelog run: npx changelogithub@0.12 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Step VIII # / pre-release - name: GitHub Release (pre-release) if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') && contains(github.ref, '-') uses: softprops/action-gh-release@v1 with: prerelease: true files: | dist/* build.tar.gz # / release - name: GitHub Release (release) if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') && contains(github.ref, '-') == false uses: softprops/action-gh-release@v1 with: prerelease: false files: | dist/* build.tar.gz # Authored by @kuohuanhuan.