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

Proposal: Use GitHub Actions for CI/CD #1234

Closed
alolita opened this issue Jun 29, 2020 · 8 comments
Closed

Proposal: Use GitHub Actions for CI/CD #1234

alolita opened this issue Jun 29, 2020 · 8 comments
Assignees
Labels
enhancement New feature or request
Milestone

Comments

@alolita
Copy link
Member

alolita commented Jun 29, 2020

This issue is in reference to issue 398 posted on the community repository. In this issue, we are proposing that all OpenTelemetry repositories consider using GitHub Actions as their CI provider in order to maintain consistency across the various language repositories.

The overall proposal was discussed in the OpenTelemetry maintainers SIG meeting. @trask has been assigned as the mentor for the project.

Repository CI Provider Automated Build and Test Code Coverage Automated Performance Testing Automated Deployment Automated Docs Deployment
Collector CircleCI [x] [x] [x] [x] [-]

The justification and benefits are enumerated in the issue on the community repository and are pasted here as well for convenience:

Proposal

We propose that all languages consider using the same CI provider. This would create a more consistent development process and make it easier for developers to contribute to multiple language libraries.

We suggest that provider be GitHub Actions. Here’s why:

Ease-of-Use

CircleCI and Travis will automatically run when pull requests and commits are issued against the repository. But if a contributor forks the repository, unless they set up an account with the CI provider and link it to their forked repository, CI will not be activated and tests will not be run automatically.

In contrast, GitHub Actions works out of the box on a forked repository and can be easily configured to run a test workflow each time a commit is issued. This would help individual contributors test their code and ensure code quality before submitting a pull request against the repository.

Transparency

Current CI providers such as CircleCI and Travis allow anyone to view the console output when building and running tests but the test results can not be seen anywhere on the GitHub repository. To view this testing output: You need go to a different website, navigate a different user interface, and then sift through thousands of lines of console output. This is not a seamless developer experience.
In contrast, using GitHub Actions would provide all testing output directly on the repository’s GitHub page, which would help contributors to find, read, and use the test output to maintain code quality.

Control

GitHub Actions’ integration with other GitHub features means you can have finer control over the CI pipeline. For example, certain workflows can be set to only run on a new release. Workflows can even be used to close stale issues and pull requests.

Recommendation

We recommend that we consider using one consistent CI provider, GitHub Actions, which provides an integrated and seamless developer experience for all contributors.

Example

Please see this example that the C++ repository has adopted for the above reasons.

Next Steps

This issue shall serve as a place for discussion about this proposal. Could a maintainer please assign this issue to us if approved?

cc: @Brandon-Kimberly @alolita

@alolita
Copy link
Member Author

alolita commented Nov 24, 2020

Hi @tigrannajaryan @andrewhsu - we're working on this issue to migrate to GH Actions from CircleCI. Please assign @AzfaarQureshi @shovnik @alolita to this issue.

cc: @tedsuo

@shovnik
Copy link
Contributor

shovnik commented Dec 22, 2020

After merging the Pull Request #2299 migrating the Publishing jobs to GHA, once the repository is ready to move publishing from CircleCI to GHA, a maintainer will need to add the DOCKER_USERNAME and DOCKER_PASSWORD secrets for the opentelemetry docker account to allow pushing to docker. In addition a token with all access writes will need to be generated and added as a GITHUB_TOKEN secret to allow releases. Note, this will likely be when a PR removing existing CircleCI workflows from the repository is made.

bogdandrutu added a commit to bogdandrutu/opentelemetry-collector that referenced this issue Feb 22, 2021
bogdandrutu added a commit to bogdandrutu/opentelemetry-collector that referenced this issue Feb 22, 2021
bogdandrutu added a commit to bogdandrutu/opentelemetry-collector that referenced this issue Feb 22, 2021
@gramidt
Copy link
Member

gramidt commented Feb 23, 2021

@bogdandrutu @alolita @andrewhsu - I'll wait to finish open-telemetry/opentelemetry-collector-contrib#2397 until this effort is completed, so that I don't have to duplicate the effort for CircleCI and GH Actions.

@gramidt
Copy link
Member

gramidt commented Feb 23, 2021

I haven't dug into this issue yet to find the root cause, but maybe it would not be applicable after this migration.

open-telemetry/opentelemetry-collector-contrib#2392

@gramidt
Copy link
Member

gramidt commented Apr 5, 2021

What is the priority of this in relation to everything else? I'm trying to decide if it makes sense to finish implementing the multi-platform image build in CircleCI or continue to wait for the migration to GH Actions to be finished.

@gramidt
Copy link
Member

gramidt commented May 3, 2021

@bogdandrutu @tigrannajaryan - What's the priority of this migration? Are we holding until 1.0?

@bogdandrutu
Copy link
Member

I am happy to review PRs for this, but probably don't have time to do fixes.

@gramidt
Copy link
Member

gramidt commented May 3, 2021

Completely understand, @bogdandrutu! Thank you for the prompt response. I'll try to allocate time to document the deltas and determine next steps.

MovieStoreGuy pushed a commit to atlassian-forks/opentelemetry-collector that referenced this issue Nov 11, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

6 participants