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

Reorganize CI #343

Closed
mamercad opened this issue Dec 21, 2022 · 4 comments · Fixed by #344
Closed

Reorganize CI #343

mamercad opened this issue Dec 21, 2022 · 4 comments · Fixed by #344
Labels
CI/CD enhancement New feature or request

Comments

@mamercad
Copy link
Contributor

    For GHA, the word before the first `/` is the name of the workflow.

For external reporters, the service reports its name before the :. CircleCI chose to report their name with the ci/ prefix.

I think listing "CI" is redundant. GHA is CI. All the listed checks are CI. Ideally I would like to see something meaningful for the names of workflows and jobs. We're stuck with the pointless ci/ prefix on ci/circleci. But everything else can be more helpful.

Currently we have lint combined with e2e tests to avoid running the e2e tests unless the lint checks pass. If we are willing to skip that optimization, then I propose we split things into these workflows and jobs:

  • GHA
    • Lint workflow
      • helm-lint job
      • k8s-lint job
    • Unit tests workflow
      • helm-unittest job
    • E2E Tests workflow
      • k3s job
  • CircleCI
    • E2E Tests minikube

That would lead to something that looks like this:

  • Lint / helm-lint (pull_request)
  • Lint / k8s-lint (pull_request)
  • Unit Tests / helm-unittest (pull_request)
  • E2E Tests / k3s (experimental) (v1.25.4+k3s1) (pull_request)
  • ci/circleci: E2E Tests / minikube

For CircleCI, we can add the slash in our workflow name, assuming they don't disallow that character, to make it read more like the pattern GHA supplies.

If, on the other hand, you want the CI / prefix, then we have to either:

  1. prefix the workflow names with CI (making it CI / Lint and CI / E2E Tests), or
  2. combine all our GHA workflows into a single workflow named "CI".

I do not want to combine the workflows (option 2) because that makes restarting them more painful, and it makes the workflow file much longer and harder to maintain.

Originally posted by @cognifloyd in #341 (comment)

@mamercad mamercad changed the title Refactor CI Reorganize CI Dec 21, 2022
@arm4b arm4b added enhancement New feature or request CI/CD labels Dec 21, 2022
@arm4b
Copy link
Member

arm4b commented Dec 21, 2022

Nice breakdown. The proposal by @cognifloyd looks good to me as well 👍

@mamercad
Copy link
Contributor Author

@cognifloyd I'm not sure we can accomplish "ci/circleci: E2E Tests / minikube". I don't see the workflow name showing up, and, the slash isn't allowed.

@cognifloyd
Copy link
Member

Well, bummer.

Command, job, executor, and parameter names must start with a letter and can only contain lowercase letters (a-z), digits (0-9), underscores (_) and hyphens (-).

https://circleci.com/docs/reusing-config/#notes-on-reusable-configuration

So the CircleCI job name will look different from the GHA workflow/job names since we are very restricted on allowed characters.

Maybe we could use the job name: e2e-minikube

@arm4b
Copy link
Member

arm4b commented Dec 21, 2022

Thanks a lot! 💯

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CI/CD enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants