Skip to content

Document new pipeline changes #161

@Ekhorn

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
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions