diff --git a/.github/workflows/docker-base-image.yml b/.github/workflows/docker-base-image.yml index c32160e763..c2b5c9b6e6 100644 --- a/.github/workflows/docker-base-image.yml +++ b/.github/workflows/docker-base-image.yml @@ -20,26 +20,28 @@ jobs: - uses: actions/checkout@v4.1.1 - name: Set up QEMU - uses: docker/setup-qemu-action@v3.0.0 + uses: docker/setup-qemu-action@v3.3.0 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3.0.0 + uses: docker/setup-buildx-action@v3.8.0 - name: Login to GitHub Container Registry - uses: docker/login-action@v3.0.0 + uses: docker/login-action@v3.3.0 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Login to DockerHub - uses: docker/login-action@v3.0.0 + uses: docker/login-action@v3.3.0 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - name: Build - uses: docker/build-push-action@v5.1.0 + uses: docker/build-push-action@v6.11.0 + env: + DOCKER_BUILD_SUMMARY: false with: context: . file: ./docker/images/n8n-base/Dockerfile diff --git a/.github/workflows/docker-images-benchmark.yml b/.github/workflows/docker-images-benchmark.yml index b0aa6e997d..d4bf2f98a0 100644 --- a/.github/workflows/docker-images-benchmark.yml +++ b/.github/workflows/docker-images-benchmark.yml @@ -19,20 +19,22 @@ jobs: - uses: actions/checkout@v4.1.1 - name: Set up QEMU - uses: docker/setup-qemu-action@v3.0.0 + uses: docker/setup-qemu-action@v3.3.0 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3.0.0 + uses: docker/setup-buildx-action@v3.8.0 - name: Login to GitHub Container Registry - uses: docker/login-action@v3.0.0 + uses: docker/login-action@v3.3.0 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Build - uses: docker/build-push-action@v5.1.0 + uses: docker/build-push-action@v6.11.0 + env: + DOCKER_BUILD_SUMMARY: false with: context: . file: ./packages/@n8n/benchmark/Dockerfile diff --git a/.github/workflows/docker-images-custom.yml b/.github/workflows/docker-images-custom.yml new file mode 100644 index 0000000000..dfc9d77a03 --- /dev/null +++ b/.github/workflows/docker-images-custom.yml @@ -0,0 +1,83 @@ +name: Docker Custom Image CI +run-name: Build ${{ inputs.branch }} - ${{ inputs.user }} + +on: + workflow_dispatch: + inputs: + branch: + description: 'GitHub branch to create image off.' + required: true + tag: + description: 'Name of the docker tag to create.' + required: true + merge-master: + description: 'Merge with master.' + type: boolean + required: true + default: false + user: + description: '' + required: false + default: 'none' + start-url: + description: 'URL to call after workflow is kicked off.' + required: false + default: '' + success-url: + description: 'URL to call after Docker Image got built successfully.' + required: false + default: '' + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Call Start URL - optionally + if: ${{ github.event.inputs.start-url != '' }} + run: curl -v -X POST -d 'url=${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}' ${{github.event.inputs.start-url}} || echo "" + shell: bash + + - name: Checkout + uses: actions/checkout@v4.1.1 + with: + ref: ${{ github.event.inputs.branch }} + + - name: Merge Master - optionally + if: github.event.inputs.merge-master + run: git remote add upstream https://github.com/n8n-io/n8n.git -f; git merge upstream/master --allow-unrelated-histories || echo "" + shell: bash + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3.3.0 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3.8.0 + + - name: Login to GHCR + uses: docker/login-action@v3.3.0 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build and push image to GHCR + uses: docker/build-push-action@v6.11.0 + env: + DOCKER_BUILD_SUMMARY: false + with: + context: . + file: ./docker/images/n8n-custom/Dockerfile + build-args: | + N8N_RELEASE_TYPE=development + platforms: linux/amd64 + provenance: false + push: true + cache-from: type=gha + cache-to: type=gha,mode=max + tags: ghcr.io/${{ github.repository_owner }}/n8n:${{ inputs.tag }} + + - name: Call Success URL - optionally + if: ${{ github.event.inputs.success-url != '' }} + run: curl -v ${{github.event.inputs.success-url}} || echo "" + shell: bash diff --git a/.github/workflows/docker-images-nightly.yml b/.github/workflows/docker-images-nightly.yml index b6831b6399..c924f8b2c1 100644 --- a/.github/workflows/docker-images-nightly.yml +++ b/.github/workflows/docker-images-nightly.yml @@ -1,74 +1,42 @@ name: Docker Nightly Image CI -run-name: Build ${{ inputs.branch }} - ${{ inputs.user }} on: schedule: - - cron: '0 1 * * *' + - cron: '0 0 * * *' workflow_dispatch: - inputs: - branch: - description: 'GitHub branch to create image off.' - required: true - default: 'master' - tag: - description: 'Name of the docker tag to create.' - required: true - default: 'nightly' - merge-master: - description: 'Merge with master.' - type: boolean - required: true - default: false - user: - description: '' - required: false - default: 'schedule' - start-url: - description: 'URL to call after workflow is kicked off.' - required: false - default: '' - success-url: - description: 'URL to call after Docker Image got built successfully.' - required: false - default: '' - -env: - N8N_TAG: ${{ inputs.tag || 'nightly' }} jobs: build: runs-on: ubuntu-latest - steps: - - name: Call Start URL - optionally - run: | - [[ "${{github.event.inputs.start-url}}" != "" ]] && curl -v -X POST -d 'url=${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}' ${{github.event.inputs.start-url}} || echo "" - shell: bash - - name: Checkout uses: actions/checkout@v4.1.1 with: - ref: ${{ github.event.inputs.branch || 'master' }} + ref: master - name: Set up QEMU - uses: docker/setup-qemu-action@v3.0.0 + uses: docker/setup-qemu-action@v3.3.0 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3.0.0 + uses: docker/setup-buildx-action@v3.8.0 + + - name: Login to GHCR + uses: docker/login-action@v3.3.0 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} - name: Login to DockerHub - uses: docker/login-action@v3.0.0 + uses: docker/login-action@v3.3.0 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - - name: Merge Master - optionally - run: | - [[ "${{github.event.inputs.merge-master}}" == "true" ]] && git remote add upstream https://github.com/n8n-io/n8n.git -f; git merge upstream/master --allow-unrelated-histories || echo "" - shell: bash - - - name: Build and push to DockerHub - uses: docker/build-push-action@v5.1.0 + - name: Build and push image to GHCR and DockerHub + uses: docker/build-push-action@v6.11.0 + env: + DOCKER_BUILD_SUMMARY: false with: context: . file: ./docker/images/n8n-custom/Dockerfile @@ -79,24 +47,6 @@ jobs: push: true cache-from: type=gha cache-to: type=gha,mode=max - tags: ${{ secrets.DOCKER_USERNAME }}/n8n:${{ env.N8N_TAG }} - - - name: Login to GitHub Container Registry - if: env.N8N_TAG == 'nightly' - uses: docker/login-action@v3.0.0 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Push image to GHCR - if: env.N8N_TAG == 'nightly' - run: | - docker buildx imagetools create \ - --tag ghcr.io/${{ github.repository_owner }}/n8n:nightly \ + tags: | + ghcr.io/${{ github.repository_owner }}/n8n:nightly ${{ secrets.DOCKER_USERNAME }}/n8n:nightly - - - name: Call Success URL - optionally - run: | - [[ "${{github.event.inputs.success-url}}" != "" ]] && curl -v ${{github.event.inputs.success-url}} || echo "" - shell: bash diff --git a/.github/workflows/release-publish.yml b/.github/workflows/release-publish.yml index 9196a7fccb..b95350a577 100644 --- a/.github/workflows/release-publish.yml +++ b/.github/workflows/release-publish.yml @@ -73,26 +73,28 @@ jobs: fetch-depth: 0 - name: Set up QEMU - uses: docker/setup-qemu-action@v3.0.0 + uses: docker/setup-qemu-action@v3.3.0 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3.0.0 + uses: docker/setup-buildx-action@v3.8.0 - name: Login to GitHub Container Registry - uses: docker/login-action@v3.0.0 + uses: docker/login-action@v3.3.0 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Login to DockerHub - uses: docker/login-action@v3.0.0 + uses: docker/login-action@v3.3.0 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - name: Build - uses: docker/build-push-action@v5.1.0 + uses: docker/build-push-action@v6.11.0 + env: + DOCKER_BUILD_SUMMARY: false with: context: ./docker/images/n8n build-args: | diff --git a/.github/workflows/release-push-to-channel.yml b/.github/workflows/release-push-to-channel.yml index 3eda6d4ebb..9cb3a99b63 100644 --- a/.github/workflows/release-push-to-channel.yml +++ b/.github/workflows/release-push-to-channel.yml @@ -34,7 +34,7 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 5 steps: - - uses: docker/login-action@v3.0.0 + - uses: docker/login-action@v3.3.0 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} @@ -46,7 +46,7 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 5 steps: - - uses: docker/login-action@v3.0.0 + - uses: docker/login-action@v3.3.0 with: registry: ghcr.io username: ${{ github.actor }}