diff --git a/.github/workflows/prerelease.yml b/.github/workflows/prerelease.yml new file mode 100644 index 0000000..87e4b36 --- /dev/null +++ b/.github/workflows/prerelease.yml @@ -0,0 +1,79 @@ +name: Nuxt [Pre-Release] + +env: + node_version: 20 + changelog_user: Github CI + changelog_email: artem@manchenkoff.me + NODE_AUTH_TOKEN: ${{ secrets.npm_token }} + NODE_REGISTRY: https://registry.npmjs.org/ # setup credentials for npm + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # pass token to generate changelog + +concurrency: + group: nuxt-laravel-echo-release + cancel-in-progress: false + +permissions: + contents: write + id-token: write + +on: + workflow_dispatch: # manual trigger + +jobs: + lint: + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Enable corepack + run: corepack enable + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: ${{ env.node_version }} + + - name: Install dependencies + run: npx nypm@latest i + + - name: Prepare stubs + run: pnpm dev:prepare + + - name: Validate package + run: pnpm validate + + publish: + runs-on: ubuntu-latest + needs: lint + + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 # fetch all history for tags + + - name: Enable corepack + run: corepack enable + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: ${{ env.node_version }} + registry-url: ${{ env.NODE_REGISTRY }} + + - name: Install dependencies + run: npx nypm@latest i + + - name: Prepare stubs + run: pnpm dev:prepare + + - name: Build + run: pnpm prepack + + - name: Generate changelog and publish release + run: | + git config --global user.name "${{ env.changelog_user }}" + git config --global user.email "${{ env.changelog_email }}" + pnpm changelogen --release --push --publish --prerelease --publishTag beta