* ci: Start supporting Node.js 18
Node.js 18 became the active LTS on 2022-10-25, and Node.js 16 went into maintenance mode.
https://github.com/nodejs/Release#release-schedule
We should also slowly deprecate node 16 support, [as support for it is ends much earlier now, due to support for openssl 1.1.1 ending](https://nodejs.org/en/blog/announcements/nodejs16-eol).
* Remove hashing algorithms that are not available in newer node.js/openssl
- RSA-MD4
- RSA-MDC2
- md4
- md4WithRSAEncryption
- mdc2
- mdc2WithRSA
* in e2e tests, resolve `localhost` to ipv4 instead of ipv6
* ci: Do not force branch for PR e2e smoke tests
* Use commit SHA for smoke test
* Debug: Echo git before running e2e
* Debugging: Create local merge commit
* Use container with git installed
* Debugging: Manual git checkout PR
* Do not skip checkout
* Use container with git installed
* Add breaking test, install git manualyl
* Use sudo
* Use container with git preinstalled
* Remove debugging e2e
* ci(editor): Do not run parallel jobs for a single spec
* Fix syntax
* Only post e2e success comment on actual e2e success
* Set e2e-reusable output and check all container state
* ci: Fix e2e tests (no-changelog)
* Fix sign-in cypress command
* Run smoke test against head branch instead of base
---------
Co-authored-by: Oleg Ivaniv <oleg@n8n.io>
* ci: Remove second code owners for migrations
* add a new line at the end of the file
---------
Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <netroy@users.noreply.github.com>
* WIP: Cypress parallel CI run test
* Trigger action on branch push
* Change build artifacts path
* Make sure to checkout the repo for testing job
* Use Cypress action for installing
* Lock cypress action userd version
* Skip node install step since we're using cypress node16 container
* Let Cypress handle pnpm install
* Use setup-node action for caching pnpm
* Set CYPRESS_CACHE_FOLDER
* Set CYPRESS_CACHE_FOLDER
* Manually cache pnpm store
* Dont fix pnpm version
* Use caching action also in testing job
* Zip packages dist before uploading the artifacts and change caching key
* Use absolute build paths for zipping job
* Use zip command in action
* Use tar for zipping packages
* Debuggin directory ls
* Debugging caching of modules
* Attempt to fix permissions issue
* Porivde Cypress executable via `CYPRESS_RUN_BINARY`
* Cache /github/home
* Adjust caching keys
* Debug: search for cypress exec
* Debugging: List dirs
* Use pnpm install action to install node_modules
* Do not log /home/runner
* Use node_modules/.bin Cypress binary
* Use absolute path to nodue modules
* Run Cypress via custom command
* Try with patched cypress action
* Revert logging
* Manually specify cypress config file
* Use absolute paths
* Fix cypress config name
* Debug print cypress config
* Remove debugging, increase to 4 containers
* Increase amount of containers
* Add env-version matrix
* Replace node14 with node18 in testing matrix
* Remove debugging and add node 14
* Use just node14
* Use cypress:base and remove browser req
* Give more general timeouts
* Try with node16
* Change cache directive position
* Replace zip artifact upload with cache
* Cache full packages not just dist
* Test with variable inputs
* Add commit info message
* Remove wrongly commited code
* Allow WF API dispatch
* Try Chrome browser again for comparison
* Include Monaco in the build
* Make e2e workflow re-usable
* Comment out invalid reusable workflow args
* Use electron and add node 14 run
* Fix env arg
* Provide custom ci-build-id
* Refactor remaining e2e workflow to use reusable action
* Remove single matrix directive
* Refactor ci-pull-req
* Make lint job dependant on test jobs
* Disable debugging job
* Make containers dynamic
* Cleanup & install git for linting action
* Use regular buntu image for PR linting
* Debugging failing tests
* Remove fixed spec name
* Debug e2e env var
* Do not use realkeypress which crashes electron runner
* Debugging
* chore: remove console
* chore: remove console
* test: remove node 14 tests
* test: replace test branch with master
* test: use tests in current branch
* test: use relative path
* chore: clean up
* test: only trigger on approval
* ci: update test PR
* ci: use curr branch
* ci: only run 14 on schedule, not for slack command
* ci: only run test on approval
* ci: clean up branch, rename step
* ci: rename steps
* ci: clean up cancel
* ci: clean up env var
* ci: set var
* ci: use chromef
* ci: use electron
* chore: add console log
* chore: add console log
* ci: update to string
* ci: set all env options
* test: build
* ci: fix step issue
* Fix failing tests & upgrade to Cypress 12
* Allow WF dispatch of e2e reusable
* Fix wrong naming in e2e-tests workflow
* Redeploy
* Fix tests
* Fix NDV tests and remove skipping of webhooks execution tests
* Fix clipboard read command
* Fix execution failing tests
* Reset before each 15 and 3
* Fix flaky tests
* Cleanup and log envs
* Test fixes
* Default owner spec fixes
* Get rid of CYPRESS_RUN_ENV
* Increase amount of containers, cleanup and add mock for credentials test call
* Cleanup & fix PR tests unit tests
* Wait for WF to loade in sharing spec
* Do linting and unit tests first
* Use frozen lockfile
* Revert back ci pull request jobs order
* Refine credential input selector and move cy.waitForLoad to correct position in 15-scheduler spec
* test: build
* Wait for WF execution instead of arbitraty timeout in WF execution spec, change order of jobs for ci pull request
* Fix flaky 3-default owner spec and wait for execution list to load in 20-workflow-executions
* Use setup node action
* Remove caching for lint/unit tests
* Experiment with parallel test & lint on ci
* Provide cache key dynamically
* Run e2e in parallel on pr
* Only run node14 e2e on daily schedule
* Make sure to generate generate new ci-build-id on re-runs
* Remove debugging prints
* Address PR comments
* Rename custom onBeforeUnload handler
* Make sure 19-execution spec waits for wf to load properly before import fixtures
---------
Co-authored-by: Mutasem <mutdmour@gmail.com>
* Remove check by safe list to skip list
* add an option to skip using statistics events
---------
Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <aditya@netroy.in>
* add or update documentation URLs for all credentials
* add UTM params to documentation urls even when they are absolute urls
* Setup a CI job to validate documentation urls after every release
* Fix FacebookGraphApi documentation URL
* also validate node documentation urls
Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
* test(editor): Fix flaky add tags e2e specs, and upload cypress artifacts on failure
* Only run smoke test to debug the pipeline
* Add waitForLoad command and revert debugging changes
* ci: add run name and start url
* update ref
* use branch as input
* add message for slack notifications
* add branch quotes
* remove @ from user
* make user not required
* use user-folder override consistently everywhere, including for the `.cache` folder
* use consistent config for e2e tesing, skipping config loading from env and config files
* simplify all the cypress commands, and run all e2e tests on master
* ci: start supporting node.js 18
Node.js 18 becomes the active LTS on 2022-10-25, as Node.js 16 goes into maintenance mode.
https://github.com/nodejs/Release#release-schedule
* continue using node 16 for production images
* node 16 for debian and base images as well for now
* reduce redundant code between the two alpine Dockerfiles
* reduce the docker image build times
* reduce the `n8n` image size from 1.17GB to 462MB
* reduce the `n8n-custom` image size from 671MB to 460MB
* reduce the size of npm tree by making all typing packages devDependencies
Partially resolves this ticket: N8N-3252
* Attempt to fix test workflows execution
* Remove apt update
* trying to fix timezone
* Trying to fix build issues
* Reduced concurrency level
* Improve error message and further decrease concurrency level
* Further reduce concurrency level
* Removed concurrency
* Removing update credentials as it's not working currently
* Also removing export
* Fixed versions for typeorm and sqlite
* Re add concurrency
* Adjustig sqlite3 and typeorm versions
* Fixing only sqlite version
* Fixing only typeorm version
* Reverting unnecessary changes
* Added flag to simplify output to execute command and created executeAll
Also created a command that lists workflows so it can be used by
other applications that wish to interact with n8n via CLI.
* Added compare funcionality that helps us identify possible breaking changes
* ⚡ Add JSON flag to output execution result in json format
* Add execution time to execution result
* Add --output flag to save JSON formated results
* Fix typos
* Adding usage examples and warning message
* Changing command to always output JSON information
* ⚡ Add concurrency to executeAll command
* ✨ Add IDs filter to executeAll command
* ✏️ Fix typos
* Fix lint issues
* Improvements to execute all
* Added colors and beautified execute all command output
* Improving premature termination of execute all command
* Refactored output
* Added detection for warnings instead of errors for a few cases
* Fixed linting
* Improved process finishing
* Added encryption key init, removed messages from non-debug run and created sample github actions file
* Updated test command to use correct encryption key
* Correcting paths
* Changed command name and changed concurrency to be slot based
* Added the retry functionality
* Improved typing and fixed executions filtering
* Updated test description
* Added concurrency
* Added skip list and concurrency
* Fixed termination behavior, removed unnecessary code and added main mode to executions
* Added special edge cases handling
* Added safe debug flag for non tty terminals
* Removed comparison and retries for testing
* Changed the way we run commands to add more debug info
* Test adding concurrency
* Testing with regular testing procedure without comparison
* Adding compare flag
* Fixing short output command
* Upgraded concurrency to 16, fixed short output and covered nodes count
* Fixed short output condition
* Correcting short output information
* Correcting the output for short output
* Added a string to possible warnings list
* Added example usages with more arguments
* Improvements to code made by Ivan
* Removed colorize output setting (always use colors), moved execution timeout to become static and removed node list from executions
* Moving types to a separate file on execute batch command
* Changed interfaces file extension to prevent oclif warnings
* Updated workflow pdf files
* ⚡ Change rule when tests run + minor formatting fixes
Co-authored-by: dali <servfrdali@yahoo.fr>
Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
* 🎉 basic setup and execution stopping
* 🚧 soft timeout for own process executions
* 🚧 add hard timeout for subprocesses
* 🚧 add soft timeout to main thread
* 🔧 set default timeout to 5 mins --> 500s
* 💡 adding documentation to configs
* 🚧 deactivate timeout by default
* 🚧 add logic of max execution timeout
* ⚡ adding timeout to settings in frontend and server
* 🎨 improve naming
* 💡 fix change in config docs
* ✔️ fixing compilation issue
* 🎨 add format for new config variables
* 👌 type cast before checking equality
* ⚡ Improve error message if NodeType is not known
* 🐳 Tag also rpi latest image
* 🐛 Fix Postgres issue with Node.js 14 #776
* 🚧 add toggle to activate workflow timeout
* 💄 improving UX of setting a timeout and its duration
Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>