Skip to content

Commit

Permalink
chore: update changes
Browse files Browse the repository at this point in the history
  • Loading branch information
fu050409 committed Oct 20, 2024
1 parent 77b3995 commit 8390020
Show file tree
Hide file tree
Showing 4 changed files with 221 additions and 71 deletions.
230 changes: 162 additions & 68 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
@@ -1,15 +1,146 @@
name: Nightly Release CI
# on:
# pull_request:
# branches:
# - refactor/node

on: [pull_request]
name: E2E Tests
on:
pull_request:
branches:
- main

jobs:
call-rust-build:
uses: ./.github/workflows/rust-build.yaml

# examples-test:
# name: Examples Test
# runs-on: ${{ matrix.settings.os }}
# needs: [call-rust-build]
# strategy:
# fail-fast: false
# matrix:
# settings:
# - os: ubuntu-latest
# abi: linux-x64-gnu
# - os: macos-latest
# abi: darwin-arm64
# - os: macos-13
# abi: darwin-x64
# - os: windows-latest
# abi: win32-x64-msvc
# steps:
# - uses: actions/checkout@v3
# - uses: actions/setup-node@v3
# with:
# node-version: 18
# - name: Install Dependencies
# run: npm install -g pnpm@9.1.0 && pnpm i --frozen-lockfile

# - uses: actions/download-artifact@v4
# id: download
# with:
# name: ${{ github.sha }}-${{ matrix.settings.abi }}
# path: ./packages/core/binding

# - uses: actions/download-artifact@v4
# id: download-plugin-sass
# with:
# name: ${{ github.sha }}-${{ matrix.settings.abi }}-plugin-sass
# path: ./rust-plugins/sass/npm/${{ matrix.settings.abi }}

# - uses: actions/download-artifact@v4
# id: download-plugin-react
# with:
# name: ${{ github.sha }}-${{ matrix.settings.abi }}-plugin-react
# path: ./rust-plugins/react/npm/${{ matrix.settings.abi }}

# - uses: actions/download-artifact@v4
# id: download-create-farm-rust
# with:
# name: ${{ github.sha }}-${{ matrix.settings.abi }}
# path: ./packages/create-farm

# - name: Build Examples - ${{ matrix.settings.abi }}
# run: node scripts/test-examples.mjs

# - name: E2E Test Examples - ${{ matrix.settings.abi }}
# run: npm run test-e2e

# # test create farm
# - name: Build Create Farm
# run: cd packages/create-farm && npm run build
# - name: Test Create Farm React - ${{ matrix.settings.abi }}
# run: cd .. && node farm/packages/create-farm/create-farm.js my-test-app-react --template react && cd my-test-app-react && pnpm i && pnpm build
# - name: Test Create Farm Vue - ${{ matrix.settings.abi }}
# run: cd .. && node farm/packages/create-farm/create-farm.js my-test-app-vue --template vue3 && cd my-test-app-vue && pnpm i && pnpm build
# - name: Test Create Farm Solid - ${{ matrix.settings.abi }}
# run: cd .. && node farm/packages/create-farm/create-farm.js my-test-app-solid --template solid && cd my-test-app-solid && pnpm i && pnpm build
# - name: Test Create Farm Svelte - ${{ matrix.settings.abi }}
# run: cd .. && node farm/packages/create-farm/create-farm.js my-test-app-svelte --template svelte && cd my-test-app-svelte && pnpm i && pnpm build
# - name: Test Create Farm Lit - ${{ matrix.settings.abi }}
# run: cd .. && node farm/packages/create-farm/create-farm.js my-test-app-lit --template lit && cd my-test-app-lit && pnpm i && pnpm build
# - name: Test Create Farm Vanilla - ${{ matrix.settings.abi }}
# run: cd .. && node farm/packages/create-farm/create-farm.js my-test-app-vanilla --template vanilla && cd my-test-app-vanilla && pnpm i && pnpm build
# - name: Test Create Farm Preact - ${{ matrix.settings.abi }}
# run: cd .. && node farm/packages/create-farm/create-farm.js my-test-app-preact --template preact && cd my-test-app-preact && pnpm i && pnpm build
# - name: Test Create Farm Vue2 - ${{ matrix.settings.abi }}
# run: cd .. && node farm/packages/create-farm/create-farm.js my-test-app-vue2 --template vue2 && cd my-test-app-vue2 && pnpm i && pnpm build

