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

Move pipelines to more reproducible platform with less YAML #365

Closed
TimothyStiles opened this issue Sep 23, 2023 · 14 comments
Closed

Move pipelines to more reproducible platform with less YAML #365

TimothyStiles opened this issue Sep 23, 2023 · 14 comments
Assignees
Labels
devops Improvements to DevOps (e.g. GitHub actions, linting, etc.) intermediate Will take some time to fix medium priority The default priority for a new issue.

Comments

@TimothyStiles
Copy link
Collaborator

TimothyStiles commented Sep 23, 2023

I really don't like the development workflow of CI/CD pipelines. They're hard to reproduce and usually a grab bag of random scripts custom written for each repo.

What I'd like is a programmatic platform where we can locally develop CI/CD pipelines without having to troubleshoot them directly against GitHub Actions. Something like Dagger comes to mind but I'm sure there are other tools we could use.

@carreter carreter added devops Improvements to DevOps (e.g. GitHub actions, linting, etc.) low priority Would be nice to fix, but doesn't have to happen right now/there are more important things intermediate Will take some time to fix labels Sep 23, 2023
@carreter
Copy link
Collaborator

I'd be down to do this, would love to put CI/CD pipelines on my resume. Where would we host this?

@Koeng101
Copy link
Contributor

What would they be used for? Why not just go test ./...?

@carreter
Copy link
Collaborator

CI/CD pipelines run before code is allowed to be merged, ensuring that we don't accidentally forget to test everything before it's committed to main. It also performs actions like uploading updated docs to the Go website, posting to social media, updating the test coverage badges in the README.md, along with anything else we want to configure it to do.

I'm very much on board with this, as it allows devs to more easily run all the testing/formatting/linting locally. It also allows us to avoid paying for CI/CD minutes on GitHub, and future-proofs poly in case we need to move it to another host.

@Koeng101
Copy link
Contributor

CI/CD pipelines run before code is allowed to be merged, ensuring that we don't accidentally forget to test everything before it's committed to main

Well I know that, but I'm wondering what the git actions don't do right now that we want it to do.

uploading updated docs to the Go website

I think it updates itself

@carreter
Copy link
Collaborator

CI/CD pipelines run before code is allowed to be merged, ensuring that we don't accidentally forget to test everything before it's committed to main

Well I know that, but I'm wondering what the git actions don't do right now that we want it to do.

Nothing, except for perhaps the benchmarks you were suggesting in #366.

uploading updated docs to the Go website

I think it updates itself

Wait, what did you mean by this over on #346 then @TimothyStiles ?

get go docs to automatically pull in new tag on release. (very much wanted)

@carreter
Copy link
Collaborator

.take

testing the auto assign bot

@carreter
Copy link
Collaborator

.take

another test

@github-actions
Copy link

Thanks for taking this issue! Let us know if you have any questions!

Copy link

This issue has had no activity in the past 2 months. Marking as stale.

@github-actions github-actions bot added the stale label Nov 26, 2023
@TimothyStiles TimothyStiles added medium priority The default priority for a new issue. and removed low priority Would be nice to fix, but doesn't have to happen right now/there are more important things labels Nov 29, 2023
@github-actions github-actions bot removed the stale label Nov 30, 2023
@carreter
Copy link
Collaborator

@ethanholz I know you had said something on the Discord about helping out with CI/CD stuff. Need to get this done before #423 , do you have any suggestions?

@ethanholz
Copy link

ethanholz commented Dec 12, 2023

So I think there are a couple ways to come around to this. A tool I like using is https://github.com/nektos/act. It uses docker under the hood to test your GH actions locally and makes it easy for non-Git specific actions.

For simplifying the test->CI->release pipeline, using a tool like just (or make) can really help to mirror commands run in CI onto local machines. Furthermore, using a tool like make allows you to update what is run under the hood without changing how devs/users might run it locally.

I think that sticking with GitHub actions would work really well here but writing a spec for the local pipeline would help to make them easier to work with.

@carreter
Copy link
Collaborator

@TimothyStiles what are your thoughts on making our test -> CI -> release pipeline be based on make or just? I don't have a particular preference between the two - make will be much more portable, but just syntax seems a lot nicer.

I'll also include a writeup on how to use act in the repo readme.

@carreter
Copy link
Collaborator

After some discussion with @ethanholz on the Discord, I'm leaning toward just - even though it's not as standard as make, it seems a lot easier to work with and make does not come pre-installed on most systems as I had thought it was.

@carreter
Copy link
Collaborator

Fixed by #429.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
devops Improvements to DevOps (e.g. GitHub actions, linting, etc.) intermediate Will take some time to fix medium priority The default priority for a new issue.
Projects
None yet
Development

No branches or pull requests

4 participants