Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Speed up CI cycle #375

Closed
kirillmakhonin opened this issue Aug 24, 2018 · 1 comment
Closed

Speed up CI cycle #375

kirillmakhonin opened this issue Aug 24, 2018 · 1 comment
Assignees
Labels
CI/CD/tests improvement [Changed] for changes in existing functionality Spike
Milestone

Comments

@kirillmakhonin
Copy link
Member

kirillmakhonin commented Aug 24, 2018

The time of CI cycle has to be decreased. Currently it takes about 2 hours to fully check PR readiness for merge.

Ideas:

  • Decouple infrastructure automation code from Legion core services code - (will be done as separate task.)
  • Deploy Legion and run tests on already created clusters for Legion services code changes
  • Create/terminate cluster and run infrastructure tests for PRs with infrastructure automation code changes
  • Parallel tests execution wherever this is possible
  • Parallel execution of CI pipeline stages/steps wherever this is possible
  • Full integration test that includes cluster creation and execution of all test suites execute only for nightly build

Next Actions:

  1. Keep current CI approach only for nightly build with one modification - turn off docker layer caching for all containers that are built during CI pipeline - DONE.
  2. Create Jenkins job that will create/terminate CI k8s cluster by schedule to keep CI cluster running only during working hours. - DONE.
  3. Create new CI pipeline that will - DONE.
    • build PR with code changes only in Legion services.
    • deploy/redeploy Legion services on preconfigured CI k8s cluster.
    • execute all test suites
  4. Create new CI pipeline that will - DONE.
    • build PR with code changes only in Legion infrastructure scripts
    • create Legion k8s cluster
    • deploy last stable version of Legion services
    • execute limited test suite that is related to Legion infrastructure components
    • terminate cluster
@alexander-semenets
Copy link
Collaborator

alexander-semenets commented Aug 31, 2018

more ideas to the list:

  • parallel deploy tests during build stage
  • install dependencies for legion at edge before the legion package
  • parallel robot tests

@dsuslov dsuslov added the Spike label Sep 18, 2018
@dsuslov dsuslov self-assigned this Sep 18, 2018
alexander-semenets added a commit that referenced this issue Sep 20, 2018
alexander-semenets added a commit that referenced this issue Sep 20, 2018
alexander-semenets added a commit that referenced this issue Sep 20, 2018
alexander-semenets added a commit that referenced this issue Sep 27, 2018
alexander-semenets added a commit that referenced this issue Sep 27, 2018
alexander-semenets added a commit that referenced this issue Sep 27, 2018
dsuslov pushed a commit that referenced this issue Sep 27, 2018
ablatov pushed a commit that referenced this issue Oct 2, 2018
@dsuslov dsuslov added this to the 0.10.0 milestone Dec 11, 2018
@dsuslov dsuslov closed this as completed Dec 13, 2018
@kirillmakhonin kirillmakhonin added the improvement [Changed] for changes in existing functionality label Dec 20, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CI/CD/tests improvement [Changed] for changes in existing functionality Spike
Projects
None yet
Development

No branches or pull requests

3 participants