type-check:
name: Type Check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: actions/setup-node@v3
with:
node-version: 18
- name: Install Dependencies
run: npm install -g pnpm@9.1.0 && pnpm i --frozen-lockfile
- name: Build CLI and Core
run: pnpm --filter @farmfe/cli run build
- name: Type Check With Tsc
run: pnpm run --filter "@farmfe/*" type-check
- name: Changesets Check
run: npx changeset status --since=origin/main

ts-test:
name: Typescript Test
runs-on: ${{ matrix.settings.os }}
needs: call-rust-build
strategy:
fail-fast: false
matrix:
settings:
- os: ubuntu-latest
abi: linux-x64-gnu
- os: ubuntu-20.04
abi: linux-x64-gnu
- os: macos-13
abi: darwin-x64
- os: macos-latest
abi: darwin-arm64
- os: windows-latest
abi: win32-x64-msvc
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 18
- name: Install Dependencies
run: npm install -g pnpm@9.1.0 && pnpm i --frozen-lockfile
- name: Build CLI and Core
run: pnpm --filter @farmfe/cli run build
- uses: actions/download-artifact@v4
id: download
with:
name: ${{ github.sha }}-${{ matrix.settings.abi }}
path: ./packages/core/binding
- name: Build Core CJS
run: cd packages/core && pnpm run build:cjs
- name: Test - ${{ matrix.settings.abi }}
run: npm run test
# - name: Setup tmate session
# if: ${{ failure() }}
# uses: mxschmitt/action-tmate@v3

check-core-artifacts:
name: Check Core Artifacts
runs-on: ubuntu-latest
Expand Down Expand Up @@ -62,70 +193,33 @@ jobs:
test -f /tmp/artifacts/${{ github.sha }}-${abi}-${{ matrix.settings.name }}/index.farm
done
nightly-release:
name: Nightly Release
benchmarks:
needs: [call-rust-build]
runs-on: ubuntu-latest
runs-on: ${{ matrix.settings.os }}
strategy:
fail-fast: false
matrix:
settings:
- os: ubuntu-latest
abi: linux-x64-gnu
steps:
- name: Checkout Repo
uses: actions/checkout@v3

- name: Setup Node.js 18.x
uses: actions/setup-node@v3
- uses: "actions/checkout@v3"
- uses: actions/setup-node@v3
with:
node-version: 18.x

