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

Setup CI/CD pipeline #42

Closed
albertus-stripe opened this issue May 18, 2021 · 6 comments · Fixed by #48
Closed

Setup CI/CD pipeline #42

albertus-stripe opened this issue May 18, 2021 · 6 comments · Fixed by #48
Labels
enhancement New feature or request

Comments

@albertus-stripe
Copy link
Contributor

Problem

We currently don't have a CI/CD pipeline set-up yet for regression testing and automatically building/deploying the package to pub.

I think as the project grows this is going to be important to make sure we are not breaking things and not having any "bus factor" on the project (any maintainer with write access on the repository should be able to easily deploy the package to pub.dev by creating a tag on the Git without too much troubles?)

Just a proposal to make sure that this repository and project scalable in the longer term.

Solution

  1. CI pipeline
    We need to have a CI pipeline for:
  • Running automated regression tests so that things don't break after someone makes a pull request
    (Though, this is dependant on Add unittests  #19 right now since we don't have good test coverage currently), both for unit tests and integration tests just like flutter/flutter repository.
  1. CD pipeline
    I think another pipeline that triggers on tag creation to automatically build the binary and package and publish it to pub would also be essential to this repository.

What do you think?
Happy to take this task while also helping with testing and adding automated tests on the project \o/

@albertus-stripe albertus-stripe added the enhancement New feature or request label May 18, 2021
@remonh87
Copy link
Member

Good one I think @jonasbark wanted to setup github actions right? I have also experience with codemagic if this is what we want.

@albertus-stripe
Copy link
Contributor Author

+1 for GitHub Actions since it's more native to GitHub.
I can take this on for GitHub actions if you want!

@jamesblasco
Copy link
Member

Same here! Let's do Github Actions

@albertus-stripe Let us know how you plan to start it and how we can help. We can separate into smaller tasks and divide them between the three of us

For CD I think we could use melos. It is a very useful tool https://docs.page/invertase/melos/automated-releases

@jonasbark
Copy link
Member

It's indeed on my todo after the next release with the payment sheet - I sure would love some help there :)

The focus could we the CD part, with the CI one (formatting, automated tests) being second

@albertus-stripe
Copy link
Contributor Author

Reopening the issue since it got closed automatically by the PR on the CI work (my mistake for linking it on the PR, sorry!)
I'd love to help with the CD pipeline as well!
Since the melos work now has been finished. Will continue the discussion offline in our Slack!

@albertus-stripe
Copy link
Contributor Author

Hey maintainers! @jonasbark @remonh87 @jamesblasco
I have another (hopefully final) nitpick suggestion regarding the CD pipeline and how we do releases for this package.
As I'm not really aware with how you guys do the current release process, I highly recommend sticking to Git tag versioning for all releases going forward.
Then we should create a GitHub action pipeline that gets triggered on tag created/push events and build all the binary & publish the binary to pub.dev.

As it is right now, as a user of this library, I'm a little bit confused on how to find the release version of the package and the specific commit reference attached to a version.

It might also help to use a single version for all the packages (flutter_stripe, stripe, stripe_android, stripe_ios) for the sake of simplicity.

🎉🎉🎉

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
4 participants