From 101255d18661d18cbc236ea3ac20c8401fa357e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E0=A4=95=E0=A4=BE=E0=A4=B0=E0=A4=A4=E0=A5=8B=E0=A4=AB?= =?UTF-8?q?=E0=A5=8D=E0=A4=AB=E0=A5=87=E0=A4=B2=E0=A4=B8=E0=A5=8D=E0=A4=95?= =?UTF-8?q?=E0=A5=8D=E0=A4=B0=E0=A4=BF=E0=A4=AA=E0=A5=8D=E0=A4=9F=E2=84=A2?= Date: Tue, 3 Oct 2023 20:49:04 +0200 Subject: [PATCH] ci: Make builds release-channel aware. Add support for scheduled beta builds (#7323) ADO-1121 --------- Co-authored-by: Jan Oberhauser --- .github/workflows/docker-image-beta.yml | 45 +++++++++++++++++++ .github/workflows/docker-images-nightly.yml | 2 + docker/images/n8n-custom/Dockerfile | 2 + docker/images/n8n/Dockerfile | 1 + packages/cli/src/Server.ts | 2 +- packages/cli/src/config/schema.ts | 10 ++--- packages/editor-ui/public/n8n-dev-logo.svg | 2 + .../editor-ui/public/n8n-nightly-logo.svg | 2 + packages/editor-ui/src/components/Logo.vue | 9 ++-- .../editor-ui/src/components/MainSidebar.vue | 10 ++--- .../src/composables/useTitleChange.ts | 5 ++- packages/editor-ui/src/stores/ui.store.ts | 6 +++ packages/workflow/src/Interfaces.ts | 2 +- 13 files changed, 78 insertions(+), 20 deletions(-) create mode 100644 .github/workflows/docker-image-beta.yml create mode 100644 packages/editor-ui/public/n8n-dev-logo.svg create mode 100644 packages/editor-ui/public/n8n-nightly-logo.svg diff --git a/.github/workflows/docker-image-beta.yml b/.github/workflows/docker-image-beta.yml new file mode 100644 index 000000000..8dbe8082f --- /dev/null +++ b/.github/workflows/docker-image-beta.yml @@ -0,0 +1,45 @@ +name: Docker Image - Beta + +on: + schedule: + - cron: '0 2 * * *' + workflow_dispatch: + branch: + description: 'Branch to create image off.' + required: true + default: 'ai-tool-creation-breaking' + tag: + description: 'Name of the docker tag to create.' + required: true + default: 'ai-beta' + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3.5.3 + with: + fetch-depth: 0 + ref: ${{ github.event.inputs.branch || 'ai-tool-creation-breaking' }} + + - uses: docker/setup-qemu-action@v2 + - uses: docker/setup-buildx-action@v2 + + - name: Login to DockerHub + uses: docker/login-action@v2.2.0 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Build and push + uses: docker/build-push-action@v4.1.1 + with: + context: . + file: ./docker/images/n8n-custom/Dockerfile + build-args: | + N8N_RELEASE_TYPE=beta + platforms: linux/amd64 + provenance: false + push: true + tags: ${{ secrets.DOCKER_USERNAME }}/n8n:${{ github.event.inputs.tag || 'ai-beta' }} + no-cache: true diff --git a/.github/workflows/docker-images-nightly.yml b/.github/workflows/docker-images-nightly.yml index f804c1088..2be6e4061 100644 --- a/.github/workflows/docker-images-nightly.yml +++ b/.github/workflows/docker-images-nightly.yml @@ -73,6 +73,8 @@ jobs: uses: docker/build-push-action@v4.1.1 with: context: . + build-args: | + N8N_RELEASE_TYPE=nightly file: ./docker/images/n8n-custom/Dockerfile platforms: linux/amd64 provenance: false diff --git a/docker/images/n8n-custom/Dockerfile b/docker/images/n8n-custom/Dockerfile index 5c5f37c8d..0d6f9e54d 100644 --- a/docker/images/n8n-custom/Dockerfile +++ b/docker/images/n8n-custom/Dockerfile @@ -1,4 +1,5 @@ ARG NODE_VERSION=18 +ARG N8N_RELEASE_TYPE=dev # 1. Create an image to build n8n FROM n8nio/base:${NODE_VERSION} as builder @@ -35,4 +36,5 @@ RUN \ chown node:node .n8n USER node ENV NODE_ENV=production +ENV N8N_RELEASE_TYPE=${N8N_RELEASE_TYPE} ENTRYPOINT ["tini", "--", "/docker-entrypoint.sh"] diff --git a/docker/images/n8n/Dockerfile b/docker/images/n8n/Dockerfile index 75892ddff..a69956363 100644 --- a/docker/images/n8n/Dockerfile +++ b/docker/images/n8n/Dockerfile @@ -6,6 +6,7 @@ RUN if [ -z "$N8N_VERSION" ] ; then echo "The N8N_VERSION argument is missing!" ENV N8N_VERSION=${N8N_VERSION} ENV NODE_ENV=production +ENV N8N_RELEASE_TYPE=stable RUN set -eux; \ apkArch="$(apk --print-arch)"; \ case "$apkArch" in \ diff --git a/packages/cli/src/Server.ts b/packages/cli/src/Server.ts index 22b67be6e..93a6128df 100644 --- a/packages/cli/src/Server.ts +++ b/packages/cli/src/Server.ts @@ -249,7 +249,7 @@ export class Server extends AbstractServer { urlBaseWebhook, urlBaseEditor: instanceBaseUrl, versionCli: '', - isBetaRelease: config.getEnv('generic.isBetaRelease'), + releaseChannel: config.getEnv('generic.releaseChannel'), oauthCallbackUrls: { oauth1: `${instanceBaseUrl}/${this.restEndpoint}/oauth1-credential/callback`, oauth2: `${instanceBaseUrl}/${this.restEndpoint}/oauth2-credential/callback`, diff --git a/packages/cli/src/config/schema.ts b/packages/cli/src/config/schema.ts index b8052444f..4e7420cf5 100644 --- a/packages/cli/src/config/schema.ts +++ b/packages/cli/src/config/schema.ts @@ -432,11 +432,11 @@ export const schema = { default: 'main', }, - isBetaRelease: { - doc: 'If it is a beta release', - format: 'Boolean', - default: false, - env: 'IS_BETA_RELEASE', + releaseChannel: { + doc: 'N8N release channel', + format: ['stable', 'beta', 'nightly', 'dev'] as const, + default: 'dev', + env: 'N8N_RELEASE_TYPE', }, }, diff --git a/packages/editor-ui/public/n8n-dev-logo.svg b/packages/editor-ui/public/n8n-dev-logo.svg new file mode 100644 index 000000000..4752c9ca1 --- /dev/null +++ b/packages/editor-ui/public/n8n-dev-logo.svg @@ -0,0 +1,2 @@ + + diff --git a/packages/editor-ui/public/n8n-nightly-logo.svg b/packages/editor-ui/public/n8n-nightly-logo.svg new file mode 100644 index 000000000..7df119fe5 --- /dev/null +++ b/packages/editor-ui/public/n8n-nightly-logo.svg @@ -0,0 +1,2 @@ + + diff --git a/packages/editor-ui/src/components/Logo.vue b/packages/editor-ui/src/components/Logo.vue index a4347825d..8504ae28c 100644 --- a/packages/editor-ui/src/components/Logo.vue +++ b/packages/editor-ui/src/components/Logo.vue @@ -5,19 +5,16 @@