diff --git a/.github/workflows/ci-master.yml b/.github/workflows/ci-master.yml index 4f6654e966..f340184a82 100644 --- a/.github/workflows/ci-master.yml +++ b/.github/workflows/ci-master.yml @@ -16,17 +16,22 @@ jobs: node-version: [14.x, 16.x] steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v3 + - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + uses: actions/setup-node@v3 with: node-version: ${{ matrix.node-version }} - - name: npm install, build, and test - run: | - npm install -g npm@latest - npm install - npm run build --if-present - npm test - npm run lint - env: - CI: true + cache: 'npm' + + - name: Install npm and dependencies + run: npm install -g npm@latest && npm install + + - name: Build + run: npm run build --if-present + + - name: Test + run: npm run test + + - name: Lint + run: npm run lint diff --git a/.github/workflows/docker-base-image.yml b/.github/workflows/docker-base-image.yml index 35072ae7fd..dca942faa5 100644 --- a/.github/workflows/docker-base-image.yml +++ b/.github/workflows/docker-base-image.yml @@ -13,16 +13,20 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v3 + - name: Set up QEMU - uses: docker/setup-qemu-action@v1 + uses: docker/setup-qemu-action@v2 + - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 + uses: docker/setup-buildx-action@v2 + - name: Login to DockerHub - uses: docker/login-action@v1 + uses: docker/login-action@v2 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} + - name: Build uses: docker/build-push-action@v2 with: diff --git a/.github/workflows/docker-images-nightly.yml b/.github/workflows/docker-images-nightly.yml index 281d5dacca..d94b182ad8 100644 --- a/.github/workflows/docker-images-nightly.yml +++ b/.github/workflows/docker-images-nightly.yml @@ -33,23 +33,28 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: repository: ${{ github.event.inputs.repository || 'n8n-io/n8n' }} ref: ${{ github.event.inputs.branch || 'master' }} + - name: Set up QEMU - uses: docker/setup-qemu-action@v1 + uses: docker/setup-qemu-action@v2 + - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 + uses: docker/setup-buildx-action@v2 + - name: Login to DockerHub - uses: docker/login-action@v1 + uses: docker/login-action@v2 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 uses: docker/build-push-action@v2 with: @@ -59,6 +64,7 @@ jobs: push: true tags: ${{ secrets.DOCKER_USERNAME }}/n8n:${{ github.event.inputs.tag || 'nightly' }} no-cache: true + - name: Call Success URL - optionally run: | [[ "${{github.event.inputs.success-url}}" != "" ]] && curl -v ${{github.event.inputs.success-url}} || echo "" diff --git a/.github/workflows/docker-images.yml b/.github/workflows/docker-images.yml index 3ff4aa6160..628a611c46 100644 --- a/.github/workflows/docker-images.yml +++ b/.github/workflows/docker-images.yml @@ -9,19 +9,24 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v3 + - name: Get the version id: vars run: echo ::set-output name=tag::$(echo ${GITHUB_REF:14}) + - name: Set up QEMU - uses: docker/setup-qemu-action@v1 + uses: docker/setup-qemu-action@v2 + - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 + uses: docker/setup-buildx-action@v2 + - name: Login to DockerHub - uses: docker/login-action@v1 + uses: docker/login-action@v2 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} + - name: Build uses: docker/build-push-action@v2 with: @@ -33,6 +38,7 @@ jobs: tags: | ${{ secrets.DOCKER_USERNAME }}/n8n:${{ steps.vars.outputs.tag }} ${{ secrets.DOCKER_USERNAME }}/n8n:latest + - name: Build (debian) uses: docker/build-push-action@v2 with: diff --git a/.github/workflows/test-workflows.yml b/.github/workflows/test-workflows.yml index ab474005e6..cdcd60ba9e 100644 --- a/.github/workflows/test-workflows.yml +++ b/.github/workflows/test-workflows.yml @@ -16,18 +16,22 @@ jobs: node-version: [16.x] steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: path: n8n + - name: Checkout workflows repo - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: repository: n8n-io/test-workflows path: test-workflows + - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + uses: actions/setup-node@v3 with: node-version: ${{ matrix.node-version }} + cache: 'npm' + - name: Install dependencies run: | sudo apt update -y @@ -35,25 +39,27 @@ jobs: echo 'tzdata tzdata/Zones/Europe select Paris' | sudo debconf-set-selections DEBIAN_FRONTEND="noninteractive" sudo apt-get install -y graphicsmagick shell: bash + - name: npm install and build run: | cd n8n npm install -g npm@latest npm install npm run build --if-present - env: - CI: true shell: bash + - name: Import credentials run: n8n/packages/cli/bin/n8n import:credentials --input=test-workflows/credentials.json shell: bash env: N8N_ENCRYPTION_KEY: ${{secrets.ENCRYPTION_KEY}} + - name: Import workflows run: n8n/packages/cli/bin/n8n import:workflow --separate --input=test-workflows/workflows shell: bash env: N8N_ENCRYPTION_KEY: ${{secrets.ENCRYPTION_KEY}} + - name: Copy static assets run: | cp n8n/assets/n8n-logo.png /tmp/n8n-logo.png @@ -61,6 +67,7 @@ jobs: cp n8n/node_modules/pdf-parse/test/data/05-versions-space.pdf /tmp/05-versions-space.pdf cp n8n/node_modules/pdf-parse/test/data/04-valid.pdf /tmp/04-valid.pdf shell: bash + - name: Run tests run: n8n/packages/cli/bin/n8n executeBatch --shallow --ids=test-workflows/safeList.txt --shortOutput --concurrency=16 --compare=test-workflows/snapshots shell: bash