Skip to content

Workflows

Eduard Ursu edited this page Mar 15, 2022 · 5 revisions

This repository is managed using GitHub Actions workflows.

Workflows can be accessed in the Actions tab on top of the page.

In "kiwi" branch you can find the source-code, assets and tools that are used to build Kiwi Browser.

In "chromium" branch you can find a replica of the Chromium repository.

  • Workflows starting with "Any branch:" can be used on any branch of your choice.
  • Workflows starting with "Kiwi:" are meant to be used on the branch "kiwi".
  • Workflows starting with "Chromium:" are meant to be used on the branch "chromium".

To keep the size of the repository small, we replicate only the files that are changed in Kiwi Browser.

  • Use workflow "Chromium: Import" to add a new file to be replicated.
  • Use workflow "Chromium: Update files from upstream" to update the replica. Except with the "Any branch" workflows, you don't need to pick the correct branch, the workflow does it for you.

Building

Use workflow "Any branch: Build apk" to build Kiwi.

The generated APK will appear on the releases page of your project.

It will be a draft release, so only you can see it, but you can change that by editing the release.

An APK is automatically generated as well if you open a pull request to kiwibrowser/src.next:kiwi.

The APK that you will receive is named Wiki Browser (not Kiwi Browser).

This is intentional. Dev builds are called Wiki Browser, and become Kiwi Browser once they pass review.


Importing new files from Chromium

Instead of importing 50 GB of files, we import only the files that we need from Chromium or that we intend to modify.

This is done using the "Chromium: Import file" workflow.

[real chromium repository] -------> [kiwibrowser/src.next:chromium]
                 workflow "Chromium: Import file"

In the chromium branch, you have untouched, and unmodified files of Chromium.

Once you are done importing files from Chromium you need to adapt the code of Kiwi on top of the code in the Chromium Kiwi: Rebase on top of Chromium branch

                                    [kiwibrowser/src.next:kiwi]
                                               /|\
                                                |
                                                | workflow "Kiwi: Rebase on top of Chromium branch"
                                                |
[real chromium repository] -------> [kiwibrowser/src.next:chromium]
                 workflow "Chromium: Import file"

If you import an image (a resource in a drawable or a mipmap folder), for example chrome/android/java/res/drawable-hdpi/btn_left.png then the workflow will automatically import chrome/android/java/res/drawable-*/btn_left.png so you don't need to run the workflow for each resolution folder.


Changing Chromium version (advanced)

To change to another Chromium version, use workflow "Chromium: Update files from upstream". The workflow is going to ask you to which version number you want to upgrade or downgrade.

Changing the Chromium version is going to work, but the build system doesn't support it yet, so you will not be able to get an APK if you change the version (for now).

Clone this wiki locally