diff --git a/.github/workflows/pr-to-master.yml b/.github/workflows/pr-to-master.yml deleted file mode 100644 index 1cfe812c13..0000000000 --- a/.github/workflows/pr-to-master.yml +++ /dev/null @@ -1,62 +0,0 @@ -name: 'PR to master branch from develop' - -on: - # Triggered manually - workflow_dispatch: - inputs: - tag: - description: "Tag" - required: true - targetEnv: - description: "Target Environment" - required: true - type: choice - options: - - DEV - - PROD - # Triggered by release-nocodb.yml - workflow_call: - inputs: - tag: - description: "Tag" - required: true - type: string - targetEnv: - description: "Target Environment" - required: true - type: string - -jobs: - pr-to-master: - runs-on: ubuntu-22.04 - steps: - - run: | - echo 'triggering pr-to-master' - - name: Checkout - uses: actions/checkout@v3 - with: - ref: develop - - - name: Create Pull Request - if: ${{ github.event.inputs.targetEnv == 'PROD' || inputs.targetEnv == 'PROD' }} - id: cpr - uses: repo-sync/pull-request@v2 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - source_branch: "develop" - destination_branch: "master" - pr_title: '${{ github.event.inputs.tag || inputs.tag }} Pre-release' - pr_label: 'Bot: Automerge' - - name: Check outputs - if: ${{ github.event.inputs.targetEnv == 'PROD' || inputs.targetEnv == 'PROD' }} - run: | - echo "Pull Request Number - ${{ steps.cpr.outputs.pr_number }}" - echo "Pull Request URL - ${{ steps.cpr.outputs.pr_url }}" - - name: automerge - if: ${{ github.event.inputs.targetEnv == 'PROD' || inputs.targetEnv == 'PROD' }} - uses: "pascalgn/automerge-action@v0.15.5" - env: - GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" - PULL_REQUEST: "${{ steps.cpr.outputs.pr_number }}" - MERGE_LABELS: "Bot: Automerge" diff --git a/.github/workflows/publish-api-docs.yml b/.github/workflows/publish-api-docs.yml deleted file mode 100644 index 8107a02a2c..0000000000 --- a/.github/workflows/publish-api-docs.yml +++ /dev/null @@ -1,67 +0,0 @@ -name: "Publish : Api Docs" - -on: - workflow_dispatch: - push: - branches: [ master ] - paths: - - "packages/nocodb/src/schema/swagger.json" - release: - types: [ published ] - -jobs: - copy-file: - runs-on: ubuntu-22.04 - steps: - - name: Checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - - name: Pushes swagger file to data-apis-v1 - uses: dmnemec/copy_file_to_another_repo_action@1b29cbd9a323185f20b175dc6d5f8f31be5c0658 - env: - API_TOKEN_GITHUB: ${{ secrets.GH_TOKEN }} - with: - source_file: 'packages/nocodb/src/schema/swagger.json' - destination_repo: 'nocodb/noco-apis-doc' - destination_folder: 'data-apis-v1' - user_email: 'oof1lab@gmail.com' - user_name: 'o1lab' - commit_message: 'Autorelease from github.com/nocodb/nocodb' - - - name: Pushes swagger file to meta-apis-v1 - uses: dmnemec/copy_file_to_another_repo_action@1b29cbd9a323185f20b175dc6d5f8f31be5c0658 - env: - API_TOKEN_GITHUB: ${{ secrets.GH_TOKEN }} - with: - source_file: 'packages/nocodb/src/schema/swagger.json' - destination_repo: 'nocodb/noco-apis-doc' - destination_folder: 'meta-apis-v1' - user_email: 'oof1lab@gmail.com' - user_name: 'o1lab' - commit_message: 'Autorelease from github.com/nocodb/nocodb' - - - name: Pushes swagger file to apis-v3 - uses: dmnemec/copy_file_to_another_repo_action@1b29cbd9a323185f20b175dc6d5f8f31be5c0658 - env: - API_TOKEN_GITHUB: ${{ secrets.GH_TOKEN }} - with: - source_file: 'packages/nocodb/src/schema/swagger-v3.json' - destination_repo: 'nocodb/xc-app-2' - destination_folder: 'website/src/public/apis/v3' - user_email: 'oof1lab@gmail.com' - user_name: 'o1lab' - commit_message: 'Autorelease from github.com/nocodb/nocodb' - - - name: Pushes swagger file to apis-v2 - uses: dmnemec/copy_file_to_another_repo_action@1b29cbd9a323185f20b175dc6d5f8f31be5c0658 - env: - API_TOKEN_GITHUB: ${{ secrets.GH_TOKEN }} - with: - source_file: 'packages/nocodb/src/schema/swagger-v2.json' - destination_repo: 'nocodb/xc-app-2' - destination_folder: 'website/src/public/apis/v2' - user_email: 'oof1lab@gmail.com' - user_name: 'o1lab' - commit_message: 'Autorelease from github.com/nocodb/nocodb' diff --git a/.github/workflows/release-close-issue.yml b/.github/workflows/release-close-issue.yml deleted file mode 100644 index 1f88ba07f1..0000000000 --- a/.github/workflows/release-close-issue.yml +++ /dev/null @@ -1,34 +0,0 @@ -name: 'Close Issues with Labels' - -on: - # Triggered manually - workflow_dispatch: - inputs: - issue_label: - description: "All issues with such label will be closed" - required: true - version: - description: "Which version is this issue fixed in" - required: true - # Triggered by release-nocodb.yml - workflow_call: - inputs: - issue_label: - description: "All issues with such label will be closed" - required: true - type: string - version: - description: "Which version is this issue fixed in" - required: true - type: string -jobs: - close-issues: - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@master - - name: close-resolved-issues - uses: wingkwong/close-issues-based-on-label@master - env: - LABEL: ${{ github.event.inputs.issue_label || inputs.issue_label }} - VERSION: ${{ github.event.inputs.version || inputs.version }} - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/release-docker.yml b/.github/workflows/release-docker.yml deleted file mode 100644 index a12332b1fb..0000000000 --- a/.github/workflows/release-docker.yml +++ /dev/null @@ -1,175 +0,0 @@ -name: "Release : Docker" - -on: - # Triggered manually - workflow_dispatch: - inputs: - tag: - description: "Docker image tag" - required: true - targetEnv: - description: "Target Environment" - required: true - type: choice - options: - - DEV - - PROD - # Triggered by release-nocodb.yml / release-nightly-dev.yml / release-pr.yml - workflow_call: - inputs: - tag: - description: "Docker image tag" - required: true - type: string - targetEnv: - description: "Target Environment" - required: true - type: string - isDaily: - description: "Is it triggered by daily schedule" - required: false - type: string - currentVersion: - description: "The current NocoDB version" - required: false - type: string - secrets: - DOCKERHUB_USERNAME: - required: true - DOCKERHUB_TOKEN: - required: true - -jobs: - buildx: - runs-on: ubuntu-22.04 - env: - working-directory: ./packages/nocodb - steps: - - name: Free Disk Space (Ubuntu) - uses: jlumbroso/free-disk-space@main - with: - # Prevent removing tools we might implicitly need or that are fast to keep - tool-cache: false - android: true - dotnet: true - haskell: true - large-packages: true - docker-images: true - swap-storage: true - - - name: Setup pnpm - uses: pnpm/action-setup@v4 - with: - version: 9 - - name: Get Docker Repository - id: get-docker-repository - run: | - DOCKER_REPOSITORY=nocodb - DOCKER_BUILD_TAG=${{ github.event.inputs.tag || inputs.tag }} - DOCKER_BUILD_LATEST_TAG=latest - if [[ "$DOCKER_BUILD_TAG" =~ "-beta." ]]; then - DOCKER_BUILD_LATEST_TAG=$(echo $DOCKER_BUILD_TAG | awk -F '-beta.' '{print $1}')-beta.latest - fi - if [[ ${{ github.event.inputs.targetEnv || inputs.targetEnv }} == 'DEV' ]]; then - if [[ ${{ github.event.inputs.currentVersion || inputs.currentVersion || 'N/A' }} != 'N/A' ]]; then - DOCKER_BUILD_TAG=${{ github.event.inputs.currentVersion || inputs.currentVersion }}-${{ github.event.inputs.tag || inputs.tag }} - fi - if [[ ${{ inputs.isDaily || 'N' }} == 'Y' ]]; then - DOCKER_REPOSITORY=${DOCKER_REPOSITORY}-daily - else - DOCKER_REPOSITORY=${DOCKER_REPOSITORY}-timely - fi - fi - echo "DOCKER_REPOSITORY=${DOCKER_REPOSITORY}" >> $GITHUB_OUTPUT - echo "DOCKER_BUILD_TAG=${DOCKER_BUILD_TAG}" >> $GITHUB_OUTPUT - echo "DOCKER_BUILD_LATEST_TAG=${DOCKER_BUILD_LATEST_TAG}" >> $GITHUB_OUTPUT - echo DOCKER_REPOSITORY: ${DOCKER_REPOSITORY} - echo DOCKER_BUILD_TAG: ${DOCKER_BUILD_TAG} - echo DOCKER_BUILD_LATEST_TAG: ${DOCKER_BUILD_LATEST_TAG} - - - name: Checkout - uses: actions/checkout@v3 - with: - fetch-depth: 1 - ref: ${{ github.ref }} - - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3 - with: - node-version: 22.12.0 - - - name: upgrade packages for nightly build or pr build - if: ${{ github.event.inputs.targetEnv == 'DEV' || inputs.targetEnv == 'DEV' }} - run: | - export NODE_OPTIONS="--max_old_space_size=8192" - NOCODB_SDK_PKG_NAME=nocodb-sdk-daily - targetEnv=${{ github.event.inputs.targetEnv || inputs.targetEnv }} targetVersion=${{ github.event.inputs.tag || inputs.tag }} node scripts/bumpNocodbSdkVersion.js && - pnpm --filter=${NOCODB_SDK_PKG_NAME} install --ignore-scripts --no-frozen-lockfile --ignore-workspace && pnpm --filter=${NOCODB_SDK_PKG_NAME} run build && - targetEnv=${{ github.event.inputs.targetEnv || inputs.targetEnv }} node scripts/upgradeNocodbSdk.js && - targetEnv=${{ github.event.inputs.targetEnv || inputs.targetEnv }} targetVersion=${{ github.event.inputs.tag || inputs.tag }} node scripts/bumpNcGuiVersion.js && - pnpm --filter=nc-gui install --ignore-scripts --no-frozen-lockfile && - targetEnv=${{ github.event.inputs.targetEnv || inputs.targetEnv }} targetVersion=${{ github.event.inputs.tag || inputs.tag }} pnpm --filter=nc-gui run build:copy && - targetEnv=${{ github.event.inputs.targetEnv || inputs.targetEnv }} node scripts/upgradeNcGui.js - - - name: Build nocodb integrations - working-directory: ${{ env.working-directory }} - run: | - cd ../noco-integrations/core - # extract nocodb-sdk or nocodbsdk-daily package name based on env - NOCODB_SDK_PKG_NAME=nocodb-sdk - if [[ ${{ github.event.inputs.targetEnv || inputs.targetEnv }} == 'DEV' ]]; then - NOCODB_SDK_PKG_NAME=nocodb-sdk-daily - fi - pnpm install ${NOCODB_SDK_PKG_NAME}@${{ github.event.inputs.tag || inputs.tag }} - cd ../../.. - pnpm run integrations:build && pnpm run registerIntegrations - - - name: Build nocodb and docker files - run: | - pnpm install --ignore-scripts --no-frozen-lockfile - pnpm run docker:build - working-directory: ${{ env.working-directory }} - - - name: Set up QEMU - uses: docker/setup-qemu-action@v2.1.0 - - - name: Set up Docker Buildx - id: buildx - uses: docker/setup-buildx-action@v2.2.1 - - - name: Cache Docker layers - uses: actions/cache@v3 - with: - path: /tmp/.buildx-cache - key: ${{ runner.os }}-buildx-${{ github.sha }} - restore-keys: | - ${{ runner.os }}-buildx- - - - name: Login to DockerHub - uses: docker/login-action@v2.1.0 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - - name: Build and push - uses: docker/build-push-action@v3.2.0 - with: - context: ${{ env.working-directory }} - build-args: NC_VERSION=${{ steps.get-docker-repository.outputs.DOCKER_BUILD_TAG }} - platforms: linux/amd64,linux/arm64,linux/arm/v7 - cache-from: type=local,src=/tmp/.buildx-cache - cache-to: type=local,dest=/tmp/.buildx-cache-new - push: true - labels: | - "service=nocodb" - tags: | - nocodb/${{ steps.get-docker-repository.outputs.DOCKER_REPOSITORY }}:${{ steps.get-docker-repository.outputs.DOCKER_BUILD_TAG }} - nocodb/${{ steps.get-docker-repository.outputs.DOCKER_REPOSITORY }}:${{ steps.get-docker-repository.outputs.DOCKER_BUILD_LATEST_TAG }} - - # Temp fix - # https://github.com/docker/build-push-action/issues/252 - # https://github.com/moby/buildkit/issues/1896 - - name: Move cache - run: | - rm -rf /tmp/.buildx-cache - mv /tmp/.buildx-cache-new /tmp/.buildx-cache diff --git a/.github/workflows/release-draft.yml b/.github/workflows/release-draft.yml deleted file mode 100644 index 479d95481a..0000000000 --- a/.github/workflows/release-draft.yml +++ /dev/null @@ -1,74 +0,0 @@ -name: "Release : Draft Notes" - -on: - # Triggered manually - workflow_dispatch: - inputs: - tag: - description: "Tag" - required: true - prev_tag: - description: "Previous Tag" - required: true - tagHeadSHA: - description: "Use HEAD SHA for tagging" - required: true - type: choice - options: - - "Y" - # Triggered by release-nocodb.yml - workflow_call: - inputs: - tag: - description: "Tag" - required: true - type: string - prev_tag: - description: "Previous Tag" - required: true - type: string - tagHeadSHA: - description: "Use HEAD SHA for tagging" - required: true - type: string - secrets: - NC_GITHUB_TOKEN: - required: true - -jobs: - build: - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ github.ref }} - - name: Get SHA - id: get-sha - # If it's triggered by release-nocodb.yml, - # the SHA from the third commit (i.e. Auto PR from master to develop) will be taken - # else HEAD will be taken - run: | - TARGET_SHA=$(git rev-list -n 3 HEAD | tail -1) - if [[ ${{ github.event.inputs.tagHeadSHA || inputs.tagHeadSHA }} == "Y" ]]; then - TARGET_SHA=$(git rev-list -n 1 HEAD | tail -1) - fi - echo "TARGET_SHA=${TARGET_SHA}" >> $GITHUB_OUTPUT - echo "Setting TARGET_SHA: ${TARGET_SHA}" - - name: Create tag - uses: actions/github-script@v3 - with: - # need workflows permission but it's not in GITHUB_TOKEN scope - # need a custom PAT with workflows permission here - github-token: ${{ secrets.NC_GITHUB_TOKEN }} - script: | - github.git.createRef({ - owner: context.repo.owner, - repo: context.repo.repo, - ref: "refs/tags/${{ github.event.inputs.tag || inputs.tag }}", - sha: "${{ steps.get-sha.outputs.TARGET_SHA }}" - }) - - uses: actions/setup-node@v3 - with: - node-version: 22.12.0 - - run: "npx github-release-notes@0.17.2 release --token ${{ secrets.GITHUB_TOKEN }} --draft --tags ${{ github.event.inputs.tag || inputs.tag }}..${{ github.event.inputs.prev_tag || inputs.prev_tag }}" diff --git a/.github/workflows/release-executables.yml b/.github/workflows/release-executables.yml deleted file mode 100644 index 17edda01af..0000000000 --- a/.github/workflows/release-executables.yml +++ /dev/null @@ -1,247 +0,0 @@ -name: "Release : Executables" - -on: - # Triggered manually - workflow_dispatch: - inputs: - tag: - description: "Tag name" - required: true - # Triggered by release-nocodb.yml - workflow_call: - inputs: - tag: - description: "Tag name" - required: true - type: string - secrets: - NC_GITHUB_TOKEN: - required: true -jobs: - build-executables: - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@v3 - - name: Get pnpm store directory - shell: bash - run: | - sed -i '/^use-node-version/d' .npmrc - echo "STORE_PATH=$(pnpm store path --silent)" >> $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: 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 }}- - - # 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: - # pkg library doesn't have node 22 support - node-version: 22.12.0 - - - name : Install nocodb, other dependencies and build executables - run: | - cd ./scripts/pkg-executable - - # downgrade sqlite3 to 5.1.6 until build related issues are resolved - # https://github.com/TryGhost/node-sqlite3/issues/1748 - node ../downgradeSqlite.js - - # Install nocodb version based on provided tag name - npm i -E nocodb@${{ github.event.inputs.tag || inputs.tag }} - - - # install npm dependendencies - npm 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:*" --ignore="nc-lib-gui/**,nocodb/**,dayjs/**,express-status-monitor/**,sqlite3/**,jsdom/**" --run - - mkdir ./mac-dist - mkdir ./dist - - npm install -g @yao-pkg/pkg - - # build darwin x64 executable - npm uninstall sharp - npm install --cpu=x64 --os=darwin sharp - pkg . --compress GZip -t node22-macos-x64 -o Noco-macos-x64 - mv ./Noco-macos-x64 ./mac-dist/ - - # build darwin arm64 executable - npm uninstall sharp - npm install --cpu=arm64 --os=darwin sharp - pkg . --compress GZip -t node22-macos-arm64 -o Noco-macos-arm64 - mv ./Noco-macos-arm64 ./mac-dist/ - - - # build linux x64 executable - npm uninstall sharp - npm install --cpu=x64 --os=linux sharp - pkg . --compress GZip -t node22-linux-x64 -o Noco-linux-x64 - mv ./Noco-linux-x64 ./dist/ - - # build linux arm64 executable - npm uninstall sharp - npm install --cpu=arm64 --os=linux sharp - pkg . --compress GZip -t node22-linux-arm64 -o Noco-linux-arm64 - mv ./Noco-linux-arm64 ./dist/ - - - # build windows x64 executable - npm uninstall sharp - npm install --cpu=x64 --os=win32 sharp - pkg . --compress GZip -t node22-win-x64 -o Noco-win-x64.exe - mv ./Noco-win-x64.exe ./dist/ - - # build windows arm64 executable - npm uninstall sharp - npm install --cpu=arm64 --os=win32 sharp - pkg . --compress GZip -t node22-win-arm64 -o Noco-win-arm64.exe - mv ./Noco-win-arm64.exe ./dist/ - - - name: Upload executables to asset - id: upload-release-asset - uses: softprops/action-gh-release@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - draft: true - tag_name: ${{ github.event.inputs.tag || inputs.tag }} - files: | - ./scripts/pkg-executable/dist/Noco-win-arm64.exe - ./scripts/pkg-executable/dist/Noco-win-x64.exe - ./scripts/pkg-executable/dist/Noco-linux-arm64 - ./scripts/pkg-executable/dist/Noco-linux-x64 - - - 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/Noco-macos-arm64 -v - /usr/bin/codesign --force -s - ./scripts/pkg-executable/mac-dist/Noco-macos-x64 -v - - - uses: actions/upload-artifact@master - with: - name: ${{ format('{0}-signed', github.event.inputs.tag || inputs.tag) }} - path: scripts/pkg-executable/mac-dist - retention-days: 1 - - - publish-mac-executables-and-homebrew: - needs: [sign-mac-executables,build-executables] - runs-on: ubuntu-22.04 - steps: - - uses: actions/download-artifact@master - with: - name: ${{ format('{0}-signed', github.event.inputs.tag || inputs.tag) }} - path: scripts/pkg-executable/mac-dist - - - - - uses: actions/checkout@v3 - with: - path: 'homebrew-nocodb' - token: ${{ secrets.NC_GITHUB_TOKEN }} - repository: 'nocodb/homebrew-nocodb' - fetch-depth: 0 - - - name: Compress files and calculate checksum - run: | - cd ./scripts/pkg-executable - cp ./mac-dist/Noco-macos-x64 ./mac-dist/nocodb - tar -czf ./mac-dist/nocodb.tar.gz ./mac-dist/nocodb - rm ./mac-dist/nocodb - echo "CHECKSUM=$(shasum -a 256 ./mac-dist/nocodb.tar.gz | awk '{print $1}')" >> $GITHUB_OUTPUT - id: compress - - - - name: Upload macos executable to asset - uses: softprops/action-gh-release@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - draft: true - tag_name: ${{ github.event.inputs.tag || inputs.tag }} - files: | - ./scripts/pkg-executable/mac-dist/Noco-macos-x64 - ./scripts/pkg-executable/mac-dist/Noco-macos-arm64 - ./scripts/pkg-executable/mac-dist/nocodb.tar.gz - - - name: Generate Homebrew Formula class and push - run: | - FORMULA_CLASS_STR=$(cat << EOF - class Nocodb < Formula - desc "NocoDB : Opensource smart spreadsheet" - homepage "https://github.com/nocodb/nocodb" - url "https://github.com/nocodb/nocodb/releases/download/${{ github.event.inputs.tag || inputs.tag }}/nocodb.tar.gz" - sha256 "${{ steps.compress.outputs.CHECKSUM }}" - license "MIT" - version "${{ github.event.inputs.tag || inputs.tag }}" - - def install - bin.install "nocodb" - end - end - EOF - ) - - cd ./homebrew-nocodb - - printf "$FORMULA_CLASS_STR" > ./Formula/nocodb.rb - - git config user.name 'github-actions[bot]' - git config user.email 'github-actions[bot]@users.noreply.github.com' - - git commit ./Formula/nocodb.rb -m "Automatic publish" - git push diff --git a/.github/workflows/release-nightly-dev.yml b/.github/workflows/release-nightly-dev.yml deleted file mode 100644 index 982fe6ca10..0000000000 --- a/.github/workflows/release-nightly-dev.yml +++ /dev/null @@ -1,67 +0,0 @@ -name: 'NocoDB Nightly Dev Release' - -on: - # Triggered manually - workflow_dispatch: - schedule: - # every 6 hours - - cron: '0 */6 * * *' - -jobs: - # enrich tag for nightly auto release - set-tag: - runs-on: 'ubuntu-22.04' - steps: - - name: Checkout - uses: actions/checkout@v3 - with: - fetch-depth: 1 - ref: ${{ github.ref }} - - name: set-tag - id: tag-step - run: | - # Get current date - CURRENT_DATE=$(date +"%Y%m%d") - CURRENT_TIME=$(date +"%H%M") - TAG_NAME=${CURRENT_DATE}-${CURRENT_TIME} - IS_DAILY='Y' - # Get current version - CURRENT_VERSION=$(cat ./packages/nocodb/package.json | jq -r ".version") - # Set the tag - if [[ ${{ github.event_name }} == 'workflow_dispatch' ]]; then - IS_DAILY='N' - fi - echo "NIGHTLY_BUILD_TAG=${TAG_NAME}" >> $GITHUB_OUTPUT - echo "IS_DAILY=${IS_DAILY}" >> $GITHUB_OUTPUT - echo "CURRENT_VERSION=${CURRENT_VERSION}" >> $GITHUB_OUTPUT - - name: verify-tag - run: | - echo ${{ steps.tag-step.outputs.NIGHTLY_BUILD_TAG }} - echo ${{ steps.tag-step.outputs.IS_DAILY }} - echo ${{ steps.tag-step.outputs.CURRENT_VERSION }} - outputs: - nightly_build_tag: ${{ steps.tag-step.outputs.NIGHTLY_BUILD_TAG }} - is_daily: ${{ steps.tag-step.outputs.IS_DAILY }} - current_version: ${{ steps.tag-step.outputs.CURRENT_VERSION }} - - # Build executables and publish to GitHub -# release-executables: -# needs: [set-tag, release-npm] -# uses: ./.github/workflows/release-timely-executables.yml -# with: -# tag: ${{ needs.set-tag.outputs.current_version }}-${{ needs.set-tag.outputs.nightly_build_tag }} -# secrets: -# NC_GITHUB_TOKEN: "${{ secrets.NC_GITHUB_TOKEN }}" - - # Build docker image and push to docker hub - release-docker: - needs: [set-tag] - uses: ./.github/workflows/release-timely-docker.yml - with: - currentVersion: ${{ needs.set-tag.outputs.current_version }} - tag: ${{ needs.set-tag.outputs.nightly_build_tag }} - targetEnv: 'DEV' - isDaily: ${{ needs.set-tag.outputs.is_daily }} - secrets: - DOCKERHUB_USERNAME: "${{ secrets.DOCKERHUB_USERNAME }}" - DOCKERHUB_TOKEN: "${{ secrets.DOCKERHUB_TOKEN }}" diff --git a/.github/workflows/release-nocodb.yml b/.github/workflows/release-nocodb.yml deleted file mode 100644 index afce44af2b..0000000000 --- a/.github/workflows/release-nocodb.yml +++ /dev/null @@ -1,116 +0,0 @@ -name: 'NocoDB Release' - -on: - # Triggered manually - workflow_dispatch: - inputs: - tag: - description: "Target Tag" - required: false - prev_tag: - description: "Previous Tag" - required: false -jobs: - # Validate Branch - validate-branch: - runs-on: ubuntu-22.04 - steps: - - run: | - if [[ ${{ github.ref }} != 'refs/heads/master' ]]; then - echo "NocoDB Release is only allowed to run on master branch" - exit 1 - fi - - # Process Input - process-input: - runs-on: ubuntu-22.04 - needs: validate-branch - outputs: - target_tag: ${{ steps.process-input.outputs.target_tag }} - prev_tag: ${{ steps.process-input.outputs.prev_tag }} - steps: - - id: process-input - name: process-input - run: | - TARGET_TAG=${{github.event.inputs.tag}} - PREV_TAG=${{github.event.inputs.prev_tag}} - - if [[ ${PREV_TAG} == '' ]]; then - # fetch the latest version - PREV_TAG=$(basename $(curl -fs -o/dev/null -w %{redirect_url} https://github.com/nocodb/nocodb/releases/latest)) - fi - - if [[ ${TARGET_TAG} == '' ]]; then - # bump the version from PREV_TAG - TARGET_TAG=$(echo ${PREV_TAG} | awk -F. -v OFS=. '{$NF += 1 ; print}') - fi - - echo "TARGET_TAG=${TARGET_TAG}" >> $GITHUB_OUTPUT - echo "PREV_TAG=${PREV_TAG}" >> $GITHUB_OUTPUT - - name: Verify - run : | - echo TARGET_TAG: ${{ steps.process-input.outputs.target_tag }} - echo PREV_TAG: ${{ steps.process-input.outputs.prev_tag }} - - # Merge develop to master - pr-to-master: - needs: process-input - uses: ./.github/workflows/pr-to-master.yml - with: - tag: ${{ needs.process-input.outputs.target_tag }} - targetEnv: ${{ github.event.inputs.targetEnv || 'PROD' }} - - # Build, install, publish frontend and backend to npm - release-npm: - needs: [pr-to-master, process-input] - uses: ./.github/workflows/release-npm.yml - with: - tag: ${{ needs.process-input.outputs.target_tag }} - targetEnv: ${{ github.event.inputs.targetEnv || 'PROD' }} - secrets: - NPM_TOKEN: "${{ secrets.NPM_TOKEN }}" - - # Create a PR to sync changes back to develop branch from master - sync-to-develop: - needs: [release-npm, process-input] - uses: ./.github/workflows/sync-to-develop.yml - - # Draft Release Note - release-draft-note: - needs: [release-npm, process-input] - uses: ./.github/workflows/release-draft.yml - with: - tag: ${{ needs.process-input.outputs.target_tag }} - prev_tag: ${{ needs.process-input.outputs.prev_tag }} - tagHeadSHA: 'N' - secrets: - NC_GITHUB_TOKEN: "${{ secrets.NC_GITHUB_TOKEN }}" - - # Build docker image and push to docker hub - release-docker: - needs: [release-draft-note, process-input] - uses: ./.github/workflows/release-docker.yml - with: - currentVersion: 'N/A' - tag: ${{ needs.process-input.outputs.target_tag }} - targetEnv: ${{ github.event.inputs.targetEnv || 'PROD' }} - secrets: - DOCKERHUB_USERNAME: "${{ secrets.DOCKERHUB_USERNAME }}" - DOCKERHUB_TOKEN: "${{ secrets.DOCKERHUB_TOKEN }}" - - # Build executables and publish to GitHub - release-executables: - needs: [release-draft-note, process-input] - uses: ./.github/workflows/release-executables.yml - with: - tag: ${{ needs.process-input.outputs.target_tag }} - secrets: - NC_GITHUB_TOKEN: "${{ secrets.NC_GITHUB_TOKEN }}" - - # Close all issues with target tags 'Status: Ready for Next Release' - # close-issues: - # needs: [release-docker, process-input] - # uses: ./.github/workflows/release-close-issue.yml - # with: - # issue_label: '🚀 Status: Ready for Next Release' - # version: ${{ needs.process-input.outputs.target_tag }} diff --git a/.github/workflows/release-npm.yml b/.github/workflows/release-npm.yml deleted file mode 100644 index e747e221b5..0000000000 --- a/.github/workflows/release-npm.yml +++ /dev/null @@ -1,103 +0,0 @@ -name: "Release : NPM packages" - -on: - # Triggered manually - workflow_dispatch: - inputs: - tag: - description: "Tag" - required: true - targetEnv: - description: "Target Environment" - required: true - type: choice - options: - - DEV - - PROD - # Triggered by release-nocodb.yml / release-nightly-dev.yml / release-pr.yml - workflow_call: - inputs: - tag: - description: "Tag" - required: true - type: string - targetEnv: - description: "Target Environment" - required: true - type: string - secrets: - NPM_TOKEN: - required: true -# GITHUB_TOKEN: -# required: true - -jobs: - release: - runs-on: ubuntu-22.04 - env: - working-directory: ./packages/nocodb - steps: - - name: Setup pnpm - uses: pnpm/action-setup@v4 - with: - version: 9 - - name: Checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ github.ref }} - - name: pnpm Setup and Publish with 18.19.1 - # Setup .npmrc file to publish to npm - uses: actions/setup-node@v3 - with: - node-version: 22.12.0 - registry-url: "https://registry.npmjs.org" - - run: | - export NODE_OPTIONS="--max_old_space_size=8192" - NOCODB_SDK_PKG_NAME=nocodb-sdk - # If targetEnv is DEV, then use nocodb-sdk-daily package - if [[ ${{ github.event.inputs.targetEnv || inputs.targetEnv }} == 'DEV' ]]; then - NOCODB_SDK_PKG_NAME=nocodb-sdk-daily - fi - echo $NOCODB_SDK_PKG_NAME - targetEnv=${{ github.event.inputs.targetEnv || inputs.targetEnv }} targetVersion=${{ github.event.inputs.tag || inputs.tag }} node scripts/bumpNocodbSdkVersion.js && - pnpm --filter=${NOCODB_SDK_PKG_NAME} install --ignore-scripts --no-frozen-lockfile --ignore-workspace && pnpm --filter=${NOCODB_SDK_PKG_NAME} run build && pnpm --filter=${NOCODB_SDK_PKG_NAME} publish --no-git-checks && - echo "$(date)" && - sleep 300 && - echo "$(date)" && - targetEnv=${{ github.event.inputs.targetEnv || inputs.targetEnv }} node scripts/upgradeNocodbSdk.js && - targetEnv=${{ github.event.inputs.targetEnv || inputs.targetEnv }} targetVersion=${{ github.event.inputs.tag || inputs.tag }} node scripts/bumpNcGuiVersion.js && - pnpm --filter=nc-gui install --ignore-scripts --no-frozen-lockfile && - targetEnv=${{ github.event.inputs.targetEnv || inputs.targetEnv }} targetVersion=${{ github.event.inputs.tag || inputs.tag }} pnpm --filter=nc-gui run build:copy:publish --no-git-checks && - echo "$(date)" && - sleep 300 && - echo "$(date)" && - # Build nocodb integrations - pnpm run integrations:build && pnpm run registerIntegrations && - targetEnv=${{ github.event.inputs.targetEnv || inputs.targetEnv }} node scripts/upgradeNcGui.js && cd packages/nocodb && pnpm run obfuscate:build:publish --no-git-checks - env: - NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} - - name: Create Pull Request - if: ${{ github.event.inputs.targetEnv == 'PROD' || inputs.targetEnv == 'PROD' }} - id: cpr - uses: peter-evans/create-pull-request@v4.2.3 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - signoff: true - branch: "release/${{ github.event.inputs.tag || inputs.tag }}" - delete-branch: true - title: "Release ${{ github.event.inputs.tag || inputs.tag }}" - labels: "Bot: Automerge" - - name: Check outputs - if: ${{ github.event.inputs.targetEnv == 'PROD' || inputs.targetEnv == 'PROD' }} - run: | - echo "Pull Request Number - ${{ steps.cpr.outputs.pull-request-number }}" - echo "Pull Request URL - ${{ steps.cpr.outputs.pull-request-url }}" - - name: automerge - if: ${{ github.event.inputs.targetEnv == 'PROD' || inputs.targetEnv == 'PROD' }} - uses: "pascalgn/automerge-action@v0.15.5" - env: - GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" - PULL_REQUEST: "${{ steps.cpr.outputs.pull-request-number }}" - MERGE_LABELS: "Bot: Automerge" diff --git a/.github/workflows/release-pr.yml b/.github/workflows/release-pr.yml deleted file mode 100644 index 8b3659eccb..0000000000 --- a/.github/workflows/release-pr.yml +++ /dev/null @@ -1,182 +0,0 @@ -name: 'PR Release' - -on: - pull_request: - # opened: pull request is created - # reopened: closed pull request is reopened - # synchronize: commit(s) pushed to the pull request - # ready_for_review: non PR release - # closed: pull request is closed, used to delete uffizzi previews - types: [opened, reopened, synchronize, ready_for_review, closed] - paths: - - "packages/nocodb-sdk/**" - - "packages/nc-gui/**" - - "packages/nocodb/**" - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} - cancel-in-progress: true - -jobs: - # enrich tag for pr release - set-tag: - if: ${{ github.event.pull_request.head.repo.full_name == github.repository && github.actor != 'dependabot[bot]' && github.event.pull_request.draft == false && github.base_ref == 'develop' && github.event.action != 'closed' }} - runs-on: 'ubuntu-22.04' - steps: - - name: Checkout - uses: actions/checkout@v3 - with: - fetch-depth: 1 - ref: ${{ github.ref }} - - name: set-tag - id: tag-step - run: | - # Get current date - CURRENT_DATE=$(date +"%Y%m%d") - CURRENT_TIME=$(date +"%H%M") - # Get current PR number - PR_NUMBER=${{github.event.number}} - # Get current version - CURRENT_VERSION=$(cat ./packages/nocodb/package.json | jq -r ".version") - # Construct tag name - TAG_NAME=pr-${PR_NUMBER}-${CURRENT_DATE}-${CURRENT_TIME} - echo "TARGET_TAG=${TAG_NAME}" >> $GITHUB_OUTPUT - echo "CURRENT_VERSION=${CURRENT_VERSION}" >> $GITHUB_OUTPUT - - name: verify-tag - run: | - echo ${{ steps.tag-step.outputs.TARGET_TAG }} - echo ${{ steps.tag-step.outputs.CURRENT_VERSION }} - outputs: - target_tag: ${{ steps.tag-step.outputs.TARGET_TAG }} - current_version: ${{ steps.tag-step.outputs.CURRENT_VERSION }} - - # Build docker image and push to docker hub - release-docker: - if: ${{ github.event.pull_request.head.repo.full_name == github.repository && github.actor != 'dependabot[bot]' && github.event.pull_request.draft == false && github.base_ref == 'develop' && github.event.action != 'closed' }} - needs: [set-tag] - uses: ./.github/workflows/release-timely-docker.yml - with: - currentVersion: ${{ needs.set-tag.outputs.current_version }} - tag: ${{ needs.set-tag.outputs.target_tag }} - targetEnv: 'DEV' - isDaily: 'N' - secrets: - DOCKERHUB_USERNAME: "${{ secrets.DOCKERHUB_USERNAME }}" - DOCKERHUB_TOKEN: "${{ secrets.DOCKERHUB_TOKEN }}" - - # Build executables and publish to GitHub - # release-executables: - # if: ${{ github.event.pull_request.head.repo.full_name == github.repository && github.actor != 'dependabot[bot]' && github.event.pull_request.draft == false && github.base_ref == 'develop' && github.event.action != 'closed' }} - # needs: [set-tag, release-npm] - # uses: ./.github/workflows/release-timely-executables.yml - # with: - # tag: ${{ needs.set-tag.outputs.current_version }}-${{ needs.set-tag.outputs.target_tag }} - # secrets: - # NC_GITHUB_TOKEN: "${{ secrets.NC_GITHUB_TOKEN }}" - - # Add a comment for PR docker build - leave-comment: - if: ${{ github.event.pull_request.head.repo.full_name == github.repository && github.actor != 'dependabot[bot]' && github.event.pull_request.draft == false && github.base_ref == 'develop' && github.event.action != 'closed' }} - runs-on: 'ubuntu-22.04' - needs: [release-docker, set-tag] - steps: - - uses: peter-evans/commit-comment@v2 - with: - body: | - The PR changes have been deployed. Please run the following command to verify: - ``` - docker run -d -p 8888:8080 nocodb/nocodb-timely:${{ needs.set-tag.outputs.current_version }}-${{ needs.set-tag.outputs.target_tag }} - ``` - - # Create a preview for the pull request - preview-pull-request: - name: "Trigger Uffizzi Preview" - if: ${{ github.event.pull_request.head.repo.full_name == github.repository && github.actor != 'dependabot[bot]' && github.event.pull_request.draft == false && github.base_ref == 'develop' && github.event.action != 'closed' }} - runs-on: 'ubuntu-22.04' - needs: [release-docker, set-tag] - outputs: - compose-file-cache-key: ${{ env.COMPOSE_FILE_HASH }} - steps: - - name: Checkout git repo - uses: actions/checkout@v3 - - name: Render Compose File - run: | - NOCODB_IMAGE=nocodb/nocodb-timely:${{ needs.set-tag.outputs.current_version }}-${{ needs.set-tag.outputs.target_tag }} - export NOCODB_IMAGE - # Render simple template from environment variables. - envsubst < .github/uffizzi/docker-compose.uffizzi.yml > docker-compose.rendered.yml - cat docker-compose.rendered.yml - - name: Upload Rendered Compose File as Artifact - uses: actions/upload-artifact@v4 - with: - name: preview-spec-docker-compose - path: docker-compose.rendered.yml - retention-days: 2 - - name: Serialize PR Event to File - run: | - cat << EOF > event.json - ${{ toJSON(github.event) }} - EOF - - name: Upload PR Event as Artifact - uses: actions/upload-artifact@v4 - with: - name: preview-spec-event - path: event.json - retention-days: 2 - - # Add a comment for PR executable build - # leave-executable-comment: - # if: ${{ github.event.pull_request.head.repo.full_name == github.repository && github.actor != 'dependabot[bot]' && github.event.pull_request.draft == false && github.base_ref == 'develop' && github.event.action != 'closed' }} - # runs-on: 'ubuntu-22.04' - # needs: [release-executables, set-tag] - # steps: - # - uses: peter-evans/commit-comment@v2 - # with: - # body: | - # ### Run Executables - - # #### MacOS - - # ```bash - # mkdir -p ./${{ needs.set-tag.outputs.current_version }}/${{ needs.set-tag.outputs.target_tag }} && cd "$_" \ - # && curl http://dl.nocodb.com/${{ needs.set-tag.outputs.current_version }}-${{ needs.set-tag.outputs.target_tag }}/Noco-macos-arm64 -o noco -L \ - # && chmod +x noco \ - # && ./noco - # ``` - # #### Linux - - # ```bash - # mkdir -p ./${{ needs.set-tag.outputs.current_version }}/${{ needs.set-tag.outputs.target_tag }} && cd "$_" \ - # && curl http://dl.nocodb.com/${{ needs.set-tag.outputs.current_version }}-${{ needs.set-tag.outputs.target_tag }}/Noco-linux-x64 -o noco -L \ - # && chmod +x noco \ - # && ./noco - # ``` - # #### Windows - - # ```bash - # iwr http://dl.nocodb.com/${{ needs.set-tag.outputs.current_version }}-${{ needs.set-tag.outputs.target_tag }}/Noco-win-arm64.exe - # .\Noco-win-arm64.exe - # ``` - - # For executables visit [here](https://github.com/nocodb/nocodb-timely/releases/tag/${{ needs.set-tag.outputs.current_version }}-${{ needs.set-tag.outputs.target_tag }}) - - # delete the uffizzi preview created off of this PR - delete-uffizzi-preview: - name: Call for Preview Deletion - runs-on: ubuntu-22.04 - if: ${{ github.event.pull_request.head.repo.full_name == github.repository && github.actor != 'dependabot[bot]' && github.event.pull_request.draft == false && github.base_ref == 'develop' && github.event.action == 'closed' }} - steps: - # If this PR is closing, we will not render a compose file nor pass it to the next workflow. - - name: Serialize PR Event to File - run: | - cat << EOF > event.json - ${{ toJSON(github.event) }} - - EOF - - name: Upload PR Event as Artifact - uses: actions/upload-artifact@v4 - with: - name: preview-spec-event - path: event.json - retention-days: 2 - overwrite: true diff --git a/.github/workflows/release-previous-docker.yml b/.github/workflows/release-previous-docker.yml deleted file mode 100644 index 0a975bb1dd..0000000000 --- a/.github/workflows/release-previous-docker.yml +++ /dev/null @@ -1,26 +0,0 @@ -name: "Release: Previous Docker" - - -on: - workflow_dispatch: - inputs: - tag: - description: "Previous Docker image tag" - required: true - -jobs: - login: - runs-on: ubuntu-22.04 - steps: - - - name: Login to Docker Hub - uses: docker/login-action@v2.1.0 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - - name: Docker retag and push - run: | - docker pull nocodb/nocodb:${{ github.event.inputs.tag }} - docker image tag nocodb/nocodb:${{ github.event.inputs.tag }} nocodb/nocodb:latest - docker push nocodb/nocodb:latest diff --git a/.github/workflows/release-secret-cli.yml b/.github/workflows/release-secret-cli.yml deleted file mode 100644 index 1324030324..0000000000 --- a/.github/workflows/release-secret-cli.yml +++ /dev/null @@ -1,153 +0,0 @@ -name: "Release : Secret CLI NPM & Executables" - -on: - # Triggered manually - workflow_dispatch: - inputs: - tag: - description: "Tag name" - required: true - secrets: - # Replace with `NC_GITHUB_TOKEN` once replaced with a token which have access to `nocodb/nc-secret-mgr` - NC_GITHUB_TOKEN_TEMP: - required: true -jobs: - build-and-publish: - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@v3 - - name: Setup pnpm - uses: pnpm/action-setup@v4 - with: - version: 9 - - name: Setup Node 22.12.0 - # Setup .npmrc file to publish to npm - uses: actions/setup-node@v3 - with: - node-version: 22.12.0 - registry-url: "https://registry.npmjs.org" - - - 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: Npm package build and publish - env: - NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} - run: | - pnpm bootstrap - cd ./packages/nocodb - pnpm run build:cli:module - cd ../nc-secret-mgr - targetVersion=${{ github.event.inputs.tag || inputs.tag }} node ../../scripts/updateCliVersion.js - pnpm run build && pnpm run npm: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 -y - # 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: 22.12.0 - - - 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:pkg - - ls ./dist-pkg - - # Move macOS executables for signing - mkdir ./mac-dist - mv ./dist-pkg/nc-secret-mgr-macos-arm64 ./mac-dist/ - mv ./dist-pkg/nc-secret-mgr-macos-x64 ./mac-dist/ - - - name: Upload executables(except mac executables) to release - uses: svenstaro/upload-release-action@v2 - with: - repo_token: ${{ secrets.NC_GITHUB_TOKEN_TEMP }} - file: packages/nc-secret-mgr/dist-pkg/** - 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: packages/nc-secret-mgr/mac-dist - retention-days: 1 - sign-mac-executables: - runs-on: macos-latest - needs: build-and-publish - steps: - - uses: actions/download-artifact@master - with: - name: ${{ github.event.inputs.tag || inputs.tag }} - path: packages/nc-secret-mgr/mac-dist - - - name: Sign macOS executables - run: | - /usr/bin/codesign --force -s - ./packages/nc-secret-mgr/mac-dist/nc-secret-mgr-macos-arm64 -v - /usr/bin/codesign --force -s - ./packages/nc-secret-mgr/mac-dist/nc-secret-mgr-macos-x64 -v - - - uses: actions/upload-artifact@master - with: - name: ${{ format('{0}-signed', github.event.inputs.tag || inputs.tag) }} - path: packages/nc-secret-mgr/mac-dist - retention-days: 1 - - publish-mac-executables: - needs: [sign-mac-executables, build-and-publish] - runs-on: ubuntu-22.04 - steps: - - uses: actions/download-artifact@master - with: - name: ${{ format('{0}-signed', github.event.inputs.tag || inputs.tag) }} - path: packages/nc-secret-mgr/mac-dist - - - name: Upload executables(except mac executables) to release - uses: svenstaro/upload-release-action@v2 - with: - repo_token: ${{ secrets.NC_GITHUB_TOKEN_TEMP }} - file: packages/nc-secret-mgr/mac-dist/** - tag: ${{ github.event.inputs.tag || inputs.tag }} - overwrite: true - file_glob: true - repo_name: nocodb/nc-secret-mgr diff --git a/.github/workflows/release-timely-docker.yml b/.github/workflows/release-timely-docker.yml deleted file mode 100644 index 6c5c3d954f..0000000000 --- a/.github/workflows/release-timely-docker.yml +++ /dev/null @@ -1,161 +0,0 @@ -name: "Release : Timely Docker" - -on: - # Triggered manually - workflow_dispatch: - inputs: - tag: - description: "Docker image tag" - required: true - targetEnv: - description: "Target Environment" - required: true - type: choice - options: - - DEV - - PROD - # Triggered by release-nocodb.yml / release-nightly-dev.yml / release-pr.yml - workflow_call: - inputs: - tag: - description: "Docker image tag" - required: true - type: string - targetEnv: - description: "Target Environment" - required: true - type: string - isDaily: - description: "Is it triggered by daily schedule" - required: false - type: string - currentVersion: - description: "The current NocoDB version" - required: false - type: string - secrets: - DOCKERHUB_USERNAME: - required: true - DOCKERHUB_TOKEN: - required: true - -jobs: - buildx: - runs-on: ubuntu-22.04 - env: - working-directory: ./packages/nocodb - steps: - - name: Setup pnpm - uses: pnpm/action-setup@v4 - with: - version: 9 - - name: Get Docker Repository - id: get-docker-repository - run: | - DOCKER_REPOSITORY=nocodb-daily - DOCKER_BUILD_TAG=${{ github.event.inputs.tag || inputs.tag }} - DOCKER_BUILD_LATEST_TAG=latest - if [[ "$DOCKER_BUILD_TAG" =~ "-beta." ]]; then - DOCKER_BUILD_LATEST_TAG=$(echo $DOCKER_BUILD_TAG | awk -F '-beta.' '{print $1}')-beta.latest - fi - if [[ ${{ github.event.inputs.targetEnv || inputs.targetEnv }} == 'DEV' ]]; then - if [[ ${{ github.event.inputs.currentVersion || inputs.currentVersion || 'N/A' }} != 'N/A' ]]; then - DOCKER_BUILD_TAG=${{ github.event.inputs.currentVersion || inputs.currentVersion }}-${{ github.event.inputs.tag || inputs.tag }} - fi - if [[ ${{ inputs.isDaily || 'N' }} == 'Y' ]]; then - DOCKER_REPOSITORY=nocodb-daily - else - DOCKER_REPOSITORY=nocodb-timely - fi - fi - echo "DOCKER_REPOSITORY=${DOCKER_REPOSITORY}" >> $GITHUB_OUTPUT - echo "DOCKER_BUILD_TAG=${DOCKER_BUILD_TAG}" >> $GITHUB_OUTPUT - echo "DOCKER_BUILD_LATEST_TAG=${DOCKER_BUILD_LATEST_TAG}" >> $GITHUB_OUTPUT - echo DOCKER_REPOSITORY: ${DOCKER_REPOSITORY} - echo DOCKER_BUILD_TAG: ${DOCKER_BUILD_TAG} - echo DOCKER_BUILD_LATEST_TAG: ${DOCKER_BUILD_LATEST_TAG} - - - name: Checkout - uses: actions/checkout@v3 - with: - fetch-depth: 1 - ref: ${{ github.ref }} - - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3 - with: - node-version: 22.12.0 - - - name: install dependencies - run: pnpm bootstrap - - - name: Build gui and sdk - run: | - - pnpm bootstrap && - cd packages/nc-gui && - pnpm run generate - - # copy build to nocodb - rsync -rvzh ./dist/ ../nocodb/docker/nc-gui/ - - - - name: build nocodb - run: | - # build nocodb ( pack nocodb-sdk and nc-gui ) - cd packages/nocodb && - EE=true pnpm exec rspack --config rspack.timely.config.js && - # remove bundled libraries (nocodb-sdk, knex-snowflake) - pnpm uninstall --save-prod nocodb-sdk - - - name: Update version in package.json - run: | - # update package.json - cd packages/nocodb && - jq --arg VERSION "$VERSION" '.version = $VERSION' package.json > tmp.json && - mv tmp.json package.json - env: - VERSION: ${{ steps.get-docker-repository.outputs.DOCKER_BUILD_TAG }} - - - name: Set up QEMU - uses: docker/setup-qemu-action@v2.1.0 - - - name: Set up Docker Buildx - id: buildx - uses: docker/setup-buildx-action@v2.2.1 - - - name: Cache Docker layers - uses: actions/cache@v3 - with: - path: /tmp/.buildx-cache - key: ${{ runner.os }}-buildx-${{ github.sha }} - restore-keys: | - ${{ runner.os }}-buildx- - - - name: Login to DockerHub - uses: docker/login-action@v2.1.0 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - - name: Build and push - uses: docker/build-push-action@v3.2.0 - with: - context: ${{ env.working-directory }} - file: ${{ env.working-directory }}/Dockerfile.timely - build-args: NC_VERSION=${{ steps.get-docker-repository.outputs.DOCKER_BUILD_TAG }} - platforms: linux/amd64,linux/arm64 - cache-from: type=local,src=/tmp/.buildx-cache - cache-to: type=local,dest=/tmp/.buildx-cache-new - push: true - tags: | - nocodb/${{ steps.get-docker-repository.outputs.DOCKER_REPOSITORY }}:${{ steps.get-docker-repository.outputs.DOCKER_BUILD_TAG }} - nocodb/${{ steps.get-docker-repository.outputs.DOCKER_REPOSITORY }}:${{ steps.get-docker-repository.outputs.DOCKER_BUILD_LATEST_TAG }} - - # Temp fix - # https://github.com/docker/build-push-action/issues/252 - # https://github.com/moby/buildkit/issues/1896 - - name: Move cache - run: | - rm -rf /tmp/.buildx-cache - mv /tmp/.buildx-cache-new /tmp/.buildx-cache diff --git a/.github/workflows/release-timely-executables.yml b/.github/workflows/release-timely-executables.yml deleted file mode 100644 index f63d18cc9f..0000000000 --- a/.github/workflows/release-timely-executables.yml +++ /dev/null @@ -1,201 +0,0 @@ -name: "Release : Timely Executables" - -on: - # Triggered manually - workflow_dispatch: - inputs: - tag: - description: "Timely version" - required: true - # Triggered by release-nightly-dev.yml / release-pr.yml - workflow_call: - inputs: - tag: - description: "Timely version" - required: true - type: string - secrets: - NC_GITHUB_TOKEN: - required: true -jobs: - build-executables: - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@v3 - with: - token: ${{ secrets.NC_GITHUB_TOKEN }} - repository: 'nocodb/nocodb-timely' - - 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: 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: 22.12.0 - - - name: Update nocodb-timely - env: - TAG: ${{ github.event.inputs.tag || inputs.tag }} - run: | - npm i -E nocodb-daily@$TAG - - git config user.name 'github-actions[bot]' - git config user.email 'github-actions[bot]@users.noreply.github.com' - - git commit package.json -m "Update to $TAG" - git tag $TAG - git push --tags - - - name : Install dependencies and build executables - run: | - # install npm dependencies - npm i - - # Copy sqlite binaries - # rsync -rvzhP ./binaries/binding/ ./node_modules/sqlite3/lib/binding/ - - # 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:*" --ignore="nc-lib-gui-daily/**,nocodb-daily/**,dayjs/**,express-status-monitor/**,sqlite3/**,jsdom/**" --run - - mkdir -p ./mac-dist - mkdir -p ./dist - - # build darwin x64 executable - npm uninstall sharp - npm install --cpu=x64 --os=darwin sharp - npx --yes pkg@5.8.1 . --compress GZip -t node22-macos-x64 -o Noco-macos-x64 - mv ./Noco-macos-x64 ./mac-dist/ - - # build darwin arm64 executable - npm uninstall sharp - npm install --cpu=arm64 --os=darwin sharp - npx --yes pkg@5.8.1 . --compress GZip -t node22-macos-arm64 -o Noco-macos-arm64 - mv ./Noco-macos-arm64 ./mac-dist/ - - - # build linux x64 executable - npm uninstall sharp - npm install --cpu=x64 --os=linux sharp - npx --yes pkg@5.8.1 . --compress GZip -t node22-linux-x64 -o Noco-linux-x64 - mv ./Noco-linux-x64 ./dist/ - - # build linux arm64 executable - npm uninstall sharp - npm install --cpu=arm64 --os=linux sharp - npx --yes pkg@5.8.1 . --compress GZip -t node22-linux-arm64 -o Noco-linux-arm64 - mv ./Noco-linux-arm64 ./dist/ - - - # build windows x64 executable - npm uninstall sharp - npm install --cpu=x64 --os=win32 sharp - npx --yes pkg@5.8.1 . --compress GZip -t node22-win-x64 -o Noco-win-x64.exe - mv ./Noco-win-x64.exe ./dist/ - - # build windows arm64 executable - npm uninstall sharp - npm install --cpu=arm64 --os=win32 sharp - npx --yes pkg@5.8.1 . --compress GZip -t node22-win-arm64 -o Noco-win-arm64.exe - mv ./Noco-win-arm64.exe ./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/nocodb-timely - - - uses: actions/upload-artifact@master - with: - name: ${{ github.event.inputs.tag || inputs.tag }} - path: 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: mac-dist - - - name: Sign macOS executables - run: | - /usr/bin/codesign --force -s - ./mac-dist/Noco-macos-arm64 -v - /usr/bin/codesign --force -s - ./mac-dist/Noco-macos-x64 -v - - - uses: actions/upload-artifact@master - with: - name: ${{ format('{0}-signed', github.event.inputs.tag || inputs.tag) }} - path: mac-dist - retention-days: 1 - - - publish-mac-executables: - needs: sign-mac-executables - runs-on: ubuntu-22.04 - steps: - - uses: actions/download-artifact@master - with: - name: ${{ format('{0}-signed', github.event.inputs.tag || inputs.tag) }} - path: mac-dist - - - name: Upload 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/nocodb-timely - - diff --git a/.github/workflows/sync-to-develop.yml b/.github/workflows/sync-to-develop.yml deleted file mode 100644 index 50e7f5791f..0000000000 --- a/.github/workflows/sync-to-develop.yml +++ /dev/null @@ -1,52 +0,0 @@ -name: "Sync changes back to develop branch from master" - -on: - # Triggered manually - workflow_dispatch: - # Triggered by release-nocodb.yml - workflow_call: -jobs: - sync-to-develop: - runs-on: ubuntu-22.04 - steps: - - name: Setup Node - uses: actions/setup-node@v3 - with: - node-version: 22.12.0 - - name: Setup pnpm - uses: pnpm/action-setup@v4 - with: - version: 9 - - name: Checkout - uses: actions/checkout@v3 - with: - token: ${{ secrets.GITHUB_TOKEN }} - path: nocodb - - name: Prepare GH Cli - id: gh - run: | - wget https://github.com/cli/cli/releases/download/v2.33.0/gh_2.33.0_linux_amd64.tar.gz - tar -xvf gh_2.33.0_linux_amd64.tar.gz - GH=gh_2.33.0_linux_amd64/bin/gh - echo "GH=${GH}" >> $GITHUB_OUTPUT - - name: Sync Master to Develop - id: sync - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - cd nocodb - git fetch --quiet --unshallow origin - git checkout master - # reset to origin/master - git reset --hard origin/master - : # Use the first 8 characters of the latest commit hash as the branch name - BRANCH_NAME=nc/$(git rev-list -n 1 HEAD | cut -c1-8) - git checkout -b $BRANCH_NAME - git config user.name 'github-actions[bot]' - git config user.email 'github-actions[bot]@users.noreply.github.com' - revertSDK=true node scripts/upgradeNocodbSdk.js - pnpm --filter=nocodb-sdk install --no-frozen-lockfile && pnpm --filter=nocodb-sdk run build && pnpm --filter=nocodb --filter=nc-gui --filter=playwright install --no-frozen-lockfile - git add . - git diff-index --quiet HEAD || git commit -m "chore: update sdk path" - git push origin $BRANCH_NAME - ../${{ steps.gh.outputs.GH }} pr create --title "chore: post-release sync" --body "$(echo -e "This is an automated pull request to sync the master branch to develop.\nPlease review and merge this pull request if it looks good.")" --base develop --head $BRANCH_NAME diff --git a/.github/workflows/uffizzi-preview.yml b/.github/workflows/uffizzi-preview.yml deleted file mode 100644 index d6b63c87b3..0000000000 --- a/.github/workflows/uffizzi-preview.yml +++ /dev/null @@ -1,82 +0,0 @@ -name: Deploy Uffizzi Preview - -on: - workflow_run: - workflows: - - "PR Release" - types: - - completed - -jobs: - cache-compose-file: - name: Cache Compose File - runs-on: ubuntu-22.04 - if: ${{ github.event.workflow_run.conclusion == 'success' }} - outputs: - compose-file-cache-key: ${{ steps.hash.outputs.COMPOSE_FILE_HASH }} - git-ref: ${{ steps.event.outputs.GIT_REF }} - pr-number: ${{ steps.event.outputs.PR_NUMBER }} - action: ${{ steps.event.outputs.ACTION }} - steps: - - name: 'Download artifacts' - # Download artifacts from the workflow run that triggered this workflow. - # Token is required to download from a different workflow run. - uses: actions/download-artifact@v4 - with: - path: preview-spec - pattern: preview-spec-* - merge-multiple: true - github-token: ${{ github.token }} - run-id: ${{ github.event.workflow_run.id }} - - - name: 'Accept event from first stage' - run: cp preview-spec/event.json . - - - name: Read Event into ENV - id: event - run: | - echo PR_NUMBER=$(jq '.number | tonumber' < event.json) >> $GITHUB_OUTPUT - echo ACTION=$(jq --raw-output '.action | tostring | [scan("\\w+")][0]' < event.json) >> $GITHUB_OUTPUT - echo GIT_REF=$(jq --raw-output '.pull_request.head.sha | tostring | [scan("\\w+")][0]' < event.json) >> $GITHUB_OUTPUT - - - name: Hash Rendered Compose File - id: hash - # If the previous workflow was triggered by a PR close event, we will not have a compose file artifact. - if: ${{ steps.event.outputs.ACTION != 'closed' }} - run: | - cp preview-spec/docker-compose.rendered.yml . - echo "COMPOSE_FILE_HASH=$(md5sum docker-compose.rendered.yml | awk '{ print $1 }')" >> $GITHUB_OUTPUT - - - name: Cache Rendered Compose File - if: ${{ steps.event.outputs.ACTION != 'closed' }} - uses: actions/cache@v3 - with: - path: docker-compose.rendered.yml - key: ${{ steps.hash.outputs.COMPOSE_FILE_HASH }} - - - name: DEBUG - Print Job Outputs - if: ${{ runner.debug }} - run: | - echo "PR number: ${{ steps.event.outputs.PR_NUMBER }}" - echo "Git Ref: ${{ steps.event.outputs.GIT_REF }}" - echo "Action: ${{ steps.event.outputs.ACTION }}" - echo "Compose file hash: ${{ steps.hash.outputs.COMPOSE_FILE_HASH }}" - cat event.json - - deploy-uffizzi-preview: - name: Use Remote Workflow to Preview on Uffizzi - needs: - - cache-compose-file - if: ${{ github.event.workflow_run.conclusion == 'success' }} - uses: UffizziCloud/preview-action/.github/workflows/reusable.yaml@v2 - with: - # If this workflow was triggered by a PR close event, cache-key will be an empty string - # and this reusable workflow will delete the preview deployment. - compose-file-cache-key: ${{ needs.cache-compose-file.outputs.compose-file-cache-key }} - compose-file-cache-path: docker-compose.rendered.yml - server: https://app.uffizzi.com - pr-number: ${{ needs.cache-compose-file.outputs.pr-number }} - permissions: - contents: read - pull-requests: write - id-token: write diff --git a/.github/workflows/unit-test.yml b/.github/workflows/unit-test.yml deleted file mode 100644 index 4c03399687..0000000000 --- a/.github/workflows/unit-test.yml +++ /dev/null @@ -1,42 +0,0 @@ -# This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node -# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions - -name: Backend Unit Tests - -on: - push: - branches: ["develop"] - paths: - - "packages/nocodb/**" - pull_request: - branches: ["develop"] - paths: - - "packages/nocodb/**" - -jobs: - unit-tests: - runs-on: ubuntu-22.04 - - strategy: - matrix: - node-version: 22.12.0 - # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ - - steps: - - name: Setup pnpm - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/checkout@v3 - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3 - with: - node-version: ${{ matrix.node-version }} - cache: "pnpm" - - name: remove use-node-version from .npmrc - run: sed -i '/^use-node-version/d' .npmrc - - name: install dependencies - run: pnpm bootstrap - - name: run unit tests - working-directory: ./packages/nocodb - run: pnpm run unit-test diff --git a/.github/workflows/update-sdk-path.yml b/.github/workflows/update-sdk-path.yml deleted file mode 100644 index ddb295878f..0000000000 --- a/.github/workflows/update-sdk-path.yml +++ /dev/null @@ -1,48 +0,0 @@ -name: "Update SDK Path" - -on: - # Triggered manually - workflow_dispatch: - # Triggered by release-nocodb.yml - workflow_call: -jobs: - release: - runs-on: ubuntu-22.04 - steps: - - name: Setup pnpm - uses: pnpm/action-setup@v4 - with: - version: 9 - - name: Setup Node - uses: actions/setup-node@v3 - with: - node-version: 22.12.0 - - name: Checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - run: | - sed -i '/^use-node-version/d' .npmrc - pnpm bootstrap - - - name: Create Pull Request - id: cpr - uses: peter-evans/create-pull-request@v4.2.3 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - signoff: true - branch: "bot/update-nocodb-sdk-path" - delete-branch: true - title: "Update nocodb-sdk to local path" - labels: "Bot: Automerge" - - name: Check outputs - run: | - echo "Pull Request Number - ${{ steps.cpr.outputs.pull-request-number }}" - echo "Pull Request URL - ${{ steps.cpr.outputs.pull-request-url }}" - - name: automerge - uses: "pascalgn/automerge-action@v0.15.5" - env: - GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" - PULL_REQUEST: "${{ steps.cpr.outputs.pull-request-number }}" - MERGE_LABELS: "Bot: Automerge" diff --git a/build-local-docker-image.sh b/build-local-docker-image.sh deleted file mode 100755 index 7d232fb623..0000000000 --- a/build-local-docker-image.sh +++ /dev/null @@ -1,89 +0,0 @@ -#!/bin/bash -# script to build local docker image. -# highlevel steps involved -# 1. Stop and remove existing container and image -# 2. Install dependencies -# 3. Build nc-gui -# 3a. static build of nc-gui -# 3b. copy nc-gui build to nocodb dir -# 4. Build nocodb - -SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) -LOG_FILE=${SCRIPT_DIR}/build-local-docker-image.log -ERROR="" - -function stop_and_remove_container() { - # Stop and remove the existing container - docker stop nocodb-local >/dev/null 2>&1 - docker rm nocodb-local >/dev/null 2>&1 -} - -function remove_image() { - # Remove the existing image - docker rmi nocodb-local >/dev/null 2>&1 -} - -function install_dependencies() { - # Install all dependencies - cd ${SCRIPT_DIR} - pnpm bootstrap || ERROR="install_dependencies failed" -} - -function build_gui() { - # build nc-gui - export NODE_OPTIONS="--max_old_space_size=8192" - # generate static build of nc-gui - cd ${SCRIPT_DIR}/packages/nc-gui - pnpm run generate || ERROR="gui build failed" -} - -function copy_gui_artifacts() { - # copy nc-gui build to nocodb dir - rsync -rvzh --delete ./dist/ ${SCRIPT_DIR}/packages/nocodb/docker/nc-gui/ || ERROR="copy_gui_artifacts failed" -} - -function package_nocodb() { - # build nocodb ( pack nocodb-sdk and nc-gui ) - cd ${SCRIPT_DIR}/packages/nocodb - pnpm run docker:build || ERROR="package_nocodb failed" -} - -function build_image() { - # build docker - docker build . -f Dockerfile.local -t nocodb-local || ERROR="build_image failed" -} - -function log_message() { - if [[ ${ERROR} != "" ]]; - then - >&2 echo "build failed, Please check build-local-docker-image.log for more details" - >&2 echo "ERROR: ${ERROR}" - exit 1 - else - echo 'docker image with tag "nocodb-local" built sussessfully. Use below sample command to run the container' - echo 'docker run -d -p 3333:8080 --name nocodb-local nocodb-local ' - fi -} - -echo "Info: Stopping and removing existing container and image" | tee ${LOG_FILE} -stop_and_remove_container -remove_image - -echo "Info: Installing dependencies" | tee -a ${LOG_FILE} -install_dependencies 1>> ${LOG_FILE} 2>> ${LOG_FILE} - -echo "Info: Building nc-gui" | tee -a ${LOG_FILE} -build_gui 1>> ${LOG_FILE} 2>> ${LOG_FILE} - -echo "Info: Copy nc-gui build to nocodb dir" | tee -a ${LOG_FILE} -copy_gui_artifacts 1>> ${LOG_FILE} 2>> ${LOG_FILE} - -echo "Info: Build nocodb, package nocodb-sdk and nc-gui" | tee -a ${LOG_FILE} -package_nocodb 1>> ${LOG_FILE} 2>> ${LOG_FILE} - -if [[ ${ERROR} == "" ]]; then - echo "Info: Building docker image" | tee -a ${LOG_FILE} - build_image 1>> ${LOG_FILE} 2>> ${LOG_FILE} -fi - -log_message | tee -a ${LOG_FILE} diff --git a/charts/nocodb/.gitignore b/charts/nocodb/.gitignore deleted file mode 100644 index f791801bca..0000000000 --- a/charts/nocodb/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -charts/ -Chart.lock diff --git a/charts/nocodb/.helmignore b/charts/nocodb/.helmignore deleted file mode 100644 index 0e8a0eb36f..0000000000 --- a/charts/nocodb/.helmignore +++ /dev/null @@ -1,23 +0,0 @@ -# Patterns to ignore when building packages. -# This supports shell glob matching, relative path matching, and -# negation (prefixed with !). Only one pattern per line. -.DS_Store -# Common VCS dirs -.git/ -.gitignore -.bzr/ -.bzrignore -.hg/ -.hgignore -.svn/ -# Common backup files -*.swp -*.bak -*.tmp -*.orig -*~ -# Various IDEs -.project -.idea/ -*.tmproj -.vscode/ diff --git a/charts/nocodb/Chart.yaml b/charts/nocodb/Chart.yaml deleted file mode 100644 index afa5532f36..0000000000 --- a/charts/nocodb/Chart.yaml +++ /dev/null @@ -1,16 +0,0 @@ -apiVersion: v2 -appVersion: 0.100.2 -dependencies: -- condition: postgresql.enabled - name: postgresql - repository: https://charts.bitnami.com/bitnami - version: ~11.6.6 -- condition: mysql.enabled - name: mysql - repository: https://charts.bitnami.com/bitnami - version: ~9.4.6 -description: A Helm chart for Kubernetes -maintainers: [] -name: nocodb -type: application -version: 0.3.0 diff --git a/charts/nocodb/templates/NOTES.txt b/charts/nocodb/templates/NOTES.txt deleted file mode 100644 index 0594ffd042..0000000000 --- a/charts/nocodb/templates/NOTES.txt +++ /dev/null @@ -1,22 +0,0 @@ -1. Get the application URL by running these commands: -{{- if .Values.ingress.enabled }} -{{- range $host := .Values.ingress.hosts }} - {{- range .paths }} - http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ . }} - {{- end }} -{{- end }} -{{- else if contains "NodePort" .Values.service.type }} - export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "nocodb.fullname" . }}) - export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") - echo http://$NODE_IP:$NODE_PORT -{{- else if contains "LoadBalancer" .Values.service.type }} - NOTE: It may take a few minutes for the LoadBalancer IP to be available. - You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "nocodb.fullname" . }}' - export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "nocodb.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}") - echo http://$SERVICE_IP:{{ .Values.service.port }} -{{- else if contains "ClusterIP" .Values.service.type }} - export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "nocodb.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") - export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}") - echo "Visit http://127.0.0.1:8080 to use your application" - kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:$CONTAINER_PORT -{{- end }} diff --git a/charts/nocodb/templates/_helpers.tpl b/charts/nocodb/templates/_helpers.tpl deleted file mode 100644 index 6a5723a0df..0000000000 --- a/charts/nocodb/templates/_helpers.tpl +++ /dev/null @@ -1,82 +0,0 @@ -{{/* -Expand the name of the chart. -*/}} -{{- define "nocodb.name" -}} -{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} -{{- end }} - -{{/* -Create a default fully qualified app name. -We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). -If release name contains chart name it will be used as a full name. -*/}} -{{- define "nocodb.fullname" -}} -{{- if .Values.fullnameOverride }} -{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} -{{- else }} -{{- $name := default .Chart.Name .Values.nameOverride }} -{{- if contains $name .Release.Name }} -{{- .Release.Name | trunc 63 | trimSuffix "-" }} -{{- else }} -{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} -{{- end }} -{{- end }} -{{- end }} - -{{/* -Create chart name and version as used by the chart label. -*/}} -{{- define "nocodb.chart" -}} -{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} -{{- end }} - -{{/* -Common labels -*/}} -{{- define "nocodb.labels" -}} -helm.sh/chart: {{ include "nocodb.chart" . }} -{{ include "nocodb.selectorLabels" . }} -{{- if .Chart.AppVersion }} -app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} -{{- end }} -app.kubernetes.io/managed-by: {{ .Release.Service }} -{{- end }} - -{{/* -Selector labels -*/}} -{{- define "nocodb.selectorLabels" -}} -app.kubernetes.io/name: {{ include "nocodb.name" . }} -app.kubernetes.io/instance: {{ .Release.Name }} -{{- end }} - -{{/* -Create the name of the service account to use -*/}} -{{- define "nocodb.serviceAccountName" -}} -{{- if .Values.serviceAccount.create }} -{{- default (include "nocodb.fullname" .) .Values.serviceAccount.name }} -{{- else }} -{{- default "default" .Values.serviceAccount.name }} -{{- end }} -{{- end }} - -{{- define "postgresHost" -}} -{{- printf "%s-postgresql" .Release.Name }} -{{- end }} - -{{- define "postgresDatabase" -}} -{{- .Values.postgresql.auth.database }} -{{- end }} - -{{- define "postgresUsername" -}} -{{- .Values.postgresql.auth.username }} -{{- end }} - -{{- define "postgresPassword" -}} -{{- .Values.postgresql.auth.password }} -{{- end }} - -{{- define "databaseUri" -}} -{{- printf "pg://%s:5432?u=%s&p=%s&d=%s" (include "postgresHost" .) (include "postgresUsername" .) (include "postgresPassword" .) (include "postgresDatabase" .) }} -{{- end }} diff --git a/charts/nocodb/templates/configmap.yaml b/charts/nocodb/templates/configmap.yaml deleted file mode 100644 index ef83a94612..0000000000 --- a/charts/nocodb/templates/configmap.yaml +++ /dev/null @@ -1,13 +0,0 @@ -{{- if .Values.extraEnvs }} -apiVersion: v1 -kind: ConfigMap -metadata: - name: {{ include "nocodb.fullname" . }} - labels: - {{- include "nocodb.labels" . | nindent 4 }} -data: -{{- range $key, $value := .Values.extraEnvs }} - {{ $key }}: |- - {{- $value | nindent 4 }} -{{- end }} -{{- end }} diff --git a/charts/nocodb/templates/deployment.yaml b/charts/nocodb/templates/deployment.yaml deleted file mode 100644 index 785b0adf0f..0000000000 --- a/charts/nocodb/templates/deployment.yaml +++ /dev/null @@ -1,77 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: {{ include "nocodb.fullname" . }} - labels: - {{- include "nocodb.labels" . | nindent 4 }} -spec: - {{- if not .Values.autoscaling.enabled }} - replicas: {{ .Values.replicaCount }} - {{- end }} - selector: - matchLabels: - {{- include "nocodb.selectorLabels" . | nindent 6 }} - template: - metadata: - {{- with .Values.podAnnotations }} - annotations: - {{- toYaml . | nindent 8 }} - {{- end }} - labels: - {{- include "nocodb.selectorLabels" . | nindent 8 }} - spec: - {{- with .Values.imagePullSecrets }} - imagePullSecrets: - {{- toYaml . | nindent 8 }} - {{- end }} - serviceAccountName: {{ include "nocodb.serviceAccountName" . }} - securityContext: - {{- toYaml .Values.podSecurityContext | nindent 8 }} - containers: - - name: {{ .Chart.Name }} - securityContext: - {{- toYaml .Values.securityContext | nindent 12 }} - image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" - imagePullPolicy: {{ .Values.image.pullPolicy }} - {{- if .Values.storage.enabled }} - volumeMounts: - - name: {{ include "nocodb.fullname" . }} - mountPath: /usr/app/data - {{- end }} - envFrom: - - configMapRef: - name: {{ include "nocodb.fullname" . }} - - secretRef: - name: {{ include "nocodb.fullname" . }} - ports: - - name: http - containerPort: 8080 - protocol: TCP - livenessProbe: - httpGet: - path: / - port: http - readinessProbe: - httpGet: - path: / - port: http - resources: - {{- toYaml .Values.resources | nindent 12 }} - {{- with .Values.nodeSelector }} - nodeSelector: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.affinity }} - affinity: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.tolerations }} - tolerations: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- if .Values.storage.enabled }} - volumes: - - name: {{ include "nocodb.fullname" . }} - persistentVolumeClaim: - claimName: {{ include "nocodb.fullname" . }} - {{- end }} diff --git a/charts/nocodb/templates/hpa.yaml b/charts/nocodb/templates/hpa.yaml deleted file mode 100644 index d09679632c..0000000000 --- a/charts/nocodb/templates/hpa.yaml +++ /dev/null @@ -1,28 +0,0 @@ -{{- if .Values.autoscaling.enabled }} -apiVersion: autoscaling/v2beta1 -kind: HorizontalPodAutoscaler -metadata: - name: {{ include "nocodb.fullname" . }} - labels: - {{- include "nocodb.labels" . | nindent 4 }} -spec: - scaleTargetRef: - apiVersion: apps/v1 - kind: Deployment - name: {{ include "nocodb.fullname" . }} - minReplicas: {{ .Values.autoscaling.minReplicas }} - maxReplicas: {{ .Values.autoscaling.maxReplicas }} - metrics: - {{- if .Values.autoscaling.targetCPUUtilizationPercentage }} - - type: Resource - resource: - name: cpu - targetAverageUtilization: {{ .Values.autoscaling.targetCPUUtilizationPercentage }} - {{- end }} - {{- if .Values.autoscaling.targetMemoryUtilizationPercentage }} - - type: Resource - resource: - name: memory - targetAverageUtilization: {{ .Values.autoscaling.targetMemoryUtilizationPercentage }} - {{- end }} -{{- end }} diff --git a/charts/nocodb/templates/ingress.yaml b/charts/nocodb/templates/ingress.yaml deleted file mode 100644 index 86dd9bc2f8..0000000000 --- a/charts/nocodb/templates/ingress.yaml +++ /dev/null @@ -1,61 +0,0 @@ -{{- if .Values.ingress.enabled -}} -{{- $fullName := include "nocodb.fullname" . -}} -{{- $svcPort := .Values.ingress.port -}} -{{- if and .Values.ingress.className (not (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion)) }} - {{- if not (hasKey .Values.ingress.annotations "kubernetes.io/ingress.class") }} - {{- $_ := set .Values.ingress.annotations "kubernetes.io/ingress.class" .Values.ingress.className}} - {{- end }} -{{- end }} -{{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion -}} -apiVersion: networking.k8s.io/v1 -{{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}} -apiVersion: networking.k8s.io/v1beta1 -{{- else -}} -apiVersion: extensions/v1beta1 -{{- end }} -kind: Ingress -metadata: - name: {{ $fullName }} - labels: - {{- include "nocodb.labels" . | nindent 4 }} - {{- with .Values.ingress.annotations }} - annotations: - {{- toYaml . | nindent 4 }} - {{- end }} -spec: - {{- if and .Values.ingress.className (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion) }} - ingressClassName: {{ .Values.ingress.className }} - {{- end }} - {{- if .Values.ingress.tls }} - tls: - {{- range .Values.ingress.tls }} - - hosts: - {{- range .hosts }} - - {{ . | quote }} - {{- end }} - secretName: {{ .secretName }} - {{- end }} - {{- end }} - rules: - {{- range .Values.ingress.hosts }} - - host: {{ .host | quote }} - http: - paths: - {{- range .paths }} - - path: {{ .path }} - {{- if and .pathType (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion) }} - pathType: {{ .pathType }} - {{- end }} - backend: - {{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }} - service: - name: {{ $fullName }} - port: - number: {{ $svcPort }} - {{- else }} - serviceName: {{ $fullName }} - servicePort: {{ $svcPort }} - {{- end }} - {{- end }} - {{- end }} -{{- end }} diff --git a/charts/nocodb/templates/pvc.yaml b/charts/nocodb/templates/pvc.yaml deleted file mode 100644 index 369480f057..0000000000 --- a/charts/nocodb/templates/pvc.yaml +++ /dev/null @@ -1,16 +0,0 @@ -{{ if .Values.storage.enabled }} -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - name: {{ include "nocodb.fullname" . }} - labels: - {{- include "nocodb.selectorLabels" . | nindent 8 }} -spec: - resources: - requests: - storage: {{ .Values.storage.size }} - storageClassName: {{ .Values.storage.storageClassName }} - accessModes: - {{- default (toYaml .Values.storage.accessModes) "- ReadWriteMany" | nindent 4 }} - volumeMode: Filesystem -{{ end }} diff --git a/charts/nocodb/templates/secret.yaml b/charts/nocodb/templates/secret.yaml deleted file mode 100644 index 85dd6743aa..0000000000 --- a/charts/nocodb/templates/secret.yaml +++ /dev/null @@ -1,13 +0,0 @@ -{{- if .Values.extraSecretEnvs }} -apiVersion: v1 -kind: Secret -metadata: - name: {{ include "nocodb.fullname" . }} - labels: - {{- include "nocodb.labels" . | nindent 4 }} -data: - NC_DB: {{ include "databaseUri" . | b64enc}} -{{- range $key, $value := .Values.extraSecretEnvs }} - {{ $key }}: '{{ $value | b64enc }}' -{{- end }} -{{- end }} diff --git a/charts/nocodb/templates/service.yaml b/charts/nocodb/templates/service.yaml deleted file mode 100644 index 92d484d6bf..0000000000 --- a/charts/nocodb/templates/service.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: {{ include "nocodb.fullname" . }} - labels: - {{- include "nocodb.labels" . | nindent 4 }} -spec: - type: {{ .Values.service.type }} - ports: - - port: {{ .Values.service.port }} - targetPort: http - protocol: TCP - name: http - selector: - {{- include "nocodb.selectorLabels" . | nindent 4 }} diff --git a/charts/nocodb/templates/serviceaccount.yaml b/charts/nocodb/templates/serviceaccount.yaml deleted file mode 100644 index e61ce26515..0000000000 --- a/charts/nocodb/templates/serviceaccount.yaml +++ /dev/null @@ -1,12 +0,0 @@ -{{- if .Values.serviceAccount.create -}} -apiVersion: v1 -kind: ServiceAccount -metadata: - name: {{ include "nocodb.serviceAccountName" . }} - labels: - {{- include "nocodb.labels" . | nindent 4 }} - {{- with .Values.serviceAccount.annotations }} - annotations: - {{- toYaml . | nindent 4 }} - {{- end }} -{{- end }} diff --git a/charts/nocodb/templates/tests/test-connection.yaml b/charts/nocodb/templates/tests/test-connection.yaml deleted file mode 100644 index 528686c6e7..0000000000 --- a/charts/nocodb/templates/tests/test-connection.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: v1 -kind: Pod -metadata: - name: "{{ include "nocodb.fullname" . }}-test-connection" - labels: - {{- include "nocodb.labels" . | nindent 4 }} - annotations: - "helm.sh/hook": test -spec: - containers: - - name: wget - image: busybox - command: ['wget'] - args: ['{{ include "nocodb.fullname" . }}:{{ .Values.service.port }}'] - restartPolicy: Never diff --git a/charts/nocodb/values.yaml b/charts/nocodb/values.yaml deleted file mode 100644 index 61bcc380a7..0000000000 --- a/charts/nocodb/values.yaml +++ /dev/null @@ -1,113 +0,0 @@ -# Default values for nocodb. -# This is a YAML-formatted file. -# Declare variables to be passed into your templates. - -replicaCount: 1 - -image: - repository: nocodb/nocodb - pullPolicy: IfNotPresent - # Overrides the image tag whose default is the chart appVersion. - tag: "" - -imagePullSecrets: [] -nameOverride: "" -fullnameOverride: "" - -serviceAccount: - # Specifies whether a service account should be created - create: false - # Annotations to add to the service account - annotations: {} - # The name of the service account to use. - # If not set and create is true, a name is generated using the fullname template - name: "" - -podAnnotations: {} - -podSecurityContext: {} - # fsGroup: 2000 - -securityContext: {} - # capabilities: - # drop: - # - ALL - # readOnlyRootFilesystem: true - # runAsNonRoot: true - # runAsUser: 1000 - -service: - type: ClusterIP - port: 8080 - -ingress: - enabled: false - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - hosts: - - host: chart-example.local - paths: [] - tls: [] - # - secretName: chart-example-tls - # hosts: - # - chart-example.local - -resources: {} - # We usually recommend not to specify default resources and to leave this as a conscious - # choice for the user. This also increases chances charts run on environments with little - # resources, such as Minikube. If you do want to specify resources, uncomment the following - # lines, adjust them as necessary, and remove the curly braces after 'resources:'. - # limits: - # cpu: 100m - # memory: 128Mi - # requests: - # cpu: 100m - # memory: 128Mi - -autoscaling: - enabled: false - minReplicas: 1 - maxReplicas: 100 - targetCPUUtilizationPercentage: 80 - # targetMemoryUtilizationPercentage: 80 - -nodeSelector: {} - -tolerations: [] - -affinity: {} - -extraEnvs: - NC_PUBLIC_URL: https://nocodb.local.org - -extraSecretEnvs: - NC_AUTH_JWT_SECRET: secretString - NC_DB: "mysql2://mysql:3306?u=nocodb&p=secretPass&d=nocodb" - -storage: - # If disabled, another persistent storage should be configured for attachments to work. - # We recommend setting NC_S3_BUCKET_NAME and other NC_S3* environment variables. - # Refer documentation for more details. - enabled: true - size: 3Gi - storageClassName: "" - -postgresql: - enabled: false - auth: - database: nocodb - username: nocodb - password: secretPass - persistence: - size: 8Gi - -mysql: - enabled: false - auth: - database: nocodb - username: nocodb - password: secretPass - persistence: - enabled: false - size: 8Gi diff --git a/packages/nc-gui/package.json b/packages/nc-gui/package.json index f9b6703901..0524f3ecf3 100644 --- a/packages/nc-gui/package.json +++ b/packages/nc-gui/package.json @@ -21,18 +21,8 @@ }, "web-types": "web-types.json", "scripts": { - "build": "nuxt build", "dev": "nuxt dev", - "generate": "nuxt generate", - "start": "node .output/server/index.mjs", "lint": "eslint --ext \".js,.jsx,.ts,.tsx,.vue\" --fix --ignore-path .gitignore .", - "test": "vitest -c test/vite.config.ts", - "test:ui": "vitest -c test/vite.config.ts --ui", - "coverage": "vitest -c test/vite.config.ts run --coverage", - "build:copy": "pnpm run generate; rm -rf ../nc-lib-gui/lib/dist/; rsync -rvzh ./dist/ ../nc-lib-gui/lib/dist/", - "build:copy:publish": "pnpm run generate; rm -rf ../nc-lib-gui/lib/dist/; rsync -rvzh ./dist/ ../nc-lib-gui/lib/dist/; pnpm publish ../nc-lib-gui", - "ci:run": "export NODE_OPTIONS=\"--max_old_space_size=8192\"; pnpm install; pnpm run build; NUXT_PAGE_TRANSITION_DISABLE=true NUXT_PUBLIC_NC_BACKEND_URL=http://localhost:8080 pnpm run start &", - "ci:start": "export NODE_OPTIONS=\"--max_old_space_size=8192\"; NUXT_PAGE_TRANSITION_DISABLE=true NUXT_PUBLIC_NC_BACKEND_URL=http://localhost:8080 pnpm run start &", "preinstall": "npx only-allow pnpm", "postinstall": "nuxt prepare" }, diff --git a/packages/nocodb/Dockerfile b/packages/nocodb/Dockerfile deleted file mode 100644 index 60e3882def..0000000000 --- a/packages/nocodb/Dockerfile +++ /dev/null @@ -1,95 +0,0 @@ -########### -# Litestream Builder -########### -FROM golang:bullseye AS lt-builder - -WORKDIR /usr/src/ - -RUN apt-get update && apt-get install -y \ - git \ - make \ - gcc \ - libc-dev \ - && apt-get clean && rm -rf /var/lib/apt/lists/* - -# build litestream -RUN git clone https://github.com/benbjohnson/litestream.git litestream -RUN cd litestream && go install ./cmd/litestream -RUN cp $GOPATH/bin/litestream /usr/src/lt - -########### -# Builder -########### -FROM node:22-slim AS builder -WORKDIR /usr/src/app - -# Install dependencies required for node-gyp and other build tools -RUN apt-get update && apt-get install -y \ - python3 \ - python3-distutils \ - python-is-python3 \ - make \ - g++ \ - libssl-dev \ - && apt-get clean && rm -rf /var/lib/apt/lists/* - -RUN python3 --version && python --version - -# Install pnpm -RUN corepack enable && corepack prepare pnpm@9.15.4 --activate - -# Copy application dependency manifests to the container image. -COPY --link ./package.json ./package.json -COPY --link ./docker/main.js ./docker/main.js -COPY --link ./docker/start-litestream.sh /usr/src/appEntry/start.sh -COPY --link src/public/ ./docker/public/ - -# Configure pnpm to use hoisted node_modules for modclean compatibility -RUN echo "node-linker=hoisted" > .npmrc - -# Install production dependencies, reduce node_modules size with modclean, -# remove sqlite deps, and add execute permission to start.sh -RUN pnpm install --prod --shamefully-hoist \ - && pnpm dlx modclean --patterns="default:*" --ignore="nc-lib-gui/**,dayjs/**,express-status-monitor/**,@azure/msal-node/dist/**,@react-email/**,@linear/**,jsdom/**,formdata-polyfill/**,**/lru-cache/**,**/@asamuzakjp/**,**/cssstyle/**" --run \ - && rm -rf ./node_modules/sqlite3/deps \ - && chmod +x /usr/src/appEntry/start.sh - -########## -# Runner -########## -FROM node:22-slim -WORKDIR /usr/src/app - -ENV LITESTREAM_S3_SKIP_VERIFY=false \ - LITESTREAM_RETENTION=1440h \ - LITESTREAM_RETENTION_CHECK_INTERVAL=72h \ - LITESTREAM_SNAPSHOT_INTERVAL=24h \ - LITESTREAM_SYNC_INTERVAL=60s \ - NC_DOCKER=0.6 \ - NC_TOOL_DIR=/usr/app/data/ \ - NODE_ENV=production \ - PORT=8080 - -# Install additional runtime dependencies -RUN apt-get update && apt-get install -y \ - dumb-init \ - curl \ - wget \ - && curl -L "https://github.com/TomWright/dasel/releases/download/v2.8.1/dasel_linux_$(dpkg --print-architecture)" -o /usr/local/bin/dasel \ - && chmod +x /usr/local/bin/dasel \ - && apt-get clean && rm -rf /var/lib/apt/lists/* - -# Copy litestream binary and config file -COPY --link --from=lt-builder /usr/src/lt /usr/local/bin/litestream -COPY --link ./docker/litestream.yml /etc/litestream.yml - -# Copy production code & main entry file -COPY --link --from=builder /usr/src/app/ /usr/src/app/ -COPY --link --from=builder /usr/src/appEntry/ /usr/src/appEntry/ - -EXPOSE 8080 - -ENTRYPOINT ["/usr/bin/dumb-init", "--"] - -# Start Nocodb -CMD ["/usr/src/appEntry/start.sh"] diff --git a/packages/nocodb/Dockerfile.local b/packages/nocodb/Dockerfile.local deleted file mode 100644 index 1515b701dc..0000000000 --- a/packages/nocodb/Dockerfile.local +++ /dev/null @@ -1,73 +0,0 @@ -################ -# NocoDB Builder -################ -FROM node:22-slim AS builder -WORKDIR /usr/src/app - -# Install dependencies required for node-gyp and other build tools -RUN apt-get update && apt-get install -y \ - python3 \ - python3-distutils \ - python-is-python3 \ - make \ - g++ \ - libssl-dev \ - && apt-get clean && rm -rf /var/lib/apt/lists/* - -RUN python3 --version && python --version - -# Install pnpm -RUN corepack enable && corepack prepare pnpm@9.15.4 --activate - -# Copy application dependency manifests to the container image. -COPY --link ./package.json ./package.json -COPY --link ./docker/main.js ./docker/index.js -COPY --link ./docker/start-local.sh /usr/src/appEntry/start.sh -COPY --link src/public/ ./docker/public/ -COPY --link ./docker/nc-gui/ ./docker/nc-gui/ - -# Configure pnpm to use hoisted node_modules for modclean compatibility -RUN echo "node-linker=hoisted" > .npmrc - -# Install production dependencies, reduce node_modules size with modclean, -# remove sqlite deps, and add execute permission to start.sh -# Remove workspace SDK reference (already bundled into main.js by rspack) -RUN node -e "const p=require('./package.json'); delete p.dependencies['nocodb-sdk']; require('fs').writeFileSync('./package.json', JSON.stringify(p, null, 2))" -RUN pnpm install --prod --shamefully-hoist \ - && pnpm dlx modclean --patterns="default:*" --ignore="nc-lib-gui/**,dayjs/**,express-status-monitor/**,@azure/msal-node/dist/**,@react-email/**,@linear/**,jsdom/**,formdata-polyfill/**,**/lru-cache/**,**/@asamuzakjp/**,**/cssstyle/**" --run \ - && rm -rf ./node_modules/sqlite3/deps \ - && chmod +x /usr/src/appEntry/start.sh - -# Replace nc-lib-gui dist with the freshly built frontend -RUN rm -rf ./node_modules/nc-lib-gui/lib/dist \ - && cp -r ./docker/nc-gui ./node_modules/nc-lib-gui/lib/dist - -######## -# Runner -######## -FROM node:22-slim -WORKDIR /usr/src/app - -ENV NC_DOCKER=0.6 \ - NC_TOOL_DIR=/usr/app/data/ \ - NODE_ENV=production \ - PORT=8080 - -# Install additional runtime dependencies -RUN apt-get update && apt-get install -y \ - dumb-init \ - curl \ - wget \ - && curl -L "https://github.com/TomWright/dasel/releases/download/v2.8.1/dasel_linux_$(dpkg --print-architecture)" -o /usr/local/bin/dasel \ - && chmod +x /usr/local/bin/dasel \ - && apt-get clean && rm -rf /var/lib/apt/lists/* - -# Copy production code & main entry file -COPY --link --from=builder /usr/src/app/ /usr/src/app/ -COPY --link --from=builder /usr/src/appEntry/ /usr/src/appEntry/ - -EXPOSE 8080 -ENTRYPOINT ["/usr/bin/dumb-init", "--"] - -# Start NocoDB -CMD ["/usr/src/appEntry/start.sh"] diff --git a/packages/nocodb/Dockerfile.timely b/packages/nocodb/Dockerfile.timely deleted file mode 100644 index 12da91e262..0000000000 --- a/packages/nocodb/Dockerfile.timely +++ /dev/null @@ -1,124 +0,0 @@ -# Use Buildx cross-compilation - -#################### -# Litestream Builder -#################### -FROM --platform=$BUILDPLATFORM golang:bookworm AS lt-builder - -WORKDIR /usr/src/ - -# Install buildtime dependencies -RUN DEBIAN_FRONTEND=noninteractive apt-get update && apt-get install -y --no-install-recommends \ - gcc \ - git \ - libc6-dev \ - make \ - && apt-get clean && rm -rf /var/lib/apt/lists/* - -# Build litestream for the target platform -RUN git clone https://github.com/benbjohnson/litestream.git litestream \ - && cd litestream \ - && GOARCH=$(echo $TARGETPLATFORM | cut -d '/' -f 2) GOOS=$(echo $TARGETPLATFORM | cut -d '/' -f 1) go install ./cmd/litestream \ - && cp $GOPATH/bin/litestream /usr/local/bin/litestream - -################ -# NocoDB Builder -################ -FROM --platform=$BUILDPLATFORM node:22-slim AS builder -WORKDIR /usr/src/app - -# Install node-gyp dependencies and other build tools -RUN DEBIAN_FRONTEND=noninteractive apt-get update && apt-get install -y --no-install-recommends \ - g++ \ - make \ - python-is-python3 \ - python3 \ - python3-distutils \ - && apt-get clean && rm -rf /var/lib/apt/lists/* - -# Install pnpm -RUN corepack enable && corepack prepare pnpm@9.15.4 --activate - -# Copy application dependency manifests to the container image -COPY --link ./package.json ./package.json -COPY --link ./docker/main.js ./docker/main.js -COPY --link ./docker/start-litestream.sh /usr/src/appEntry/start.sh -COPY --link src/public/ ./docker/public/ -COPY --link ./docker/nc-gui/ ./docker/nc-gui/ - -# Configure pnpm to use hoisted node_modules for modclean compatibility -RUN echo "node-linker=hoisted" > .npmrc - -# Install production dependencies, reduce node_modules size with modclean, -# remove sqlite deps, and add execute permission to start.sh -RUN pnpm install --prod --shamefully-hoist \ - && pnpm dlx modclean --patterns="default:*" --ignore="nc-lib-gui/**,dayjs/**,express-status-monitor/**,@azure/msal-node/dist/**,@react-email/**,jsdom/**,formdata-polyfill/**,**/lru-cache/**,**/@asamuzakjp/**,**/cssstyle/**" --run \ - && rm -rf ./node_modules/sqlite3/deps \ - && chmod +x /usr/src/appEntry/start.sh - -############################# -# Binary Dependencies Builder -############################# -FROM --platform=$TARGETPLATFORM node:22-slim AS bin-builder -WORKDIR /usr/src/app - -# Install node-gyp dependencies and other build tools -RUN DEBIAN_FRONTEND=noninteractive apt-get update && apt-get install -y --no-install-recommends \ - g++ \ - jq \ - make \ - python3 \ - python3-distutils \ - python-is-python3 \ - && apt-get clean && rm -rf /var/lib/apt/lists/* - -# Copy package.json to extract dependency versions -COPY --link ./package.json ./package-copy.json - -# Install sqlite3 for the target platform to copy to the final image -RUN SQLITE3_VERSION=$(jq -r '.dependencies["sqlite3"]' /usr/src/app/package-copy.json) \ - && SHARP_VERSION=$(jq -r '.dependencies["sharp"]' /usr/src/app/package-copy.json) \ - && npm init -y && npm install sqlite3@$SQLITE3_VERSION sharp@$SHARP_VERSION - -######## -# Runner -######## -FROM --platform=$TARGETPLATFORM node:22-slim -WORKDIR /usr/src/app - -ENV LITESTREAM_S3_SKIP_VERIFY=false \ - LITESTREAM_RETENTION=1440h \ - LITESTREAM_RETENTION_CHECK_INTERVAL=72h \ - LITESTREAM_SNAPSHOT_INTERVAL=24h \ - LITESTREAM_SYNC_INTERVAL=60s \ - NC_DOCKER=0.6 \ - NC_TOOL_DIR=/usr/app/data/ \ - NODE_ENV=production \ - PORT=8080 - -# Install runtime dependencies -RUN DEBIAN_FRONTEND=noninteractive apt-get update && apt-get install -y --no-install-recommends \ - ca-certificates `# required by wget for HTTPS support` \ - curl \ - dumb-init \ - wget `# for convenience of downstream users` \ - && curl -L "https://github.com/TomWright/dasel/releases/download/v2.8.1/dasel_linux_$(dpkg --print-architecture)" -o /usr/local/bin/dasel \ - && chmod +x /usr/local/bin/dasel \ - && apt-get clean && rm -rf /var/lib/apt/lists/* - -# Copy litestream binary and config file -COPY --link --from=lt-builder /usr/local/bin/litestream /usr/local/bin/litestream -COPY --link ./docker/litestream.yml /etc/litestream.yml - -# Copy production code & main entry file -COPY --link --from=builder /usr/src/app/ /usr/src/app/ -COPY --link --from=builder /usr/src/appEntry/ /usr/src/appEntry/ -COPY --link --from=bin-builder /usr/src/app/node_modules/sqlite3/ /usr/src/app/node_modules/sqlite3/ -COPY --link --from=bin-builder /usr/src/app/node_modules/sharp/ /usr/src/app/node_modules/sharp/ - -EXPOSE 8080 - -ENTRYPOINT ["/usr/bin/dumb-init", "--"] - -# Start NocoDB -CMD ["/usr/src/appEntry/start.sh"] diff --git a/packages/nocodb/docker/rspack.config.js b/packages/nocodb/docker/rspack.config.js deleted file mode 100644 index 86a6dab19c..0000000000 --- a/packages/nocodb/docker/rspack.config.js +++ /dev/null @@ -1,90 +0,0 @@ -const path = require('path'); -const { rspack } = require('@rspack/core'); -const nodeExternals = require('webpack-node-externals'); -module.exports = { - entry: './src/run/dockerEntry.ts', - module: { - rules: [ - { - test: /\.node$/, - loader: 'node-loader', - options: { - name: '[path][name].[ext]', - }, - }, - { - test: /\.tsx?$/, - exclude: /node_modules/, - loader: 'builtin:swc-loader', - options: { - jsc: { - parser: { - syntax: 'typescript', - tsx: true, - decorators: true, - dynamicImport: true, - }, - transform: { - legacyDecorator: true, - decoratorMetadata: true, - }, - target: 'es2017', - loose: true, - externalHelpers: false, - keepClassNames: true, - }, - module: { - type: 'commonjs', - strict: false, - strictMode: true, - lazy: false, - noInterop: false, - }, - }, - }, - ], - }, - resolve: { - extensions: ['.tsx', '.ts', '.js', '.json'], - tsConfig: { - configFile: path.resolve('tsconfig.json'), - }, - }, - output: { - path: path.resolve('./docker'), - filename: 'main.js', - library: 'libs', - libraryTarget: 'umd', - globalObject: "typeof self !== 'undefined' ? self : this", - }, - optimization: { - minimize: true, //Update this to true or false - minimizer: [ - new rspack.SwcJsMinimizerRspackPlugin({ - minimizerOptions: { - compress: { - keep_classnames: true, - }, - mangle: { - keep_classnames: true, - }, - }, - }), - ], - nodeEnv: false, - }, - externals: [ - nodeExternals({ - allowlist: ['nocodb-sdk'], - }), - ], - plugins: [ - new rspack.EnvironmentPlugin({ - EE: true, - }), - ], - target: 'node', - node: { - __dirname: false, - }, -}; \ No newline at end of file diff --git a/packages/nocodb/docker/start-local.sh b/packages/nocodb/docker/start-local.sh deleted file mode 100644 index faaeece178..0000000000 --- a/packages/nocodb/docker/start-local.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh - -if [ ! -d "${NC_TOOL_DIR}" ]; then - mkdir -p "$NC_TOOL_DIR" -fi - -node docker/index.js diff --git a/packages/nocodb/package.json b/packages/nocodb/package.json index 30846ef940..166249fba5 100644 --- a/packages/nocodb/package.json +++ b/packages/nocodb/package.json @@ -20,14 +20,9 @@ }, "license": "Sustainable Use License", "scripts": { - "build": "pnpm run docker:build", - "build:obfuscate": "EE=true rspack --config rspack.config.js", - "build:cli:module": "EE=true rspack --config rspack.cli.config.js", - "obfuscate:build:publish": "pnpm run build:obfuscate && pnpm publish .", "registerIntegrations": "node build-utils/registerIntegrations.js", "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"", "start": "pnpm run watch:run", - "start:prod": "node docker/main", "lint": "eslint \"src/**/*.ts\" --fix", "test": "jest --runInBand --forceExit --passWithNoTests", "test:watch": "jest --watch", @@ -37,7 +32,6 @@ "watch:run": "cross-env NODE_ENV=development NC_DISABLE_TELE=true ENTRYPOINT=src/run/docker rspack --config rspack.dev.config.js", "watch:run:mysql": "cross-env NODE_ENV=development NC_DISABLE_TELE=true ENTRYPOINT=src/run/dockerRunMysql rspack --config rspack.dev.config.js", "watch:run:pg": "cross-env NODE_ENV=development NC_DISABLE_TELE=true ENTRYPOINT=src/run/dockerRunPG rspack --config rspack.dev.config.js", - "docker:build": "EE=\"true-xc-test\" rspack --config docker/rspack.config.js", "mail": "email dev --dir src/services/mail/templates --port 8001" }, "dependencies": { diff --git a/packages/nocodb/rspack.cli.config.js b/packages/nocodb/rspack.cli.config.js deleted file mode 100644 index f67503abbf..0000000000 --- a/packages/nocodb/rspack.cli.config.js +++ /dev/null @@ -1,97 +0,0 @@ -const { resolve } = require('path'); -const { rspack } = require('@rspack/core'); -const nodeExternals = require('webpack-node-externals'); - -module.exports = { - entry: './src/cli.ts', - module: { - rules: [ - { - test: /\.node$/, - loader: 'node-loader', - options: { - name: '[path][name].[ext]', - }, - }, - { - test: /\.tsx?$/, - exclude: /node_modules/, - loader: 'builtin:swc-loader', - options: { - sourceMaps: false, - jsc: { - parser: { - syntax: 'typescript', - tsx: true, - decorators: true, - dynamicImport: true, - }, - transform: { - legacyDecorator: true, - decoratorMetadata: true, - }, - target: 'es2017', - loose: true, - externalHelpers: false, - keepClassNames: true, - }, - module: { - type: 'commonjs', - strict: false, - strictMode: true, - lazy: false, - noInterop: false, - }, - }, - }, - ], - }, - optimization: { - minimize: true, - minimizer: [ - new rspack.SwcJsMinimizerRspackPlugin({ - minimizerOptions: { - format: { - comments: false, - }, - }, - }), - ], - nodeEnv: false, - }, - externals: [ - nodeExternals({ - allowlist: ['nocodb-sdk'], - }), - ], - resolve: { - extensions: ['.tsx', '.ts', '.js', '.json'], - tsConfig: { - configFile: resolve('tsconfig.json'), - }, - alias: { - '@noco-local-integrations': resolve(__dirname, '../noco-integrations/packages'), - }, - }, - mode: 'production', - output: { - filename: 'cli.js', - path: resolve(__dirname, '..', 'nc-secret-mgr', 'src/nocodb'), - library: 'libs', - libraryTarget: 'umd', - globalObject: "typeof self !== 'undefined' ? self : this", - }, - node: { - __dirname: false, - }, - plugins: [ - new rspack.EnvironmentPlugin({ - EE: true, - }), - new rspack.BannerPlugin({ - banner: 'This is a generated file. Do not edit', - entryOnly: true, - }), - ], - target: 'node', -}; diff --git a/packages/nocodb/rspack.config.js b/packages/nocodb/rspack.config.js deleted file mode 100644 index 7823140d24..0000000000 --- a/packages/nocodb/rspack.config.js +++ /dev/null @@ -1,106 +0,0 @@ -const { resolve } = require('path'); -const { rspack } = require('@rspack/core'); -const nodeExternals = require('webpack-node-externals'); -const { TsCheckerRspackPlugin } = require('ts-checker-rspack-plugin'); - -module.exports = { - entry: './src/index.ts', - module: { - rules: [ - { - test: /\.node$/, - loader: 'node-loader', - options: { - name: '[path][name].[ext]', - }, - }, - { - test: /\.tsx?$/, - exclude: /node_modules/, - loader: 'builtin:swc-loader', - options: { - sourceMaps: false, - jsc: { - parser: { - syntax: 'typescript', - tsx: true, - decorators: true, - dynamicImport: true, - }, - transform: { - legacyDecorator: true, - decoratorMetadata: true, - }, - target: 'es2017', - loose: true, - externalHelpers: false, - keepClassNames: true, - }, - module: { - type: 'commonjs', - strict: false, - strictMode: true, - lazy: false, - noInterop: false, - }, - }, - }, - ], - }, - - optimization: { - minimize: true, //Update this to true or false - minimizer: [ - new rspack.SwcJsMinimizerRspackPlugin({ - minimizerOptions: { - compress: { - keep_classnames: true, - }, - mangle: { - keep_classnames: true, - }, - }, - }), - ], - nodeEnv: false, - }, - externals: [ - nodeExternals({ - allowlist: ['nocodb-sdk'], - }), - ], - resolve: { - extensions: ['.tsx', '.ts', '.js', '.json', '.node'], - tsConfig: { - configFile: resolve('tsconfig.json'), - }, - alias: { - '@noco-local-integrations': resolve(__dirname, '../noco-integrations/packages'), - }, - }, - mode: 'production', - output: { - filename: 'bundle.js', - path: resolve(__dirname, 'dist'), - library: 'libs', - libraryTarget: 'umd', - globalObject: "typeof self !== 'undefined' ? self : this", - }, - node: { - __dirname: false, - }, - plugins: [ - new rspack.EnvironmentPlugin({ - EE: true, - }), - new rspack.CopyRspackPlugin({ - patterns: [{ from: 'src/public', to: 'public' }], - }), - new TsCheckerRspackPlugin({ - typescript: { - configFile: resolve('tsconfig.json'), - }, - }), - ], - target: 'node', -}; diff --git a/packages/nocodb/rspack.timely.config.js b/packages/nocodb/rspack.timely.config.js deleted file mode 100644 index f72d342014..0000000000 --- a/packages/nocodb/rspack.timely.config.js +++ /dev/null @@ -1,100 +0,0 @@ -const path = require('path'); -const { rspack } = require('@rspack/core'); -const nodeExternals = require('webpack-node-externals'); - -module.exports = { - entry: './src/run/timely.ts', - module: { - rules: [ - { - test: /\.node$/, - loader: 'node-loader', - options: { - name: '[path][name].[ext]', - }, - }, - { - test: /\.tsx?$/, - exclude: /node_modules/, - loader: 'builtin:swc-loader', - options: { - sourceMaps: false, - jsc: { - parser: { - syntax: 'typescript', - tsx: true, - decorators: true, - dynamicImport: true, - }, - transform: { - legacyDecorator: true, - decoratorMetadata: true, - }, - target: 'es2017', - loose: true, - externalHelpers: false, - keepClassNames: true, - }, - module: { - type: 'commonjs', - strict: false, - strictMode: true, - lazy: false, - noInterop: false, - }, - }, - }, - ], - }, - - optimization: { - minimize: true, //Update this to true or false - minimizer: [ - new rspack.SwcJsMinimizerRspackPlugin({ - minimizerOptions: { - compress: { - keep_classnames: true, - }, - mangle: { - keep_classnames: true, - }, - }, - }), - ], - nodeEnv: false, - }, - externals: [ - nodeExternals({ - allowlist: ['nocodb-sdk'], - }), - ], - resolve: { - extensions: ['.tsx', '.ts', '.js', '.json', '.node'], - tsConfig: { - configFile: path.resolve('tsconfig.json'), - }, - alias: { - '@noco-local-integrations': path.resolve(__dirname, '../noco-integrations/packages'), - }, - }, - mode: 'production', - output: { - filename: 'main.js', - path: path.resolve(__dirname, 'docker'), - library: 'libs', - libraryTarget: 'umd', - globalObject: "typeof self !== 'undefined' ? self : this", - }, - node: { - __dirname: false, - }, - plugins: [ - new rspack.EnvironmentPlugin({ - EE: true, - }), - new rspack.CopyRspackPlugin({ - patterns: [{ from: 'src/public', to: 'public' }], - }), - ], - target: 'node', -}; diff --git a/packages/nocodb/tests/dockerize-mssql.sh b/packages/nocodb/tests/dockerize-mssql.sh deleted file mode 100755 index 6baa3fccfb..0000000000 --- a/packages/nocodb/tests/dockerize-mssql.sh +++ /dev/null @@ -1,14 +0,0 @@ -apt-get update && apt-get install -y wget - - - wget https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSION/dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz \ - && tar -C /usr/local/bin -xzvf dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz \ - && rm dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz - -echo "waiting for MSSQL........... " - - -dockerize -wait http://$DOCKER_DB_HOST:80 -wait-retry-interval 5s -timeout 20m - -echo "MSSQL is UP >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" - diff --git a/scripts/bumpNcGuiVersion.js b/scripts/bumpNcGuiVersion.js deleted file mode 100644 index 8508290fcd..0000000000 --- a/scripts/bumpNcGuiVersion.js +++ /dev/null @@ -1,16 +0,0 @@ -const fs = require('fs') -const path = require('path') - -const packageJson = JSON.parse(fs.readFileSync(path.join(__dirname, '..', 'packages', 'nc-lib-gui', 'package.json'), 'utf8')) - -if (process.env.targetEnv === 'DEV') { - // nightly build - // e.g. 0.84.2-20220220-1250 - // pr build - // e.g. 0.84.2-pr-1234-20220220-1250 - packageJson.version = `${packageJson.version}-${process.env.targetVersion}` - packageJson.name += '-daily' -} else { - packageJson.version = process.env.targetVersion -} -fs.writeFileSync(path.join(__dirname, '..', 'packages', 'nc-lib-gui', 'package.json'), JSON.stringify(packageJson, 0, 2)) \ No newline at end of file diff --git a/scripts/bumpNocodbSdkVersion.js b/scripts/bumpNocodbSdkVersion.js deleted file mode 100644 index eaa54017c7..0000000000 --- a/scripts/bumpNocodbSdkVersion.js +++ /dev/null @@ -1,16 +0,0 @@ -const fs = require('fs') -const path = require('path') - -const packageJson = JSON.parse(fs.readFileSync(path.join(__dirname, '..', 'packages', 'nocodb-sdk', 'package.json'), 'utf8')) - -if (process.env.targetEnv === 'DEV') { - // nightly build - // e.g. 0.84.2-20220220-1250 - // pr build - // e.g. 0.84.2-pr-1234-20220220-1250 - packageJson.version = `${packageJson.version}-${process.env.targetVersion}` - packageJson.name += '-daily' -} else { - packageJson.version = process.env.targetVersion -} -fs.writeFileSync(path.join(__dirname, '..', 'packages', 'nocodb-sdk', 'package.json'), JSON.stringify(packageJson, 0, 2)) \ No newline at end of file diff --git a/scripts/pkg-executable/binaries/binding/napi-v3-darwin-arm64/node_sqlite3.node b/scripts/pkg-executable/binaries/binding/napi-v3-darwin-arm64/node_sqlite3.node deleted file mode 100755 index 0741ec33a4..0000000000 Binary files a/scripts/pkg-executable/binaries/binding/napi-v3-darwin-arm64/node_sqlite3.node and /dev/null differ diff --git a/scripts/pkg-executable/binaries/binding/napi-v3-darwin-x64/node_sqlite3.node b/scripts/pkg-executable/binaries/binding/napi-v3-darwin-x64/node_sqlite3.node deleted file mode 100755 index 078ce25dc5..0000000000 Binary files a/scripts/pkg-executable/binaries/binding/napi-v3-darwin-x64/node_sqlite3.node and /dev/null differ diff --git a/scripts/pkg-executable/binaries/binding/napi-v3-linux-x64/node_sqlite3.node b/scripts/pkg-executable/binaries/binding/napi-v3-linux-x64/node_sqlite3.node deleted file mode 100755 index 100124214a..0000000000 Binary files a/scripts/pkg-executable/binaries/binding/napi-v3-linux-x64/node_sqlite3.node and /dev/null differ diff --git a/scripts/pkg-executable/binaries/binding/napi-v3-win32-ia32/node_sqlite3.node b/scripts/pkg-executable/binaries/binding/napi-v3-win32-ia32/node_sqlite3.node deleted file mode 100644 index c355fd9d78..0000000000 Binary files a/scripts/pkg-executable/binaries/binding/napi-v3-win32-ia32/node_sqlite3.node and /dev/null differ diff --git a/scripts/pkg-executable/binaries/binding/napi-v3-win32-x64/node_sqlite3.node b/scripts/pkg-executable/binaries/binding/napi-v3-win32-x64/node_sqlite3.node deleted file mode 100644 index 2a16da4ef8..0000000000 Binary files a/scripts/pkg-executable/binaries/binding/napi-v3-win32-x64/node_sqlite3.node and /dev/null differ diff --git a/scripts/pkg-executable/index.js b/scripts/pkg-executable/index.js deleted file mode 100644 index 1979129543..0000000000 --- a/scripts/pkg-executable/index.js +++ /dev/null @@ -1,8 +0,0 @@ -const path = require('path'); - -process.env.NC_BINARY_BUILD = 'true'; -process.env.NODE_ENV = process.env.NODE_ENV || 'production'; -process.env.NC_GUI_DIST_PATH = - process.env.NC_GUI_DIST_PATH || - path.join(path.dirname(require.resolve('nocodb/package.json')), 'docker', 'nc-gui'); -require("nocodb/dist/bundle.js"); diff --git a/scripts/pkg-executable/package.json b/scripts/pkg-executable/package.json deleted file mode 100644 index c8d0d56a7c..0000000000 --- a/scripts/pkg-executable/package.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "name": "Noco", - "version": "1.0.0", - "description": "", - "main": "index.js", - "bin": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1", - "start": "node index.js", - "upgrade": "npm uninstall --save nocodb && npm install --save nocodb", - "build": "npx pkg . --out-path dist --compress GZip" - }, - "pkg": { - "assets": [ - "node_modules/**/*" - ], - "targets": [ - "node18-linux-arm64", - "node18-macos-arm64", - "node18-win-arm64", - "node18-linux-x64", - "node18-macos-x64", - "node18-win-x64" - ] - }, - "keywords": [], - "author": "", - "license": "ISC", - "dependencies": { - "@nestjs/common": "^10.4.17", - "@nestjs/core": "^10.4.17", - "cors": "^2.8.5", - "express": "^4.21.2", - "nocodb": "0.264.8", - "isomorphic-dompurify": "2.25.0" - }, - "overrides": { - "sqlite3": "5.1.6" - }, - "devDependencies": { - "@mapbox/node-pre-gyp": "1.0.11" - } -} diff --git a/scripts/self-hosted-gh-runner/Dockerfile b/scripts/self-hosted-gh-runner/Dockerfile deleted file mode 100644 index ef39720552..0000000000 --- a/scripts/self-hosted-gh-runner/Dockerfile +++ /dev/null @@ -1,19 +0,0 @@ -FROM ghcr.io/actions/actions-runner:latest - -USER root - -# Install dependencies -RUN apt-get update && apt-get install -y \ - libnss3 libatk-bridge2.0-0 libdrm-dev libxkbcommon-dev libgbm-dev libasound-dev \ - libatspi2.0-0 libxshmfence-dev python3 python3-pip curl zip sudo rsync jq \ - && apt-get clean && rm -rf /var/lib/apt/lists/* - - # Install Node.js (and npm, which includes npx) -RUN curl -fsSL https://deb.nodesource.com/setup_22.x | bash - && \ - apt-get install -y nodejs && \ - apt-get clean && rm -rf /var/lib/apt/lists/* - -# Install Playwright -RUN npx playwright install --with-deps chromium - -USER runner diff --git a/scripts/self-hosted-gh-runner/node-pnpm-check.sh b/scripts/self-hosted-gh-runner/node-pnpm-check.sh deleted file mode 100755 index dfeb30a0ce..0000000000 --- a/scripts/self-hosted-gh-runner/node-pnpm-check.sh +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/bash -# this script is intended to run in ci/cd job -# it checks if node and pnpm is installed -# and sets github env variable to skip installation -# this is suitable for self-hosted runners with -# docker image created from /Users/rajanishgj/Documents/GitHub/nocohub/tests/docker/Dockerfile -# - -NC_REQ_NODE_V="22.12.0" -NC_REQ_PNPM_V="8.8.0" - -NODE_PATH="/home/docker/actions-runner/_work/_tool/node/${NC_REQ_NODE_V}/x64/bin/node" -PNPM_PATH="/root/setup-pnpm/node_modules/.bin/pnpm" - -NC_NODE_V=$($NODE_PATH -v || echo "error") -NC_PNPM_V=$($PNPM_PATH -v || echo "error") - -if [[ $NC_NODE_V == *$NC_REQ_NODE_V* ]]; then - PATH=$PATH:$(dirname $NODE_PATH) - SETUP_NODE=false -fi - -if [[ $NC_PNPM_V == $NC_REQ_PNPM_V ]]; then - PATH=$PATH:$(dirname $PNPM_PATH) - SETUP_PNPM=false -fi - -echo "SETUP_NODE=${SETUP_NODE:-true}" >> $GITHUB_ENV -echo "SETUP_PNPM=${SETUP_PNPM:-true}" >> $GITHUB_ENV -echo "NC_REQ_NODE_V=${NC_REQ_NODE_V}" >> $GITHUB_ENV -echo "NC_REQ_PNPM_V=${NC_REQ_PNPM_V}" >> $GITHUB_ENV -echo "NC_NODE_V=${NC_NODE_V}" >> $GITHUB_ENV -echo "NC_PNPM_V=${NC_PNPM_V}" >> $GITHUB_ENV -echo "PATH=${PATH}" >> $GITHUB_ENV -echo "completed check node and pnpm installation" \ No newline at end of file diff --git a/scripts/self-hosted-gh-runner/values.yaml b/scripts/self-hosted-gh-runner/values.yaml deleted file mode 100644 index 7f4c4b897c..0000000000 --- a/scripts/self-hosted-gh-runner/values.yaml +++ /dev/null @@ -1,50 +0,0 @@ -template: - spec: - initContainers: - - name: init-dind-externals - image: runner:latest - imagePullPolicy: Never - command: - ["cp", "-r", "-v", "/home/runner/externals/.", "/home/runner/tmpDir/"] - volumeMounts: - - name: dind-externals - mountPath: /home/runner/tmpDir - containers: - - name: runner - image: runner:latest - imagePullPolicy: Never - command: ["/home/runner/run.sh"] - env: - - name: DOCKER_HOST - value: unix:///run/docker/docker.sock - volumeMounts: - - name: work - mountPath: /home/runner/_work - - name: dind-sock - mountPath: /run/docker - readOnly: true - - name: dind - image: docker:dind - args: - - dockerd - - --host=unix:///run/docker/docker.sock - - --group=$(DOCKER_GROUP_GID) - env: - - name: DOCKER_GROUP_GID - value: "123" - securityContext: - privileged: true - volumeMounts: - - name: work - mountPath: /home/runner/_work - - name: dind-sock - mountPath: /run/docker - - name: dind-externals - mountPath: /home/runner/externals - volumes: - - name: work - emptyDir: {} - - name: dind-sock - emptyDir: {} - - name: dind-externals - emptyDir: {} diff --git a/scripts/updateCliVersion.js b/scripts/updateCliVersion.js deleted file mode 100644 index a166617d34..0000000000 --- a/scripts/updateCliVersion.js +++ /dev/null @@ -1,14 +0,0 @@ -const fs = require('fs') -const path = require('path') - -const packageJsonPath = path.join(__dirname, '..', 'packages', 'nc-secret-mgr', 'package.json') - -const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8')) - -if (!process.env.targetVersion) { - console.error('Error: targetVersion environment variable is not defined.'); - process.exit(1); -} - -packageJson.version = process.env.targetVersion -fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2)) diff --git a/scripts/upgradeNcGui.js b/scripts/upgradeNcGui.js deleted file mode 100644 index a4ce398d11..0000000000 --- a/scripts/upgradeNcGui.js +++ /dev/null @@ -1,49 +0,0 @@ -const fs = require('fs') -const path = require('path') - -const execSync = require('child_process').execSync; - -// extract latest version from package.json -const ncLibPackage = JSON.parse(fs.readFileSync(path.join(__dirname, '..', 'packages', 'nc-lib-gui', 'package.json'))) - - -const replacePackageName = (filePath) => { - return new Promise((resolve, reject) => { - return fs.readFile(filePath, 'utf8', function (err, data) { - if (err) return reject(err) - var result = data.replace(/nc-lib-gui/g, ncLibPackage.name); - return fs.writeFile(filePath, result, 'utf8', function (err) { - if (err) return reject(err) - return resolve() - }); - }); - }) -} - -const bumbVersionAndSave = () => { - // upgrade nc-lib-gui version in nocodb - execSync(`pnpm --filter=nocodb install --ignore-scripts ${ncLibPackage.name}@${ncLibPackage.version}`, {}); - const nocodbPackageFilePath = path.join(__dirname, '..', 'packages', 'nocodb', 'package.json') - const nocoLibPackage = JSON.parse(fs.readFileSync(nocodbPackageFilePath)) - if (process.env.targetEnv === 'DEV') { - nocoLibPackage.name = `${nocoLibPackage.name}-daily` - } - nocoLibPackage.version = ncLibPackage.version - fs.writeFileSync(nocodbPackageFilePath, JSON.stringify(nocoLibPackage, null, 2)); -} - -if (process.env.targetEnv === 'DEV') { - // replace nc-lib-gui by nc-lib-gui-daily if it is nightly build / pr release - const filePaths = [ - path.join(__dirname, '..', 'packages', 'nocodb', 'Dockerfile'), - path.join(__dirname, '..', 'packages', 'nocodb', 'package.json'), - path.join(__dirname, '..', 'packages', 'nocodb', 'src', 'Noco.ts'), - path.join(__dirname, '..', 'packages', 'nocodb', 'src', 'nocobuild.ts'), - path.join(__dirname, '..', 'packages', 'nocodb', 'src', 'middlewares', 'gui', 'gui.middleware.ts'), - ] - Promise.all(filePaths.map(filePath => { return replacePackageName(filePath) })).then(() => { - bumbVersionAndSave(); - }) -} else { - bumbVersionAndSave(); -} diff --git a/scripts/upgradeNocodbSdk.js b/scripts/upgradeNocodbSdk.js deleted file mode 100644 index e95a86438a..0000000000 --- a/scripts/upgradeNocodbSdk.js +++ /dev/null @@ -1,98 +0,0 @@ -const fs = require('fs') -const path = require('path'); -const execSync = require('child_process').execSync; - -// extract latest version from package.json -const nocodbSdkPackage = JSON.parse(fs.readFileSync(path.join(__dirname, '..', 'packages', 'nocodb-sdk', 'package.json'), 'utf8')) - - -if (process.env.revertSDK === 'true') { - nocodbSdkPackage.version = 'workspace:^'; -} - -const replacePackageName = (filePath) => { - return new Promise((resolve, reject) => { - return fs.readFile(filePath, 'utf8', function (err, data) { - if (err) return reject(err) - var result = data.replace(/nocodb-sdk/g, nocodbSdkPackage.name); - return fs.writeFile(filePath, result, 'utf8', function (err) { - if (err) return reject(err) - return resolve() - }); - }); - }) -} - -const replacePackageVersion = (filePath) => { - return new Promise((resolve, reject) => { - return fs.readFile(filePath, 'utf8', function (err, data) { - if (err) return reject(err) - const rgx = new RegExp(`"${nocodbSdkPackage.name}": ".*"`, "g"); - var result = data.replace(rgx, `"${nocodbSdkPackage.name}": "${nocodbSdkPackage.version}"`); - return fs.writeFile(filePath, result, 'utf8', function (err) { - if (err) return reject(err) - return resolve() - }); - }); - }) -} - -const bumbVersionAndSave = () => { - // upgrade nocodb-sdk version in nocodb & nc-gui - return Promise.all([ - replacePackageVersion(path.join(__dirname, '..', 'packages', 'nocodb', 'package.json')), - replacePackageVersion(path.join(__dirname, '..', 'packages', 'nc-gui', 'package.json')), - ]) -} - -const dfs = function(dir) { - var res = []; - var list = fs.readdirSync(dir); - list.forEach(function(file) { - if (['node_modules', 'build'].includes(file)) return; - file = dir + '/' + file; - var stat = fs.statSync(file); - if (stat && stat.isDirectory()) { - res = res.concat(dfs(file)); - } else { - const ext = path.extname(file).toLowerCase() - if (ext == '.vue' || ext == '.ts' || ext == '.js') { - res.push(file); - } - } - }) - return res; -} - -const searchAndReplace = (target) => { - let list = [ - ...dfs(path.resolve(path.join(__dirname, '..', 'packages', 'nc-gui'))), - ...dfs(path.resolve(path.join(__dirname, '..', 'packages', 'nocodb'))), - ...dfs(path.resolve(path.join(__dirname, '..', 'tests', 'playwright'))), - path.join(__dirname, '..', 'packages', 'nc-gui', 'package.json'), - path.join(__dirname, '..', 'packages', 'nocodb', 'package.json'), - path.join(__dirname, '..', 'tests', 'playwright', 'package.json'), - ] - return Promise.all(list.map(d => { - return new Promise((resolve, reject) => { - fs.readFile(d, function(err, content) { - if (err) reject(err) - if (content.indexOf(target) > -1) { - resolve(replacePackageName(d)) - } else { - resolve() - } - }) - }) - })) -} - -if (process.env.targetEnv === 'DEV') { - // replace nocodb-sdk by nocodb-sdk-daily if it is nightly build / pr build - searchAndReplace('nocodb-sdk') - .then(() => { - bumbVersionAndSave() - }) -} else { - bumbVersionAndSave() -} diff --git a/tests/docker/Dockerfile b/tests/docker/Dockerfile deleted file mode 100644 index eac3bdf5da..0000000000 --- a/tests/docker/Dockerfile +++ /dev/null @@ -1,54 +0,0 @@ -# base -FROM ubuntu:22.04 - -# set the github runner version -ARG RUNNER_VERSION="2.306.0" - -# Get the base image of Node version 18 -FROM node:18 - -# Get the latest version of Playwright -FROM mcr.microsoft.com/playwright:v1.32.2-focal - -# Set the work directory for the application -WORKDIR /app - -# Set the environment path to node_modules/.bin -ENV PATH /app/node_modules/.bin:$PATH - -# Get the needed libraries to run Playwright -RUN apt-get update && apt-get -y install libnss3 libatk-bridge2.0-0 libdrm-dev libxkbcommon-dev libgbm-dev libasound-dev libatspi2.0-0 libxshmfence-dev python-is-python3 - -RUN apt-get update && apt-get -y install sudo curl ca-certificates gnupg && curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc|sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/postgresql.gpg && sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' && apt-get update - - -# Install PostgreSQL -RUN apt-get update && \ - apt-get -y install gnupg gnupg2 gnupg1 -y postgresql-14 - -# update the base packages and add a non-sudo user -RUN apt-get update -y && apt-get upgrade -y && useradd -m docker - -# install python and the packages the your code depends on along with jq so we can parse JSON -# add additional packages as necessary -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ - curl jq build-essential libssl-dev libffi-dev python3 python3-venv python3-dev python3-pip - -# cd into the user directory, download and unzip the github actions runner -RUN cd /home/docker && mkdir actions-runner && cd actions-runner \ - && curl -O -L https://github.com/actions/runner/releases/download/v2.306.0/actions-runner-linux-x64-2.306.0.tar.gz \ - && tar xzf ./actions-runner-linux-x64-2.306.0.tar.gz - -# install some additional dependencies -RUN chown -R docker ~docker && /home/docker/actions-runner/bin/installdependencies.sh - -RUN npx playwright install --with-deps - -# copy over the start.sh script -COPY start.sh start.sh - -# make the script executable -RUN chmod +x start.sh - -# set the entrypoint to the start.sh script -ENTRYPOINT ["./start.sh"] \ No newline at end of file diff --git a/tests/docker/README.md b/tests/docker/README.md deleted file mode 100644 index 0af6fc6537..0000000000 --- a/tests/docker/README.md +++ /dev/null @@ -1,4 +0,0 @@ -docker build --tag mustafapc19/ci . - - -docker run --detach --env REG_TOKEN="AIRGTGSSUWA7JFNI57OADLTEW2EGO" --name runner mustafapc19/ci \ No newline at end of file diff --git a/tests/docker/initInstance.sh b/tests/docker/initInstance.sh deleted file mode 100644 index 5cde3b7665..0000000000 --- a/tests/docker/initInstance.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/bash - -REG_TOKEN=$REG_TOKEN - -# Create user named 'github-runner' and password as 'password' -adduser github-runner --disabled-password --gecos "" -usermod --password $(echo '.KsZG.v=SNrA#;j' | openssl passwd -1 -stdin) github-runner -sudo usermod -aG sudo github-runner - -su - github-runner - -# Install dependencies -sudo apt-get -y update -sudo apt-get -y install ca-certificates curl gnupg - -sudo install -m 0755 -d /etc/apt/keyrings -curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg -sudo chmod a+r /etc/apt/keyrings/docker.gpg - -echo \ - "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ - "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \ - sudo tee /etc/apt/sources.list.d/docker.list > /dev/null - -sudo apt-get -y update -sudo apt-get -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin - -#swap -sudo fallocate -l 8G /swapfile -sudo chmod 600 /swapfile -sudo mkswap /swapfile -sudo swapon /swapfile - -sudo cp /etc/fstab /etc/fstab.bak -echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab - -# Install ci container -sudo docker run --detach --env REG_TOKEN="${REG_TOKEN}" --name runner mustafapc19/ci \ No newline at end of file diff --git a/tests/docker/start.sh b/tests/docker/start.sh deleted file mode 100644 index 362fc52f35..0000000000 --- a/tests/docker/start.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash - -service postgresql start && \ -sudo -u postgres psql -c "ALTER USER postgres WITH PASSWORD 'password';" && \ -sudo -u postgres psql -c "ALTER USER postgres WITH SUPERUSER;" && \ -sudo service postgresql restart - -export RUNNER_ALLOW_RUNASROOT="1" - -REG_TOKEN=$REG_TOKEN - -DEFAULT_RUNNER_NAME="$(cat /etc/hostname)" - -cd /home/docker/actions-runner - -./config.sh --url https://github.com/nocodb/nocohub --token ${REG_TOKEN} --name ${DEFAULT_RUNNER_NAME} - -cleanup() { - echo "Removing runner..." - ./config.sh remove --unattended --token ${REG_TOKEN} -} - -trap 'cleanup; exit 130' INT -trap 'cleanup; exit 143' TERM - -./run.sh & wait $! \ No newline at end of file