From 2fb921b93d46743b641a9c27309471d5dce71926 Mon Sep 17 00:00:00 2001 From: yanhaijing Date: Wed, 1 Jan 2025 20:36:03 +0800 Subject: [PATCH] feat: add ci --- .github/workflows/ci.yml | 99 +++++++++++++++++++++++++++++++ LICENSE | 2 +- package.json | 1 + packages/cli/module/demo/index.js | 8 +-- 4 files changed, 105 insertions(+), 5 deletions(-) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000..4cb967dc --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,99 @@ +name: CI for jslib + +on: + push: + branches: + - dev + pull_request: + branches: + - dev + +jobs: + # lint: + # name: Run Lint on jslib-base + # runs-on: ubuntu-latest + # steps: + # - name: Checkout repository + # uses: actions/checkout@v3 + + # - name: Setup Node.js + # uses: actions/setup-node@v3 + # with: + # node-version: 18 + + # - name: Install dependencies with Yarn + # run: yarn install + + # - name: Run Lint + # run: yarn lint + + test-jslib-js: + needs: lint + name: Test jslib with JS projects + runs-on: ubuntu-latest + strategy: + matrix: + node-version: [18] + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Setup Node.js + uses: actions/setup-node@v3 + with: + node-version: '${{ matrix.node-version }}' + + - name: ls -la + run: ls -la + + - name: Install jslib globally + run: yarn install + + - name: ls -la + run: ls node_modules/.bin + + - name: Create new JS project + run: echo js-project | npx jslib new --npmname js-project --umdname js-project --username yanhaijing --type js --lang en --manager npm + + - name: Run lint in JS project + working-directory: js-project + run: npm run lint + + - name: Run tests in JS project + working-directory: js-project + run: npm run test + + - name: Build JS project + working-directory: js-project + run: npm run build + + # test-jslib-ts: + # # needs: lint + # name: Test jslib with TS projects + # runs-on: ubuntu-latest + # strategy: + # matrix: + # node-version: [16, 18, 20] + # steps: + # - name: Setup Node.js + # uses: actions/setup-node@v3 + # with: + # node-version: '${{ matrix.node-version }}' + + # - name: Install jslib globally + # run: yarn global add ./packages/cli + + # - name: Create new TS project + # run: echo ts-project | npx jslib new --npmname ts-project --umdname ts-project --username yanhaijing --type ts --lang en --manager npm + + # - name: Run lint in TS project + # working-directory: ts-project + # run: npm run lint + + # - name: Run tests in TS project + # working-directory: ts-project + # run: npm run test + + # - name: Build TS project + # working-directory: ts-project + # run: npm run build diff --git a/LICENSE b/LICENSE index ba7561b4..ff202d10 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright (C) 2018-2024 yanhaijing +Copyright (C) 2018-2025 yanhaijing Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: diff --git a/package.json b/package.json index ee61e672..742bb92b 100644 --- a/package.json +++ b/package.json @@ -5,6 +5,7 @@ "scripts": { "prepare": "husky install", "preinstall": "npx only-allow yarn", + "lint": "eslint packages --ext .js,.ts", "test": "echo \"Error: no test specified\" && exit 1" }, "repository": { diff --git a/packages/cli/module/demo/index.js b/packages/cli/module/demo/index.js index b852b50d..8cb096c3 100644 --- a/packages/cli/module/demo/index.js +++ b/packages/cli/module/demo/index.js @@ -6,20 +6,20 @@ function init(cmdPath, name, option) { const _lang = option.lang; util.copyFile( path.resolve(__dirname, `./template/require.js`), - path.resolve(cmdPath, name, 'demo/js/require.js') + path.resolve(cmdPath, name, 'demo/js/require.js'), ); util.copyFile( path.resolve(__dirname, `./template/demo-amd.html`), - path.resolve(cmdPath, name, 'demo/demo-amd.html') + path.resolve(cmdPath, name, 'demo/demo-amd.html'), ); util.copyFile( path.resolve(__dirname, `./template/demo-node.js`), - path.resolve(cmdPath, name, 'demo/demo-node.js') + path.resolve(cmdPath, name, 'demo/demo-node.js'), ); util.copyTmpl( path.resolve(__dirname, `./template/demo-global.html.tmpl`), path.resolve(cmdPath, name, 'demo/demo-global.html'), - option + option, ); }