The migration from CircleCI to Github Actions will be have to done in parts. This PR addresses the following parts -
Reusable Workflows:
lint.yml:
Triggered by another workflow call : all-checks.yml & build-backend.yml
Inputs: os & python-version
Checks out code, installs dependencies and runs linter.
e2e-tests.yml:
Triggered by another workflow call : all-checks.yml & build-backend.yml
Inputs: os, python-version, branch
Checks out code, installs dependencies and runs end to end tests.
unit-tests.yml:
Triggered by another workflow call : all-checks.yml & build-backend.yml
Inputs: os, python-version, branch
Checks out code, installs dependencies and runs unit-tests.
javascript-lint-and-tests.yml:
Triggered by:
Call by another workflow : all-checks.yml
PRs on any branch, excluding those with changes to files in the package/** paths.
Pushes on any branch, excluding those with changes to files in the package/** paths.
Checks out code, installs dependencies and javascript linter & tests.
all-checks.yml:
Triggered by calls from another workflow : check-release.yml (will be added in separate PR)
Run every day at 1:00 AM(UTC time)
Calls - unit-test.yml, lint.yml, e2e-tests.yml and javascript-lint-and-tests.yml as separate jobs.
Reusable Actions:
install_node_dependencies/action.yml:
Triggered by calls from workflow : e2e-tests.yml, unit-tests.yml, javascript-lint-and-tests.yml and release.yml (will be added in separate PR)
Sets up a specific Node.js version, caches Node modules, and installs Node dependencies.
install_python_dependencies/action.yml:
Triggered by calls from workflow : e2e-tests.yml, unit-tests.yml, javascript-lint-and-tests.yml and lint.yml
Installs Kedro from the main branch and other Python dependencies, then prints the Python version and installed packages.
setup_tests/action.yml:
Triggered by calls from workflow : e2e-tests.yml and unit-tests.yml.
Sets up the testing environment by setting up Python and Node.js, caching Python packages, installing Kedro and other Python dependencies, and building the React application.
Workflows:
build-backend.yml:
Triggered by:
PRs on any branch with files having package/** & .github/** paths
Push on any branch with files having package/** & .github/** paths
Calls - unit-test.yml, lint.yml and e2e-tests.yml as separate jobs.
Description
Resolves #1785
Development notes
The migration from CircleCI to Github Actions will be have to done in parts. This PR addresses the following parts -
Reusable Workflows:
lint.yml
:all-checks.yml
&build-backend.yml
e2e-tests.yml
:all-checks.yml
&build-backend.yml
unit-tests.yml
:all-checks.yml
&build-backend.yml
javascript-lint-and-tests.yml
:all-checks.yml
package/**
paths.package/**
paths.all-checks.yml
:check-release.yml
(will be added in separate PR)unit-test.yml
,lint.yml
,e2e-tests.yml
andjavascript-lint-and-tests.yml
as separate jobs.Reusable Actions:
install_node_dependencies/action.yml
:e2e-tests.yml
,unit-tests.yml
,javascript-lint-and-tests.yml
andrelease.yml
(will be added in separate PR)install_python_dependencies/action.yml
:e2e-tests.yml
,unit-tests.yml
,javascript-lint-and-tests.yml
andlint.yml
setup_tests/action.yml
:e2e-tests.yml
andunit-tests.yml
.Workflows:
build-backend.yml
:package/**
&.github/**
pathspackage/**
&.github/**
pathsunit-test.yml
,lint.yml
ande2e-tests.yml
as separate jobs.Miro board link
The following will be added in separate PRs
Notes
cypress/fixtures/graphql/
totrufflehog-ignore.txt
because secret-scan was complaining some files under it.unit-tests.yml
&e2e-tests.yml
run on main and demo branches for Windows and all branch for ubuntu, This is what we had on CircleCI.Checklist
RELEASE.md
file