mirror of
https://github.com/nocodb/nocodb.git
synced 2026-04-25 01:46:09 +00:00
chore: action file and secret-cli package.json
Signed-off-by: Pranav C <pranavxc@gmail.com>
This commit is contained in:
62
.github/workflows/jest-unit-test.yml
vendored
Normal file
62
.github/workflows/jest-unit-test.yml
vendored
Normal file
@@ -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
|
||||
156
.github/workflows/release-secret-cli.yml
vendored
Normal file
156
.github/workflows/release-secret-cli.yml
vendored
Normal file
@@ -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
|
||||
|
||||
50
packages/nc-secret-mgr/package.json
Normal file
50
packages/nc-secret-mgr/package.json
Normal file
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -3,4 +3,5 @@ packages:
|
||||
- 'packages/nc-gui'
|
||||
- 'packages/nc-mail-templates'
|
||||
- 'packages/nocodb'
|
||||
- 'tests/playwright'
|
||||
- 'tests/playwright'
|
||||
- 'packages/nc-secret-mgr'
|
||||
|
||||
Reference in New Issue
Block a user