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

merge buildman scripts, automate deploy and release #130

Merged
merged 31 commits into from
May 1, 2020

Conversation

bdeshi
Copy link
Member

@bdeshi bdeshi commented Feb 16, 2020

major changes

  • merge buildman scripts and workflows into this repo.
  • successful builds can be published to distrowise repositories hosted on bintray.
    so users may add openbangla's repo to their package manager and install with normal commands like apt-get install openbangla-keyboard
  • if deployment succeeds, a version tag is pushed and a github release created automatically.
  • version.txt in project root. supplies version info to cmake and ci scripts.

minor changes

  • ci doesn't run on readme file changes.
  • build target distros updated.
  • added distro/repo-wise install instructions. (reverted and split into separate pr)

release process

  *0. after making the final commit for the next release version,
   │  update `version.txt`, (or something else).
   │  and make a commit with `deploy+` in the commit message.
   │
  *1. this will trigger the deploy workflow.
┌──┤  if deploy passes, skip to step 4.
│  │
│ *2. if deploy has errors, keep making changes until it passes,
│  │⭯ and always include `deploy+` in commit messages.
│  │
│ *3. when deploy passes, a new tag & *draft* release
│  │  for the version will be published.
└──┤ 
  *4. edit the newly created release information.
   │  toggle the draft status of the release.
   │
  *5. done.

notes

configuration

  • deployment to bintray requires:
  • packages are built for ubuntu LTS versions only. LTS packages may be installed on interim versions without problems. (see this issue: bdeshi/openbangla-keyboard#2)
  • f8298e5 the deployement target distros should be updated from time to time.
  • the version number in tools/install.sh has to be updated after final release.

bdeshi added 11 commits February 15, 2020 21:20
if deployment succeeds, the build workflow will create a github
release, along with a matching a git tag.

the placeholder release description should be updated, and the
attached installers.zip replaced with separate installer packages
contained within itself.

the workflow has to attach all artifacts as a single zip because
the relevant action cannot upload multiple files to a release yet
(not without insane workflow step duplication.)
@bdeshi bdeshi requested a review from mominul February 16, 2020 14:05
(connectivity note removed because it should be obvious)
@bdeshi bdeshi marked this pull request as ready for review February 16, 2020 16:28
@mominul
Copy link
Member

mominul commented Feb 16, 2020

I have added the secret environment keys.

README.bn.adoc Outdated Show resolved Hide resolved
tools/publish.sh Outdated Show resolved Hide resolved
@bdeshi
Copy link
Member Author

bdeshi commented Feb 22, 2020

@mominul being a bit busy. i've made you owner of the bintray organization.

@mominul
Copy link
Member

mominul commented Apr 25, 2020

Edited:
I am somewhat confused about providing the current release(1.5.0) through bintray already which the Readme recommends. My gut feeling is that we should provide the new release (2.0.0) through bintray with an appropriate announcement in the blog. I think that would be less confusing for the users. So I think we shouldn't mention it in the Readme for now.

@bdeshi @Adyel comments, please?

@bdeshi
Copy link
Member Author

bdeshi commented Apr 25, 2020

I am somewhat confused about providing the current release(1.5.0) through bintray already. My gut feeling is that we should provide the new release (2.0.0) through bintray with an appropriate announcement in the blog. I think that would be less confusing for the users.

@bdeshi @Adyel comments, please?

well, I don't think it matters that earlier version exist in the repo, because after any public announcement, users will get the latest version, 2.0.0, from the repo by default. they don't even need to notice the past releases exist there.

that said, those 1.5.x uploads were generated mainly to make sure this mechanism works (those are authentic builds from the source code though). i'm not opposed to removing them if necessary.

@mominul
Copy link
Member

mominul commented Apr 25, 2020

@bdeshi I am sorry for not to raise my issue clearly. I was talking about the ReadMe file changes. I have updated the comment, can you check it again, please?

@bdeshi
Copy link
Member Author

bdeshi commented Apr 25, 2020

@bdeshi I am sorry for not to raise my issue clearly. I was talking about the ReadMe file changes. I have updated the comment, can you check it again, please?

Oh ok. I understand. I'll revert the readmes for the time being.

@mominul
Copy link
Member

mominul commented Apr 25, 2020

@bdeshi Can you open another PR with ReadMe changes? We can merge it when we release the next version!

bdeshi added 4 commits April 26, 2020 10:33
+ updated build candidates
+ ubuntu package upload optimized
+ publish.sh sanitized a bit
the deploy workflow's distro list needs to be updated periodiclly.

particularly, the ubuntu versions list must be kept up-to-date
with their current latest short term and long term versions.
otherwise it will break deploy workflow, because canonical moves
repos into archives fairly often. if our deploy workflow tries to
build for a ubuntu version that has been archived, it will fail.

for example, as of this commit, ubuntu19.04 repo has already been
archived, so I had to use 19.10 in the build list instead.
@bdeshi bdeshi mentioned this pull request Apr 26, 2020
2 tasks
tools/publish.sh Outdated Show resolved Hide resolved
(thanks @mominul)

Co-Authored-By: Muhammad Mominul Huque <mominul2082@gmail.com>
@bdeshi
Copy link
Member Author

bdeshi commented Apr 26, 2020

the version number in tools/install.sh has to be updated after finalizing a release. otherwise people can't install using this script because its target release won't exist yet.

or it could be removed altogether. that's one of the reason why all this repo set up was done basically. 😅

@ahmubashshir
Copy link
Contributor

@mominul Arch Linux repo in bintray doesn't have <repo>.db file. So it can't be included in /etc/pacman.conf .Please use repo-add, repoctl or repose to generate <repo>.db file.

@bdeshi
Copy link
Member Author

bdeshi commented Apr 27, 2020

@mominul Arch Linux repo in bintray doesn't have .db file. So it can't be included in /etc/pacman.conf .Please use repo-add, repoctl or repose to generate .db file.

@ahmubashshir: the database files do exist in the repo.

https://dl.bintray.com/openbangla/archlinux/x86_64/

@ahmubashshir
Copy link
Contributor

ahmubashshir commented Apr 30, 2020

@bdeshi please set PACKAGER in makepkg.conf, otherwise it would be shown as unknown packager.

tools/build.sh Outdated Show resolved Hide resolved
@bdeshi
Copy link
Member Author

bdeshi commented May 1, 2020

@bdeshi please set PACKAGER in makepkg.conf, otherwise it would be shown as unknown packager.

Thanks @ahmubashshir. fixed.

Copy link
Member

@mominul mominul left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great work! 🎉

@mominul mominul merged commit e2566f2 into OpenBangla:master May 1, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants