diff --git a/.github/workflows/release-develop.yml b/.github/workflows/release-develop.yml index 503fc53194..9bb37d7356 100644 --- a/.github/workflows/release-develop.yml +++ b/.github/workflows/release-develop.yml @@ -60,7 +60,7 @@ jobs: node scripts/syncLocalDependencies.js $version echo "Syncing yarn workspace" yarn - - run: yarn build --configuration=production + - run: yarn build - run: yarn build:sdk - name: Publish budibase packages to NPM diff --git a/.github/workflows/release-master.yml b/.github/workflows/release-master.yml index a4e679e7bf..a105d8a712 100644 --- a/.github/workflows/release-master.yml +++ b/.github/workflows/release-master.yml @@ -54,7 +54,7 @@ jobs: echo "Syncing yarn workspace" yarn - run: yarn lint - - run: yarn build --configuration=production + - run: yarn build - run: yarn build:sdk - name: Publish budibase packages to NPM diff --git a/.github/workflows/release-selfhost.yml b/.github/workflows/release-selfhost.yml index 7a56748dfb..f4524e99dc 100644 --- a/.github/workflows/release-selfhost.yml +++ b/.github/workflows/release-selfhost.yml @@ -17,6 +17,8 @@ jobs: - uses: actions/checkout@v2 with: + submodules: true + token: ${{ secrets.PERSONAL_ACCESS_TOKEN }} fetch-depth: 0 - name: Fail if tag is not in master diff --git a/.github/workflows/release-singleimage.yml b/.github/workflows/release-singleimage.yml index fbf972a866..eadf40ca00 100644 --- a/.github/workflows/release-singleimage.yml +++ b/.github/workflows/release-singleimage.yml @@ -5,7 +5,7 @@ on: env: CI: true - PERSONAL_ACCESS_TOKEN : ${{ secrets.PERSONAL_ACCESS_TOKEN }} + PERSONAL_ACCESS_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }} REGISTRY_URL: registry.hub.docker.com jobs: build: @@ -24,6 +24,8 @@ jobs: - name: "Checkout" uses: actions/checkout@v2 with: + submodules: true + token: ${{ secrets.PERSONAL_ACCESS_TOKEN }} fetch-depth: 0 - name: Fail if tag is not in master @@ -32,7 +34,7 @@ jobs: echo "Tag is not in master. This pipeline can only execute tags that are present on the master branch" exit 1 fi - + - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v1 with: @@ -44,10 +46,34 @@ jobs: uses: docker/setup-buildx-action@v1 - name: Run Yarn run: yarn - - name: Run Yarn Bootstrap - run: yarn bootstrap + - name: Update versions + run: | + version=$(cat lerna.json \ + | grep version \ + | head -1 \ + | awk -F: '{gsub(/"/,"",$2);gsub(/[[:space:]]*/,"",$2); print $2}' \ + | sed 's/[",]//g') + echo "Setting version $version" + yarn lerna exec "yarn version --no-git-tag-version --new-version=$version" + echo "Updating dependencies" + node scripts/syncLocalDependencies.js $version + echo "Syncing yarn workspace" + yarn - name: Runt Yarn Lint run: yarn lint + - name: Update versions + run: | + version=$(cat lerna.json \ + | grep version \ + | head -1 \ + | awk -F: '{gsub(/"/,"",$2);gsub(/[[:space:]]*/,"",$2); print $2}' \ + | sed 's/[",]//g') + echo "Setting version $version" + yarn lerna exec "yarn version --no-git-tag-version --new-version=$version" + echo "Updating dependencies" + node scripts/syncLocalDependencies.js $version + echo "Syncing yarn workspace" + yarn - name: Run Yarn Build run: yarn build:docker:pre - name: Login to Docker Hub diff --git a/hosting/single/Dockerfile b/hosting/single/Dockerfile index 64a6b01365..56df8185a9 100644 --- a/hosting/single/Dockerfile +++ b/hosting/single/Dockerfile @@ -1,4 +1,4 @@ -FROM node:16-slim as build +FROM node:14-slim as build # install node-gyp dependencies RUN apt-get update && apt-get upgrade -y && apt-get install -y --no-install-recommends apt-utils cron g++ make python @@ -11,12 +11,16 @@ RUN chmod +x /cleanup.sh # build server WORKDIR /app ADD packages/server . -RUN yarn install --frozen-lockfile --production=true && /cleanup.sh +COPY yarn.lock . +RUN yarn install --production=true +RUN /cleanup.sh # build worker WORKDIR /worker ADD packages/worker . -RUN yarn install --frozen-lockfile --production=true && /cleanup.sh +COPY yarn.lock . +RUN yarn install --production=true +RUN /cleanup.sh FROM budibase/couchdb ARG TARGETARCH diff --git a/lerna.json b/lerna.json index 21ffea6191..f5cff9d16e 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "2.7.1-alpha.1", + "version": "2.7.4", "npmClient": "yarn", "packages": [ "packages/backend-core", diff --git a/package.json b/package.json index ffb3fa775a..56f015f8c0 100644 --- a/package.json +++ b/package.json @@ -52,7 +52,7 @@ "dev:noserver": "yarn run kill-builder && lerna run --stream dev:stack:up && lerna run --stream --parallel dev:builder --ignore @budibase/backend-core --ignore @budibase/server --ignore @budibase/worker", "dev:server": "yarn run kill-server && lerna run --stream --parallel dev:builder --scope @budibase/worker --scope @budibase/server", "dev:built": "yarn run kill-all && cd packages/server && yarn dev:stack:up && cd ../../ && lerna run --stream --parallel dev:built", - "dev:docker": "yarn build && docker-compose -f hosting/docker-compose.build.yaml -f hosting/docker-compose.dev.yaml --env-file hosting/.env up --build --scale proxy-service=0", + "dev:docker": "yarn build:docker:pre && docker-compose -f hosting/docker-compose.build.yaml -f hosting/docker-compose.dev.yaml --env-file hosting/.env up --build --scale proxy-service=0", "test": "lerna run --stream test --stream", "lint:eslint": "eslint packages && eslint qa-core", "lint:prettier": "prettier --check \"packages/**/*.{js,ts,svelte}\" && prettier --write \"examples/**/*.{js,ts,svelte}\" && prettier --check \"qa-core/**/*.{js,ts,svelte}\"", @@ -62,7 +62,7 @@ "lint:fix": "yarn run lint:fix:prettier && yarn run lint:fix:eslint", "build:specs": "lerna run --stream specs", "build:docker": "lerna run --stream build:docker && yarn build:docker:proxy && cd hosting/scripts/linux/ && ./release-to-docker-hub.sh $BUDIBASE_RELEASE_VERSION && cd -", - "build:docker:pre": "lerna run --stream build && lerna run --stream predocker", + "build:docker:pre": "yarn build && lerna run --stream predocker", "build:docker:proxy": "docker build hosting/proxy -t proxy-service", "build:docker:selfhost": "lerna run --stream build:docker && cd hosting/scripts/linux/ && ./release-to-docker-hub.sh latest && cd -", "build:docker:develop": "node scripts/pinVersions && lerna run --stream build:docker && yarn build:docker:proxy && cd hosting/scripts/linux/ && ./release-to-docker-hub.sh develop && cd -", diff --git a/packages/server/Dockerfile b/packages/server/Dockerfile index 5880a84326..78dcb38dcf 100644 --- a/packages/server/Dockerfile +++ b/packages/server/Dockerfile @@ -27,7 +27,8 @@ COPY scripts/integrations/oracle/ scripts/integrations/oracle/ RUN /bin/bash -e scripts/integrations/oracle/instantclient/linux/x86-64/install.sh COPY package.json . -RUN yarn install --frozen-lockfile --production=true +COPY dist/yarn.lock . +RUN yarn install --production=true # Remove unneeded data from file system to reduce image size RUN yarn cache clean && apt-get remove -y --purge --auto-remove g++ make python \ && rm -rf /tmp/* /root/.node-gyp /usr/local/lib/node_modules/npm/node_modules/node-gyp diff --git a/packages/server/package.json b/packages/server/package.json index c73bba0f16..6e74de6afa 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -18,7 +18,7 @@ "test": "bash scripts/test.sh", "test:memory": "jest --maxWorkers=2 --logHeapUsage --forceExit", "test:watch": "jest --watch", - "predocker": "copyfiles -f ../client/dist/budibase-client.js ../client/manifest.json client && yarn build --configuration=production", + "predocker": "copyfiles -f ../client/dist/budibase-client.js ../client/manifest.json client && yarn build && cp ../../yarn.lock ./dist/", "build:docker": "yarn predocker && docker build . -t app-service --label version=$BUDIBASE_RELEASE_VERSION", "build:docs": "node ./scripts/docs/generate.js open", "run:docker": "node dist/index.js", diff --git a/packages/server/src/api/controllers/table/external.ts b/packages/server/src/api/controllers/table/external.ts index a00e65687f..ee789ddd3a 100644 --- a/packages/server/src/api/controllers/table/external.ts +++ b/packages/server/src/api/controllers/table/external.ts @@ -208,6 +208,7 @@ export async function save(ctx: UserCtx) { let tableToSave: TableRequest = { type: "table", _id: buildExternalTableId(datasourceId, inputs.name), + sourceId: datasourceId, ...inputs, } diff --git a/packages/worker/Dockerfile b/packages/worker/Dockerfile index a80ae00af1..dd98f3b7f8 100644 --- a/packages/worker/Dockerfile +++ b/packages/worker/Dockerfile @@ -13,7 +13,8 @@ RUN yarn global add pm2 COPY package.json . -RUN yarn install --frozen-lockfile --production=true +COPY dist/yarn.lock . +RUN yarn install --production=true # Remove unneeded data from file system to reduce image size RUN apk del .gyp \ && yarn cache clean diff --git a/packages/worker/package.json b/packages/worker/package.json index a90a4eb683..f07cb011a0 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -19,7 +19,7 @@ "run:docker": "node dist/index.js", "debug": "yarn build && node --expose-gc --inspect=9223 dist/index.js", "run:docker:cluster": "pm2-runtime start pm2.config.js", - "predocker": "yarn build --configuration=production", + "predocker": "yarn build && cp ../../yarn.lock ./dist/", "build:docker": "yarn predocker && docker build . -t worker-service --label version=$BUDIBASE_RELEASE_VERSION", "dev:stack:init": "node ./scripts/dev/manage.js init", "dev:builder": "npm run dev:stack:init && rimraf dist/ && nodemon", @@ -104,4 +104,4 @@ "update-dotenv": "1.1.1" }, "gitHead": "d1836a898cab3f8ab80ee6d8f42be1a9eed7dcdc" -} +} \ No newline at end of file