Skip to content

Publishing

Fareez Iqmal edited this page Mar 23, 2024 · 8 revisions

Content are relevant for maintainers

Since IIUM Schedule app is supported for multiple platforms (currently Android, Web & Windows), ensuring the release delivery to those platforms is crucial.

Before release, bump the version of the app in pubspec.yaml file. The versioning is based on SemVer (kinda, read more here). Also, update the Windows version in msix block and in the inno setup file.

A new release is created through the GitHub releases (applicable for both pre-release and stable release). Once the release is published, an action (build_all.yml) will automatically triggered to build the necessary artifacts.

Below is visualized flow of the release process:

flowchart TB
  A((Start))
  B[Build Android]
  D[Build Mac OS]
  E[Build Windows]
  A-->B---C[/"apk(s)"/]
  B---F[/"aab*"/]-->K[Upload to Google Play*]
  A-->D-->G[/dmg/]
  A-->E---H[/exe/]
  E---I[/msix/]
  C-->J
  H-->J
  I-->J
  G-->J[Add to release assets]
  K-->L
  J-->L((A))
Loading

Note:

  • * : Skip if pre-release (no need to publish to Google Play Store).

Stop here if the release is a pre-release. Otherwise, continue with the following steps.


Then, maintainers need to submit publishing to some platforms.

flowchart LR
    A((A))
    A-->B[Open <b>Google Play Store</b> to complete the releases]
    A-->C[Get .exe download link from <b>assets</b>]
    B-->F
    C-->E[Submit to <b>winget-pkgs*</b>]
    E-->F
    A-->D[Update Homebrew Cask]
    D-->F((Finish))
Loading

Submit to Winget

Submit to winget-pkgs using wingetcreate. Example command:

wingetcreate update MuhammadFareezIqmal.IIUMSchedule --version <versionnumber> --interactive

Note

Replace <versionnumber> with the Windows release version number convention. Read more here.

Paste the .exe release link when asked. Paste the same link for both installers.

wingetcreate link url

For some reason, submitting with architecture x86 will cause CI failing. To avoid this, change the architecture for both installers to x64. Here's demo.

Note that that once submitted, it will go through the approval process. So, the changes are not immediate (can be hours or days).

Update Homebrew formula

Simply run the Update IIUMSchedule Cask. It will fetches the latest release tag and update the Homebrew formula.

Finally, update the website with the latest information.

  • Release notes
    • Add new release notes
  • Downloads
    • No need to do anything, the links will be automatically fetched from the latest releases from GitHub.

Alhamdulillah, now you have completed the app releases.

Clone this wiki locally