mirror of https://github.com/nocodb/nocodb
Pranav C
2 months ago
4 changed files with 270 additions and 1 deletions
@ -0,0 +1,62 @@
|
||||
name: "NestJS Unit Test" |
||||
on: |
||||
push: |
||||
branches: [develop] |
||||
paths: |
||||
- "packages/nocodb/**" |
||||
- ".github/workflows/jest-unit-test.yml" |
||||
pull_request: |
||||
types: [opened, reopened, synchronize, ready_for_review, labeled] |
||||
branches: [develop] |
||||
paths: |
||||
- "packages/nocodb/**" |
||||
- ".github/workflows/jest-unit-test.yml" |
||||
workflow_call: |
||||
# Triggered manually |
||||
workflow_dispatch: |
||||
jobs: |
||||
jest-unit-test: |
||||
runs-on: [self-hosted, aws] |
||||
timeout-minutes: 20 |
||||
if: ${{ github.event_name == 'push' || contains(github.event.pull_request.labels.*.name, 'trigger-CI') || !github.event.pull_request.draft || inputs.force == true }} |
||||
steps: |
||||
- name: Checkout |
||||
uses: actions/checkout@v3 |
||||
with: |
||||
fetch-depth: 0 |
||||
- name: Setup Node |
||||
uses: actions/setup-node@v3 |
||||
with: |
||||
node-version: 18.19.1 |
||||
- name: Setup pnpm |
||||
uses: pnpm/action-setup@v4 |
||||
with: |
||||
version: 8 |
||||
- name: Get pnpm store directory |
||||
shell: bash |
||||
timeout-minutes: 1 |
||||
run: | |
||||
echo "STORE_PATH=/root/setup-pnpm/node_modules/.bin/store/v3" >> $GITHUB_ENV |
||||
- uses: actions/cache@v3 |
||||
name: Setup pnpm cache |
||||
with: |
||||
path: ${{ env.STORE_PATH }} |
||||
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} |
||||
restore-keys: | |
||||
${{ runner.os }}-pnpm-store- |
||||
- name: Set CI env |
||||
run: export CI=true |
||||
- name: Set NC Edition |
||||
run: export EE=true |
||||
- name: remove use-node-version line from .npmrc |
||||
run: sed -i '/^use-node-version/d' .npmrc |
||||
- name: install dependencies |
||||
run: pnpm bootstrap |
||||
- name: build nocodb-sdk |
||||
working-directory: ./packages/nocodb-sdk |
||||
run: | |
||||
pnpm run generate:sdk:ee |
||||
pnpm run build:ee:main |
||||
- name: run unit tests |
||||
working-directory: ./packages/nocodb |
||||
run: pnpm run test |
@ -0,0 +1,156 @@
|
||||
name: "Release : Secret CLI Executables" |
||||
|
||||
on: |
||||
# Triggered manually |
||||
workflow_dispatch: |
||||
inputs: |
||||
tag: |
||||
description: "Tag name" |
||||
required: true |
||||
secrets: |
||||
NC_GITHUB_TOKEN: |
||||
required: true |
||||
jobs: |
||||
build-and-publish: |
||||
runs-on: [self-hosted, aws] |
||||
steps: |
||||
- uses: actions/checkout@v3 |
||||
- name: Cache node modules |
||||
id: cache-npm |
||||
uses: actions/cache@v3 |
||||
env: |
||||
cache-name: cache-node-modules |
||||
with: |
||||
# npm cache files are stored in `~/.npm` on Linux/macOS |
||||
path: ~/.npm |
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} |
||||
restore-keys: | |
||||
${{ runner.os }}-build-${{ env.cache-name }}- |
||||
${{ runner.os }}-build- |
||||
${{ runner.os }}- |
||||
|
||||
- name: Cache pkg modules |
||||
id: cache-pkg |
||||
uses: actions/cache@v3 |
||||
env: |
||||
cache-name: cache-pkg |
||||
with: |
||||
# pkg cache files are stored in `~/.pkg-cache` |
||||
path: ~/.pkg-cache |
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} |
||||
restore-keys: | |
||||
${{ runner.os }}-build-${{ env.cache-name }}- |
||||
${{ runner.os }}-build- |
||||
${{ runner.os }}- |
||||
|
||||
- name: Build executables |
||||
run: | |
||||
pnpm bootstrap |
||||
cd ./packages/nocodb |
||||
pnpm run build:cli |
||||
cd ../nc-secret-mgr |
||||
targetVersion=${{ github.event.inputs.tag || inputs.tag }} node ../../scripts/updateVersion.js |
||||
pnpm run build && pnpm run publish |
||||
|
||||
# for building images for all platforms these libraries are required in Linux |
||||
- name: Install QEMU and ldid |
||||
run: | |
||||
sudo apt update |
||||
# Install qemu |
||||
sudo apt install qemu binfmt-support qemu-user-static |
||||
# install ldid |
||||
git clone https://github.com/daeken/ldid.git |
||||
cd ./ldid |
||||
./make.sh |
||||
sudo cp ./ldid /usr/local/bin |
||||
|
||||
- uses: actions/setup-node@v3 |
||||
with: |
||||
node-version: 16 |
||||
|
||||
- name : Install nocodb, other dependencies and build executables |
||||
run: | |
||||
cd ./packages/nc-secret-mgr |
||||
|
||||
# install npm dependendencies |
||||
pnpm i |
||||
|
||||
# Build sqlite binaries for all platforms |
||||
./node_modules/.bin/node-pre-gyp install --directory=./node_modules/sqlite3 --target_platform=win32 --fallback-to-build --target_arch=x64 --target_libc=unknown |
||||
./node_modules/.bin/node-pre-gyp install --directory=./node_modules/sqlite3 --target_platform=win32 --fallback-to-build --target_arch=ia32 --target_libc=unknown |
||||
./node_modules/.bin/node-pre-gyp install --directory=./node_modules/sqlite3 --target_platform=darwin --fallback-to-build --target_arch=x64 --target_libc=unknown |
||||
./node_modules/.bin/node-pre-gyp install --directory=./node_modules/sqlite3 --target_platform=darwin --fallback-to-build --target_arch=arm64 --target_libc=unknown |
||||
./node_modules/.bin/node-pre-gyp install --directory=./node_modules/sqlite3 --target_platform=linux --fallback-to-build --target_arch=x64 --target_libc=glibc |
||||
./node_modules/.bin/node-pre-gyp install --directory=./node_modules/sqlite3 --target_platform=linux --fallback-to-build --target_arch=arm64 --target_libc=glibc |
||||
./node_modules/.bin/node-pre-gyp install --directory=./node_modules/sqlite3 --target_platform=linux --fallback-to-build --target_arch=x64 --target_libc=musl |
||||
./node_modules/.bin/node-pre-gyp install --directory=./node_modules/sqlite3 --target_platform=linux --fallback-to-build --target_arch=arm64 --target_libc=musl |
||||
|
||||
# clean up code to optimize size |
||||
npx modclean --patterns="default:*" --run |
||||
|
||||
# build executables |
||||
npm run build |
||||
|
||||
ls ./dist |
||||
|
||||
# Move macOS executables for signing |
||||
mkdir ./mac-dist |
||||
mv ./dist/nc-secret-arm64 ./mac-dist/ |
||||
mv ./dist/nc-secret-x64 ./mac-dist/ |
||||
|
||||
- name: Upload executables(except mac executables) to release |
||||
uses: svenstaro/upload-release-action@v2 |
||||
with: |
||||
repo_token: ${{ secrets.NC_GITHUB_TOKEN }} |
||||
file: dist/** |
||||
tag: ${{ github.event.inputs.tag || inputs.tag }} |
||||
overwrite: true |
||||
file_glob: true |
||||
repo_name: nocodb/nc-secret-mgr |
||||
|
||||
- uses: actions/upload-artifact@master |
||||
with: |
||||
name: ${{ github.event.inputs.tag || inputs.tag }} |
||||
path: scripts/pkg-executable/mac-dist |
||||
retention-days: 1 |
||||
sign-mac-executables: |
||||
runs-on: macos-latest |
||||
needs: build-executables |
||||
steps: |
||||
|
||||
- uses: actions/download-artifact@master |
||||
with: |
||||
name: ${{ github.event.inputs.tag || inputs.tag }} |
||||
path: scripts/pkg-executable/mac-dist |
||||
|
||||
- name: Sign macOS executables |
||||
run: | |
||||
/usr/bin/codesign --force -s - ./scripts/pkg-executable/mac-dist/nc-secret-arm64 -v |
||||
/usr/bin/codesign --force -s - ./scripts/pkg-executable/mac-dist/nc-secret-x64 -v |
||||
|
||||
- uses: actions/upload-artifact@master |
||||
with: |
||||
name: ${{ github.event.inputs.tag || inputs.tag }} |
||||
path: scripts/pkg-executable/mac-dist |
||||
retention-days: 1 |
||||
|
||||
|
||||
publish-mac-executables: |
||||
needs: [sign-mac-executables,build-executables] |
||||
runs-on: [self-hosted, aws] |
||||
steps: |
||||
- uses: actions/download-artifact@master |
||||
with: |
||||
name: ${{ github.event.inputs.tag || inputs.tag }} |
||||
path: scripts/pkg-executable/mac-dist |
||||
|
||||
- name: Upload executables(except mac executables) to release |
||||
uses: svenstaro/upload-release-action@v2 |
||||
with: |
||||
repo_token: ${{ secrets.NC_GITHUB_TOKEN }} |
||||
file: mac-dist/** |
||||
tag: ${{ github.event.inputs.tag || inputs.tag }} |
||||
overwrite: true |
||||
file_glob: true |
||||
repo_name: nocodb/nc-secret-mgr |
||||
|
@ -0,0 +1,50 @@
|
||||
{ |
||||
"name": "nc-secret", |
||||
"version": "0.0.1", |
||||
"description": "", |
||||
"main": "dist/cli.js", |
||||
"bin": "dist/cli.js", |
||||
"scripts": { |
||||
"build": "webpack --config webpack.config.js", |
||||
"dev": "cross-env NC_DB=\"pg://localhost:5432?u=postgres&p=password&d=meta_2024_09_07\" nodemon --watch 'src/**/*.ts' --exec 'ts-node --project tsconfig.json' src/index.ts -- a b --nc-db abc", |
||||
"test": "mocha --require ts-node/register src/**/*.spec.ts", |
||||
"build:pkg": "npx pkg . --out-path dist --compress GZip", |
||||
"publish": "npm publish ." |
||||
}, |
||||
"pkg": { |
||||
"assets": [ |
||||
"node_modules/**/*" |
||||
], |
||||
"targets": [ |
||||
"node16-linux-arm64", |
||||
"node16-macos-arm64", |
||||
"node16-win-arm64", |
||||
"node16-linux-x64", |
||||
"node16-macos-x64", |
||||
"node16-win-x64" |
||||
] |
||||
}, |
||||
"keywords": [], |
||||
"author": "", |
||||
"license": "ISC", |
||||
"dependencies": { |
||||
"chalk": "^5.3.0", |
||||
"commander": "^12.1.0", |
||||
"enquirer": "^2.4.1", |
||||
"figlet": "^1.7.0", |
||||
"knex": "^3.1.0", |
||||
"mysql": "^2.18.1", |
||||
"parse-database-url": "^0.3.0", |
||||
"pg": "^8.12.0", |
||||
"sqlite3": "^5.1.7" |
||||
}, |
||||
"devDependencies": { |
||||
"@types/figlet": "^1.5.8", |
||||
"chai": "^4.4.1", |
||||
"class-transformer": "0.3.1", |
||||
"cross-env": "^7.0.3", |
||||
"mocha": "^10.3.0", |
||||
"nodemon": "^3.0.3", |
||||
"pkg": "^5.8.0" |
||||
} |
||||
} |
Loading…
Reference in new issue