Run test workflows #379
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Run test workflows | |
on: | |
schedule: | |
- cron: '0 2 * * *' | |
workflow_dispatch: | |
jobs: | |
run-test-workflows: | |
runs-on: ubuntu-latest | |
timeout-minutes: 30 | |
steps: | |
- name: Checkout | |
uses: actions/[email protected] | |
with: | |
path: n8n | |
- name: Checkout workflows repo | |
uses: actions/[email protected] | |
with: | |
repository: n8n-io/test-workflows | |
path: test-workflows | |
- run: corepack enable | |
working-directory: n8n | |
- uses: actions/[email protected] | |
with: | |
node-version: 18.x | |
cache: 'pnpm' | |
cache-dependency-path: 'n8n/pnpm-lock.yaml' | |
- name: Install dependencies | |
run: | | |
sudo apt update -y | |
echo 'tzdata tzdata/Areas select Europe' | sudo debconf-set-selections | |
echo 'tzdata tzdata/Zones/Europe select Paris' | sudo debconf-set-selections | |
DEBIAN_FRONTEND="noninteractive" sudo apt-get install -y graphicsmagick | |
shell: bash | |
- name: pnpm install and build | |
working-directory: n8n | |
run: | | |
pnpm install --frozen-lockfile | |
pnpm build:backend | |
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 test-workflows/testData/pdfs/*.pdf /tmp/ | |
shell: bash | |
- name: Run tests | |
run: n8n/packages/cli/bin/n8n executeBatch --shallow --skipList=test-workflows/skipList.txt --githubWorkflow --shortOutput --concurrency=16 --compare=test-workflows/snapshots | |
shell: bash | |
id: tests | |
env: | |
N8N_ENCRYPTION_KEY: ${{secrets.ENCRYPTION_KEY}} | |
SKIP_STATISTICS_EVENTS: true | |
# - | |
# 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 '[email protected]' | |
# git commit -am "Automated credential update" | |
# git push --force --quiet "https://janober:${{ secrets.TOKEN }}@github.com/n8n-io/test-workflows.git" main:main | |
- name: Notify Slack on failure | |
uses: act10ns/[email protected] | |
if: failure() | |
with: | |
status: ${{ job.status }} | |
channel: '#alerts-build' | |
webhook-url: ${{ secrets.SLACK_WEBHOOK_URL }} | |
message: | | |
🛑 Workflow test failed 🛑: | |
${{ steps.tests.outputs.slackMessage}} | |
Sent by *Github Action*: <${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}| Test workflow> |