-
-
Notifications
You must be signed in to change notification settings - Fork 173
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
4 changed files
with
221 additions
and
71 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 [email protected] && 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 [email protected] && 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 [email protected] && 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 | ||
|
@@ -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 [email protected] && 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 [email protected] && 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 }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 [email protected] && 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 }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -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 [email protected] && pnpm i --frozen-lockfile | ||
- name: Run lint | ||
run: npx biome check --no-errors-on-unmatched --files-ignore-unknown=true |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters