diff --git a/.github/actions/setup/action.yml b/.github/actions/setup/action.yml new file mode 100644 index 0000000..b634fa7 --- /dev/null +++ b/.github/actions/setup/action.yml @@ -0,0 +1,20 @@ +name: "Setup" +description: "Setup Node.js and pnpm and install dependencies" + +runs: + using: "composite" + steps: + - name: Setup pnpm # by default it uses the version set in the package.json as packageManager + uses: pnpm/action-setup@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version-file: ".nvmrc" + cache: "pnpm" + + - name: Install dependencies + shell: bash + env: + HUSKY: "0" + run: pnpm install --frozen-lockfile diff --git a/.github/workflows/lint-and-typecheck.yml b/.github/workflows/lint-and-typecheck.yml new file mode 100644 index 0000000..9345bc9 --- /dev/null +++ b/.github/workflows/lint-and-typecheck.yml @@ -0,0 +1,34 @@ +name: Lint and Typecheck + +on: + push: + branches: + - main + pull_request: + branches: + - main + +jobs: + lint: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Setup + uses: ./.github/actions/setup + + - name: Lint + run: pnpm lint + + typecheck: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Setup + uses: ./.github/actions/setup + + - name: Typecheck + run: pnpm typecheck