# batch download artifacts
node-version: 18
- name: Install Dependencies
run: npm install -g pnpm@9.1.0 && pnpm i --frozen-lockfile
- name: Build CLI and Core
run: pnpm --filter @farmfe/cli run build
- uses: actions/download-artifact@v4
id: download
with:
path: /tmp/artifacts
- name: Copy Farm Core Binary
run: cp /tmp/artifacts/${{ github.sha }}-linux-x64-gnu/* ./packages/core/binding
- name: Move Artifacts
run: |
for abi in linux-x64-gnu linux-x64-musl darwin-x64 win32-x64-msvc linux-arm64-musl linux-arm64-gnu darwin-arm64 win32-ia32-msvc win32-arm64-msvc
do
mv /tmp/artifacts/${{ github.sha }}-${abi}/* ./packages/core/npm/${abi}
mv /tmp/artifacts/${{ github.sha }}-${abi}-plugin-react/* ./rust-plugins/react/npm/${abi}
mv /tmp/artifacts/${{ github.sha }}-${abi}-plugin-sass/* ./rust-plugins/sass/npm/${abi}
mv /tmp/artifacts/${{ github.sha }}-${abi}-create-farm/* ./packages/create-farm/npm/${abi}
test -f ./packages/core/npm/${abi}/farm.${abi}.node
test -f ./packages/create-farm/npm/${abi}/create-farm.${abi}.node
test -f ./rust-plugins/react/npm/${abi}/index.farm
test -f ./rust-plugins/sass/npm/${abi}/index.farm
done
for abi in android-arm-eabi linux-arm-gnueabihf android-arm64
do
mv /tmp/artifacts/${{ github.sha }}-${abi}-create-farm/* ./packages/create-farm/npm/${abi}
test -f ./packages/create-farm/npm/${abi}/create-farm.${abi}.node
done
- name: Install Dependencies
run: npm install -g pnpm@9.4.0 && pnpm i --frozen-lockfile
- name: Build Plugin Tools
run: pnpm --filter @farmfe/plugin-tools run build

- name: Set Nightly Version for CLI and Core
run: |
NIGHTLY_VERSION="2.0.0-nightly.$(date +'%Y%m%d%H%M%S')"
pnpm --filter "./packages/cli" version $NIGHTLY_VERSION --no-git-tag-version
pnpm --filter "./packages/core" version $NIGHTLY_VERSION --no-git-tag-version
# - name: Publish Nightly to npm
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
# run: |
# echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" > .npmrc
# pnpm publish --tag nightly --no-git-checks

- name: Create Nightly Release Pull Request or Publish Nightly Version to npm
id: changesets
uses: changesets/action@v1
name: ${{ github.sha }}-${{ matrix.settings.abi }}
path: ./packages/core/binding
- name: Build Core CJS
run: cd packages/core && pnpm run build:cjs
- name: Run benchmarks
uses: CodSpeedHQ/action@v3
with:
version: pnpm run bump:nightly
publish: npm run release:nightly
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
run: npm exec vitest bench
token: ${{ secrets.CODSPEED_TOKEN }}
47 changes: 47 additions & 0 deletions .github/workflows/codspeed.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# name: codspeed-benchmarks

# on:
# push:
# branches:
# - "main"
# pull_request:
# branches:
# - main
# # `workflow_dispatch` allows CodSpeed to trigger backtest
# # performance analysis in order to generate initial data.
# workflow_dispatch:

# jobs:
# call-rust-build:
# uses: ./.github/workflows/rust-build.yaml

# benchmarks:
# needs: [call-rust-build]
# runs-on: ${{ matrix.settings.os }}
# strategy:
# fail-fast: false
# matrix:
# settings:
# - os: ubuntu-latest
# abi: linux-x64-gnu
# steps:
# - uses: "actions/checkout@v3"
# - uses: actions/setup-node@v3
# with:
# node-version: 18
# - name: Install Dependencies
# run: npm install -g pnpm@9.4.0 && pnpm i --frozen-lockfile
# - name: Build CLI and Core
# run: pnpm --filter @farmfe/cli run build
# - uses: actions/download-artifact@v3
# id: download
# with:
# name: ${{ github.sha }}-${{ matrix.settings.abi }}
# path: ./packages/core/binding
# - name: Build Core CJS
# run: cd packages/core && pnpm run build:cjs
# - name: Run benchmarks
# uses: CodSpeedHQ/action@v3
# with:
# run: npm exec vitest bench
# token: ${{ secrets.CODSPEED_TOKEN }}
12 changes: 12 additions & 0 deletions .github/workflows/lint.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,15 @@ jobs:
run: cargo fmt
- name: Run cargo clippy
run: cargo clippy
lint:
name: TS Code Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 18
- name: Install Dependencies
run: npm install -g pnpm@9.1.0 && pnpm i --frozen-lockfile
- name: Run lint
run: npx biome check --no-errors-on-unmatched --files-ignore-unknown=true
3 changes: 0 additions & 3 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,5 @@
},
"[toml]": {
"editor.defaultFormatter": "tamasfe.even-better-toml"
},
"[yaml]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
}
}

0 comments on commit 8390020

Please sign in to comment.