Skip to content

ensure pnpm exists

ensure pnpm exists #34

Workflow file for this run

name: Koii CI
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
setup:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
with:
version: 8
- name: Use Node.js 18.x
uses: actions/setup-node@v3
with:
node-version: 18.x
cache: 'pnpm'
- uses: actions/cache@v3
with:
path: "**/node_modules"
key: ${{ runner.os }}-modules-${{ hashFiles('**/pnpm-lock.yaml') }}
- name: Install dependencies
run: pnpm install --frozen-lockfile
lint:
needs: setup
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
with:
version: 8
- name: Use Node.js 18.x
uses: actions/setup-node@v3
with:
node-version: 18.x
- name: Load node_modules
uses: actions/cache@v3
with:
path: '**/node_modules'
key: ${{ runner.os }}-modules-${{ hashFiles('**/pnpm-lock.yaml') }}
- name: Run linter for koii
run: pnpm lint
test:
needs: setup
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
with:
version: 8
- name: Use Node.js 18.x
uses: actions/setup-node@v3
with:
node-version: 18.x
- name: Load node_modules
uses: actions/cache@v3
with:
path: '**/node_modules'
key: ${{ runner.os }}-modules-${{ hashFiles('**/pnpm-lock.yaml') }}
- name: Run test for koii
run: pnpm test
publish_pre_release:
name: "Publish new alpha version"
needs: [test, lint]
runs-on: ubuntu-latest
# only want to run this job when there's a pull request and never when there's a push to the main branch
if: github.repository_owner == 'BolajiOlajide' && github.event_name != 'push'
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
with:
version: 8
- name: Use Node.js 18.x
uses: actions/setup-node@v3
with:
node-version: 18.x
- name: Load node_modules
uses: actions/cache@v3
with:
path: '**/node_modules'
key: ${{ runner.os }}-modules-${{ hashFiles('**/pnpm-lock.yaml') }}
- name: Build
run: pnpm build
# In order to make a commit, we need to initialize a user.
# You may choose to write something less generic here if you want, it doesn't matter functionality wise.
- name: Initialize mandatory git config
run: |
git config user.name "BolajiOlajide"
git config user.email "25608335+BolajiOlajide@users.noreply.github.com"
- name: Bump Prerelease version
run: pnpm version --prerelease --preid alpha-${GITHUB_RUN_ID}
- name: get-npm-version
id: package-version
uses: martinbeentjes/npm-get-version-action@master
- name: Publish to NPMJS with YARN
run: pnpm publish --access public
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_AUTH_TOKEN }}
- name: Comment PR
uses: thollander/actions-comment-pull-request@v1
with:
message: 'Install with: `pnpm add koii@${{steps.package-version.outputs.current-version}}`'
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}