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

Implement automated versioning, releases and version mismatch checks. #241

Closed
2 of 4 tasks
Reckless-Satoshi opened this issue Sep 13, 2022 · 0 comments · Fixed by #250
Closed
2 of 4 tasks

Implement automated versioning, releases and version mismatch checks. #241

Reckless-Satoshi opened this issue Sep 13, 2022 · 0 comments · Fixed by #250
Labels
enhancement 🆙 New feature or request

Comments

@Reckless-Satoshi
Copy link
Collaborator

Reckless-Satoshi commented Sep 13, 2022

Is your feature request related to a problem? Please describe.
There is one tagged released of RoboSats (v0.1.0-MVP). After this release, given how fluid back and frontend have been, there has been a continuous delivery of every new small fix. Images have been tagged with a short commit hash. This works well since the application only runs on the server and the client downloads the latest frontend on every session. However, we are starting to ship clients that do not update every time they are opened (node apps, Android, etc).

Describe the solution you'd like
We should start versioning releases and implement frontend functionalities to check whether there is a version mismatch with the backend and instruct users to update their application.

Tasks toward automated versioning and releases

  • Create Github workflow that writes down version textfile on root and /frontend dirs. GH workflow builds frontend, node client, backend and Android app, on new push to a tag with semver. Each build would be a job on the workflow, some jobs would need other jobs (e.g. Android app needs frontend). All of these jobs already exist as separte workflows on /.github/workflows/.
  • Same workflow should create a CHANGELOG.md (auto-changelog) and create a Github Release with artifacts (e.g. robosats-0.2.0-alpha.apk) and links to tagged dockerhub images. This action seems to do what we need https://github.com/softprops/action-gh-release

Tasks toward client version mismatch detection

  • Backend reads the version from textfile version on root dir (currently reads commit_sha.txt) and serves as on /api/info
  • Frontend build hardcodes version in main.js. After the first /api/info request, if a mismatch with backend version is found, the frontend should display a dialog Update your RoboSats client. Shows link to Github release tagged with the same version as the /api/info response

Additional context
After implementing the pipeline, we could create a first release following the new practice as v0.2.0-alpha

@Reckless-Satoshi Reckless-Satoshi added the enhancement 🆙 New feature or request label Sep 13, 2022
@Reckless-Satoshi Reckless-Satoshi changed the title Start versioning Implement automated versioning, releases and version mismatch checks. Sep 13, 2022
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

Successfully merging a pull request may close this issue.

1 participant