name: Run test workflows on: schedule: - cron: "0 2 * * *" workflow_dispatch: jobs: run-test-workflows: runs-on: ubuntu-latest strategy: matrix: node-version: [14.x] steps: - name: Checkout uses: actions/checkout@v2 with: path: n8n - name: Checkout workflows repo uses: actions/checkout@v2 with: repository: n8n-io/test-workflows path: test-workflows - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v1 with: node-version: ${{ matrix.node-version }} - name: Install dependencies run: | apt update -y echo 'tzdata tzdata/Areas select Europe' | debconf-set-selections echo 'tzdata tzdata/Zones/Europe select Paris' | debconf-set-selections DEBIAN_FRONTEND="noninteractive" apt-get install -y graphicsmagick shell: bash - name: npm install and build run: | cd n8n npm install npm run bootstrap 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 cp n8n/assets/n8n-screenshot.png /tmp/n8n-screenshot.png 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 --skipList=test-workflows/skipList.txt --shortOutput --concurrency=16 --compare=test-workflows/snapshots shell: bash env: N8N_ENCRYPTION_KEY: ${{secrets.ENCRYPTION_KEY}} - name: Export credentials if: always() run: n8n/packages/cli/bin/n8n export:credentials --output=test-workflows/credentials.json --all --pretty shell: bash env: N8N_ENCRYPTION_KEY: ${{secrets.ENCRYPTION_KEY}} - name: Commit and push credential changes if: always() run: | cd test-workflows git config --global user.name 'n8n test bot' git config --global user.email 'n8n-test-bot@users.noreply.github.com' git commit -am "Automated credential update" git push --force --quiet "https://janober:${{ secrets.TOKEN }}@github.com/n8n-io/test-workflows.git" main:main