Skip to content

ci: add typecheck && improve workflows #20

ci: add typecheck && improve workflows

ci: add typecheck && improve workflows #20

Workflow file for this run

name: CI
on:
push:
branches:
- "main"
paths:
- "src/**.tsx?"
- "package.json"
- "tsconfig.json"
- ".github/workflows/ci.yml"
pull_request:
paths:
- "src/**.tsx?"
- "scripts/**"
- "package.json"
- "tsconfig.json"
- ".github/workflows/ci.yml"
env:
default_node_version: "lts/*"
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: "recursive"
- uses: pnpm/action-setup@v2
name: Install pnpm
- uses: actions/setup-node@v4
with:
node-version: ${{env.default_node_version}}
cache: pnpm
- name: Install Dependencies
run: pnpm i
- name: Lint
run: |
pnpm run lint
type:
name: Type Check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
name: Install pnpm
- uses: actions/setup-node@v4
with:
node-version: ${{env.default_node_version}}
cache: pnpm
- name: Install Dependencies
run: pnpm i
- name: Lint
run: |
pnpm run lint:type
build:
uses: ./.github/workflows/build.yml
test-ve:
name: test-ve
needs: build
runs-on: ${{ matrix.os }}
services:
verdaccio:
image: verdaccio/verdaccio:5
ports:
- 4873:4873
strategy:
matrix:
os: [ubuntu-latest]
pm: ["pnpm", "npm", "yarn"]
fail-fast: false
steps:
- uses: actions/checkout@v4
with:
submodules: "recursive"
- uses: actions/download-artifact@v4
with:
name: artifact
- uses: pnpm/action-setup@v2
name: Install pnpm
if: ${{ matrix.pm == 'pnpm' }}
- uses: actions/setup-node@v4
with:
node-version: ${{env.default_node_version}}
- name: login to 'verdaccio'
run: npx npm-cli-login -u test -p 1234 -e [email protected] -r http://localhost:4873
- name: version for 'verdaccio'
run: |
npm version patch --commit-hooks false --git-tag-version false
- name: publish to 'verdaccio'
run: |
npm publish --registry http://localhost:4873
- name: config for test
run: |
mkdir ../.temp
${{ matrix.pm }} config set registry http://localhost:4873/
- name: Test via ${{ matrix.pm }}
working-directory: ../.temp/
timeout-minutes: 5
run: |
${{ matrix.pm }} create hexo
test-ln:
name: test-ln
needs: build
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [windows-latest, macos-latest]
pm: ["pnpm", "npm"]
fail-fast: false
steps:
- uses: actions/checkout@v4
# with:
# submodules: "recursive"
- uses: actions/download-artifact@v4
with:
name: artifact
- uses: pnpm/action-setup@v2
name: Install pnpm
if: ${{ matrix.pm == 'pnpm' }}
- uses: actions/setup-node@v4
with:
node-version: ${{env.default_node_version}}
- name: config for test
run: |
mkdir ../temp
node scripts/getVersion.mjs
- name: Link via ${{ matrix.pm }}
working-directory: ../temp/
timeout-minutes: 5
run: |
${{ matrix.pm }} add ../create-hexo/create-hexo-${{env.version}}.tgz
- name: Test via ${{ matrix.pm }}
working-directory: ../temp/
timeout-minutes: 5
run: |
${{ matrix.pm }} exec create-hexo test