Skip to content

Document new pipeline changes #161

Description

@Ekhorn

Description

It would be nice to have a page I can refer to that mentions the new CI/CD pipeline concepts introduced in openremote/openremote#2696

Acceptance criteria

  • How to make changes to the pipeline and test them
  • "environment" and "job" workflows are documented
  • What to include in artifacts and when to use artifacts
  • When to configure through Gradle rather than workflows
  • Good/bad practices
    • Add timeout-minutes: 20 to any step that could fail and hang
    • Avoid passing toJSON(secrets) whenever possible (never pass secrets this way to another workflow), either explicitly pass secrets using secrets: { MY_SECRET: ${{secret.MY_SECRET}} } (preferred) or use secrets: inherit.
  • How we optimize jobs and job dependencies
    • When to checkout with git lfs
    • The detect changes job
    • Only installing the bare minimum dependencies in jobs e.g. with yarn focus @openremote/util @openremote/test
    • Tricks like updating file modified metadata to make build tooling use artifact outputs (after downloading them)
  • How deployments work
  • Refer to specific GitHub concepts
    • Mention how to write and update composite actions
    • How the reusable workflows work
      • Like why we need to handle skipping inside the reusable workflows
    • Maybe some special conditions e.g. when an always() is used (often used for test results etc.)
  • Caching strategies? e.g. docker images

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions