diff --git a/.github/workflows/deploy-cloud.yaml b/.github/workflows/deploy-cloud.yaml index 778029bf03..26422a2e7b 100644 --- a/.github/workflows/deploy-cloud.yaml +++ b/.github/workflows/deploy-cloud.yaml @@ -16,26 +16,46 @@ jobs: - name: Pull values.yaml from budibase-infra run: | - curl -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \ [c3a7a9d12] + curl -H "Authorization: token ${{ secrets.GH_PERSONAL_TOKEN }}" \ -H 'Accept: application/vnd.github.v3.raw' \ -o values.production.yaml \ -L https://api.github.com/repos/budibase/budibase-infra/contents/kubernetes/values.yaml + wc -l values.production.yaml - - name: Get the latest budibase release version if not specifically set - if: ${{ !github.event.inputs.version }} + - name: Get the latest budibase release version id: version run: | - sudo apt-get install -y jq - release_version=$(cat lerna.json | jq -r '.version') - echo "::set-output name=release_version::$release_version" - - - uses: peymanmortazavi/eks-helm-deploy@v1 + if [ -z "${{ github.event.inputs.version }}" ]; then + release_version=$(cat lerna.json | jq -r '.version') + else + release_version=${{ github.event.inputs.version }} + fi + echo "RELEASE_VERSION=$release_version" >> $GITHUB_ENV + + - name: Configure AWS Credentials + uses: aws-actions/configure-aws-credentials@v1 with: aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} aws-region: eu-west-1 + + - name: Deploy to EKS + uses: craftech-io/eks-helm-deploy-action@v1 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS__KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: eu-west-1 cluster-name: budibase-eks-production config-files: values.production.yaml + chart-path: charts/budibase namespace: budibase - values: appVersion=v${{ github.event.inputs.version || github.steps.version.outputs.release_version }} - name: budibase-prod \ No newline at end of file + values: globals.appVersion=v${{ env.RELEASE_VERSION }} + name: budibase-prod + + - name: Discord Webhook Action + uses: tsickert/discord-webhook@v4.0.0 + with: + webhook-url: ${{ secrets.PROD_DEPLOY_WEBHOOK_URL }} + content: "Production Deployment Complete: ${{ env.RELEASE_VERSION }} deployed to Budibase Cloud." + embed-title: ${{ env.RELEASE_VERSION }} + diff --git a/.github/workflows/deploy-preprod.yml b/.github/workflows/deploy-preprod.yml new file mode 100644 index 0000000000..ce789e71ec --- /dev/null +++ b/.github/workflows/deploy-preprod.yml @@ -0,0 +1,59 @@ +name: Budibase Release Preprod + +on: + workflow_dispatch: + +env: + POSTHOG_TOKEN: ${{ secrets.POSTHOG_TOKEN }} + INTERCOM_TOKEN: ${{ secrets.INTERCOM_TOKEN }} + POSTHOG_URL: ${{ secrets.POSTHOG_URL }} + SENTRY_DSN: ${{ secrets.SENTRY_DSN }} + +jobs: + release: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + + - name: Configure AWS Credentials + uses: aws-actions/configure-aws-credentials@v1 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: eu-west-1 + + - name: 'Get Previous tag' + id: previoustag + uses: "WyriHaximus/github-action-get-previous-tag@v1" + + # - name: Pull values.yaml from budibase-infra + # run: | + # curl -H "Authorization: token ${{ secrets.GH_PERSONAL_TOKEN }}" \ [c3a7a9d12] + # -H 'Accept: application/vnd.github.v3.raw' \ + # -o values.preprod.yaml \ + # -L https://api.github.com/repos/budibase/budibase-infra/contents/kubernetes/values.preprod.yaml + + - name: Deploy to Preprod Environment + uses: deliverybot/helm@v1 + with: + release: budibase-preprod + namespace: budibase + chart: charts/budibase + token: ${{ github.token }} + values: | + globals: + appVersion: ${{ steps.previoustag.outputs.tag }} + # value-files: >- + # [ + # "charts/budibase/values.yaml" + # ] + env: + KUBECONFIG_FILE: '${{ secrets.PREPROD_KUBECONFIG }}' + + - name: Discord Webhook Action + uses: tsickert/discord-webhook@v4.0.0 + with: + webhook-url: ${{ secrets.PROD_DEPLOY_WEBHOOK_URL }} + content: "Preprod Deployment Complete: ${{ env.RELEASE_VERSION }} deployed to Budibase Pre-prod." + embed-title: ${{ env.RELEASE_VERSION }} diff --git a/.github/workflows/release-selfhost.yml b/.github/workflows/release-selfhost.yml index 933fee947c..3e2e5ca6b7 100644 --- a/.github/workflows/release-selfhost.yml +++ b/.github/workflows/release-selfhost.yml @@ -9,15 +9,16 @@ jobs: steps: - uses: actions/checkout@v2 + with: + fetch_depth: 0 - name: Tag and release Docker images (Self Host) run: | docker login -u $DOCKER_USER -p $DOCKER_PASSWORD # Get latest release version - sudo apt-get install -y jq release_version=$(cat lerna.json | jq -r '.version') - echo "::set-output name=release_version::$release_version" + echo "RELEASE_VERSION=$release_version" >> $GITHUB_ENV release_tag=v$release_version # Pull apps and worker images @@ -25,36 +26,44 @@ jobs: docker pull budibase/worker:$release_tag # Tag apps and worker images - docker tag budibase/apps:$release_tag $SELF_HOST_TAG - docker tag budibase/worker:$release_tag $SELF_HOST_TAG + docker tag budibase/apps:$release_tag budibase/apps:$SELFHOST_TAG + docker tag budibase/worker:$release_tag budibase/worker:$SELFHOST_TAG # Push images - docker push --all-tags budibase/apps - docker push --all-tags budibase/worker + docker push budibase/apps:$SELFHOST_TAG + docker push budibase/worker:$SELFHOST_TAG env: DOCKER_USER: ${{ secrets.DOCKER_USERNAME }} DOCKER_PASSWORD: ${{ secrets.DOCKER_API_KEY }} - SELF_HOST_TAG: latest + SELFHOST_TAG: latest - name: Setup Helm uses: azure/setup-helm@v1 id: helm-install - + # - name: Build and release helm chart # run: | # git config user.name "Budibase Helm Bot" # git config user.email "<>" - # helm package charts/budibase + # mv budibase-${{ env.RELEASE_VERSION }}.tgz docs + # helm repo index docs # git checkout gh-pages - # mv budibase-${{ github.steps.version.outputs.release_version }}.tgz docs # git add -A - # git commit -m "Helm Release: ${{ github.steps.version.outputs.release_version }}" + # git commit -m "Helm Release: ${{ env.RELEASE_VERSION }}" # git push # env: # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # - name: Perform github release - # run: | - # echo release - # env: - # GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" \ No newline at end of file + # - name: Deploy + # uses: peaceiris/actions-gh-pages@v3 + # with: + # github_token: ${{ secrets.GITHUB_TOKEN }} + # publish_dir: ./public + # full_commit_message: "Helm Release: ${{ env.RELEASE_VERSION }}" + + - name: Perform Github Release + uses: softprops/action-gh-release@v1 + with: + name: v${{ env.RELEASE_VERSION }} + tag_name: v${{ env.RELEASE_VERSION }} + generate_release_notes: true \ No newline at end of file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8768a01c78..859d89f18b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -3,7 +3,7 @@ name: Budibase Release on: push: branches: - - master + - test env: POSTHOG_TOKEN: ${{ secrets.POSTHOG_TOKEN }} @@ -59,7 +59,7 @@ jobs: # - name: Pull values.yaml from budibase-infra # run: | - # curl -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \ [c3a7a9d12] + # curl -H "Authorization: token ${{ secrets.GH_PERSONAL_TOKEN }}" \ [c3a7a9d12] # -H 'Accept: application/vnd.github.v3.raw' \ # -o values.preprod.yaml \ # -L https://api.github.com/repos/budibase/budibase-infra/contents/kubernetes/values.preprod.yaml @@ -72,10 +72,18 @@ jobs: # chart: charts/budibase # token: ${{ github.token }} # values: | - # appVersion: ${{ steps.previoustag.outputs.tag }} - # value-files: >- - # [ - # "values.preprod.yaml" - # ] + # globals: + # appVersion: ${{ steps.previoustag.outputs.tag }} + # # value-files: >- + # # [ + # # "charts/budibase/values.yaml" + # # ] # env: # KUBECONFIG_FILE: '${{ secrets.PREPROD_KUBECONFIG }}' + + # - name: Discord Webhook Action + # uses: tsickert/discord-webhook@v4.0.0 + # with: + # webhook-url: ${{ secrets.PROD_DEPLOY_WEBHOOK_URL }} + # content: "Preprod Deployment Complete: ${{ env.RELEASE_VERSION }} deployed to Budibase Pre-prod." + # embed-title: ${{ env.RELEASE_VERSION }} diff --git a/hosting/kubernetes/envoy/envoy.yaml b/hosting/kubernetes/envoy/envoy.yaml index 25a774dc7e..bab1f25c02 100644 --- a/hosting/kubernetes/envoy/envoy.yaml +++ b/hosting/kubernetes/envoy/envoy.yaml @@ -50,6 +50,14 @@ static_resources: route: cluster: app-service + - match: + safe_regex: + google_re2: {} + regex: "/api/.*/export" + route: + timeout: 0s + cluster: app-service + - match: { path: "/api/deploy" } route: timeout: 60s diff --git a/lerna.json b/lerna.json index 2d5e3c1efd..fff668e69f 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.0.23", + "version": "1.0.26", "npmClient": "yarn", "packages": [ "packages/*" diff --git a/package.json b/package.json index 63de8251d4..929576a691 100644 --- a/package.json +++ b/package.json @@ -23,8 +23,8 @@ "build": "lerna run build", "publishdev": "lerna run publishdev", "publishnpm": "yarn build && lerna publish --force-publish", - "release": "yarn build && lerna publish patch --yes --force-publish", - "release:develop": "yarn build && lerna publish prerelease --yes --force-publish --dist-tag develop", + "release": "lerna publish patch --yes --force-publish", + "release:develop": "lerna publish prerelease --yes --force-publish --dist-tag develop", "restore": "yarn run clean && yarn run bootstrap && yarn run build", "nuke": "yarn run nuke:packages && yarn run nuke:docker", "nuke:packages": "yarn run restore", diff --git a/packages/auth/package.json b/packages/auth/package.json index 7d360ce9fb..5a6c17e847 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/auth", - "version": "1.0.23", + "version": "1.0.26", "description": "Authentication middlewares for budibase builder and apps", "main": "src/index.js", "author": "Budibase", diff --git a/packages/bbui/package.json b/packages/bbui/package.json index c017bd8de5..2e7aea7113 100644 --- a/packages/bbui/package.json +++ b/packages/bbui/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/bbui", "description": "A UI solution used in the different Budibase projects.", - "version": "1.0.23", + "version": "1.0.26", "license": "MPL-2.0", "svelte": "src/index.js", "module": "dist/bbui.es.js", diff --git a/packages/builder/package.json b/packages/builder/package.json index b8b329a85a..4e06812dfd 100644 --- a/packages/builder/package.json +++ b/packages/builder/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/builder", - "version": "1.0.23", + "version": "1.0.26", "license": "GPL-3.0", "private": true, "scripts": { @@ -65,10 +65,10 @@ } }, "dependencies": { - "@budibase/bbui": "^1.0.23", - "@budibase/client": "^1.0.23", + "@budibase/bbui": "^1.0.26", + "@budibase/client": "^1.0.26", "@budibase/colorpicker": "1.1.2", - "@budibase/string-templates": "^1.0.23", + "@budibase/string-templates": "^1.0.26", "@sentry/browser": "5.19.1", "@spectrum-css/page": "^3.0.1", "@spectrum-css/vars": "^3.0.1", diff --git a/packages/cli/package.json b/packages/cli/package.json index a4d619ac2c..e82b9c0672 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/cli", - "version": "1.0.23", + "version": "1.0.26", "description": "Budibase CLI, for developers, self hosting and migrations.", "main": "src/index.js", "bin": { diff --git a/packages/client/package.json b/packages/client/package.json index 9b78f34089..db44f8ea73 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/client", - "version": "1.0.23", + "version": "1.0.26", "license": "MPL-2.0", "module": "dist/budibase-client.js", "main": "dist/budibase-client.js", @@ -19,9 +19,9 @@ "dev:builder": "rollup -cw" }, "dependencies": { - "@budibase/bbui": "^1.0.23", + "@budibase/bbui": "^1.0.26", "@budibase/standard-components": "^0.9.139", - "@budibase/string-templates": "^1.0.23", + "@budibase/string-templates": "^1.0.26", "regexparam": "^1.3.0", "shortid": "^2.2.15", "svelte-spa-router": "^3.0.5" diff --git a/packages/server/package.json b/packages/server/package.json index 68b464d452..292a11296c 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/server", "email": "hi@budibase.com", - "version": "1.0.23", + "version": "1.0.26", "description": "Budibase Web Server", "main": "src/index.ts", "repository": { @@ -69,9 +69,9 @@ "author": "Budibase", "license": "GPL-3.0", "dependencies": { - "@budibase/auth": "^1.0.23", - "@budibase/client": "^1.0.23", - "@budibase/string-templates": "^1.0.23", + "@budibase/auth": "^1.0.26", + "@budibase/client": "^1.0.26", + "@budibase/string-templates": "^1.0.26", "@bull-board/api": "^3.7.0", "@bull-board/koa": "^3.7.0", "@elastic/elasticsearch": "7.10.0", diff --git a/packages/string-templates/package.json b/packages/string-templates/package.json index 7816c22830..d81e207e48 100644 --- a/packages/string-templates/package.json +++ b/packages/string-templates/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/string-templates", - "version": "1.0.23", + "version": "1.0.26", "description": "Handlebars wrapper for Budibase templating.", "main": "src/index.cjs", "module": "dist/bundle.mjs", diff --git a/packages/worker/package.json b/packages/worker/package.json index 86b4841af5..12a3c959ab 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/worker", "email": "hi@budibase.com", - "version": "1.0.23", + "version": "1.0.26", "description": "Budibase background service", "main": "src/index.js", "repository": { @@ -29,8 +29,8 @@ "author": "Budibase", "license": "GPL-3.0", "dependencies": { - "@budibase/auth": "^1.0.23", - "@budibase/string-templates": "^1.0.23", + "@budibase/auth": "^1.0.26", + "@budibase/string-templates": "^1.0.26", "@koa/router": "^8.0.0", "@sentry/node": "^6.0.0", "@techpass/passport-openidconnect": "^0.3.0",