Commit Graph

31 Commits

Author SHA1 Message Date
Nik Clayton 4283161f2a
ci: Allow gradle to set the number of workers (#416) 2024-02-04 21:13:04 +01:00
Nik Clayton 37a016576b
ci: Make secrets available in CI workflow (#415)
Previous code used `pull_request:` which meant
`secrets.GRADLE_ENCRYPTION_KEY` was not available, so the configuration
cache was not restored.

Use `pull_request_target` to give the workflow access to `secrets`, and
explicitly downscope the permissions of `GITHUB_TOKEN` to read only.
2024-02-04 20:45:00 +01:00
Nik Clayton b572029ba7
ci: Enable Gradle configuration cache on CI (#409)
Gradle configuration currently takes ~ 25s per invocation on CI, this
should hopefully reduce that significantly.
2024-02-02 16:07:03 +01:00
renovate[bot] c9b7877a7f
chore(deps): update gradle/wrapper-validation-action action to v2 (#402)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[gradle/wrapper-validation-action](https://togithub.com/gradle/wrapper-validation-action)
| action | major | `v1` -> `v2` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>gradle/wrapper-validation-action
(gradle/wrapper-validation-action)</summary>

###
[`v2`](https://togithub.com/gradle/wrapper-validation-action/compare/v1...v2)

[Compare
Source](https://togithub.com/gradle/wrapper-validation-action/compare/v1...v2)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/pachli/pachli-android).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNTMuMiIsInVwZGF0ZWRJblZlciI6IjM3LjE1My4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-30 22:15:05 +01:00
Nik Clayton f744cbc102
chore: Migrate from gradle-build-action to setup-gradle (#394)
gradle-build-action is deprecated, setup-gradle replaces it. Enable the
new support for the configuration cache.
2024-01-30 00:08:39 +01:00
renovate[bot] 280350f731
chore(deps): update actions/upload-artifact action to v4 (#355)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[actions/upload-artifact](https://togithub.com/actions/upload-artifact)
| action | major | `v3` -> `v4` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>actions/upload-artifact (actions/upload-artifact)</summary>

### [`v4`](https://togithub.com/actions/upload-artifact/compare/v3...v4)

[Compare
Source](https://togithub.com/actions/upload-artifact/compare/v3...v4)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/pachli/pachli-android).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMjEuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEyMS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-08 16:43:34 +01:00
renovate[bot] b14972cb73
chore(deps): update actions/setup-java action to v4 (#301)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [actions/setup-java](https://togithub.com/actions/setup-java) | action
| major | `v3` -> `v4` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>actions/setup-java (actions/setup-java)</summary>

### [`v4`](https://togithub.com/actions/setup-java/compare/v3...v4)

[Compare
Source](https://togithub.com/actions/setup-java/compare/v3...v4)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/pachli/pachli-android).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44MS4zIiwidXBkYXRlZEluVmVyIjoiMzcuODEuMyIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-06 12:21:14 +01:00
Nik Clayton dda9dde1b9
feat: Periodically check for updates and alert user (#236)
Users can inadvertently get stuck on older versions of the app; e.g., by
installing from one F-Droid repository that stops hosting the app at
some later time.

Analytics from the Play Store also shows a long tail of users who are,
for some reason, on an older version.

On resuming `MainActivity`, and approximately once per day, check and
see if a newer version of Pachli is available, and prompt the user to
update by going to the relevant install location (Google Play, F-Droid,
or GitHub).

The dialog prompt allows them to ignore this specific version, or
disable all future update notifications. This is also exposed through
the preferences, so the user can adjust it there too.

A different update check method is used for each installation location.

- F-Droid: Use the F-Droid API to query for the newest released version
- GitHub: Use the GitHub API to query for the newest release, and check
the APK filename attached to that release
- Google Play: Use the Play in-app-updates library
(https://developer.android.com/guide/playcore/in-app-updates) to query
for the newest released version

These are kept in different build flavours (source sets), so that e.g.,
the build for the F-Droid store can only query the F-Droid API, the UI
strings are specific to F-Droid, etc. This also ensures that the update
service libraries are specific to that build and do not
"cross-contaminate".

Note that this *does not* update the app, it takes the user to either
the relevant store page (F-Droid, Play) or GitHub release page. The user
must still start the update from that page.

CI configuration is updated to build the different flavours.
2023-11-08 08:42:39 +01:00
sanao 4b7eb2419e
refactor: Use com.google.android.material.appbar.MaterialToolbar
The previous code used `androidx.appcompat.widget.Toolbar` in a several
places.

It's better to use `MaterialToolbar` as that plays better with other
Material components.

Update the usage throughout the project.

In addition, implement a lint check that will prevent any future use
from creeping back in.

Fixes #28
2023-11-05 13:51:37 +01:00
Nik Clayton 8fd536b77f
ci: Fetch all revisions to calculate correct versionCode (#147)
Previous configuration only fetched the most recent revision. Since the
`orangeRelease` `versionCode` is calculated from the number of previous
revisions this always set the `versionCode` to 1.

Fetch all revisions to avoid this.
2023-10-09 17:49:15 +02:00
Nik Clayton 1161875014
ci: Upload Pachli Current to the production track (#142) 2023-10-07 14:59:20 +02:00
Nik Clayton d434144922
ci: Upload orangeRelease to Google Play (internal track) (#134)
Start building infrastructure to automatically build and deploy the
`orangeRelease` variant to Google Play.

The variant needs an automatically incrementing `versionCode`. That is
derived from the count of all commits.

Change the separator between the version and the build metadata in the
`versionName` from `-` to `+` to be consistent with semantic versioning.

This is still an experiment, so the workflow is triggered manually and
only uploads to the internal track
2023-09-28 13:50:02 +02:00
renovate[bot] e8a75aa41b
chore(deps): update r0adkll/upload-google-play action to v1.1.2 (#98)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[r0adkll/upload-google-play](https://togithub.com/r0adkll/upload-google-play)
| action | patch | `v1.1.1` -> `v1.1.2` |

---

### Release Notes

<details>
<summary>r0adkll/upload-google-play
(r0adkll/upload-google-play)</summary>

###
[`v1.1.2`](https://togithub.com/r0adkll/upload-google-play/compare/v1.1.1...v1.1.2)

[Compare
Source](https://togithub.com/r0adkll/upload-google-play/compare/v1.1.1...v1.1.2)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/pachli/pachli-android).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi4xMDcuMiIsInVwZGF0ZWRJblZlciI6IjM2LjEwNy4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-27 15:18:12 +02:00
renovate[bot] 5e101ffc6e
chore(deps): update actions/checkout action to v4 (#124)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [actions/checkout](https://togithub.com/actions/checkout) | action |
major | `v3` -> `v4` |

---

### Release Notes

<details>
<summary>actions/checkout (actions/checkout)</summary>

###
[`v4`](https://togithub.com/actions/checkout/blob/HEAD/CHANGELOG.md#v400)

[Compare Source](https://togithub.com/actions/checkout/compare/v3...v4)

- [Support fetching without the --progress
option](https://togithub.com/actions/checkout/pull/1067)
-   [Update to node20](https://togithub.com/actions/checkout/pull/1436)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/pachli/pachli-android).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi4xMDcuMiIsInVwZGF0ZWRJblZlciI6IjM2LjEwNy4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-27 12:13:11 +02:00
Nik Clayton f71a5e1237
ci: Run ktlint workflow on forks, with write permissions (#95)
Previously the permissions were only applied to branches from this
repository, not forks. Use `pull_request_target` so the `GITHUB_TOKEN`
will have the correct permissions when this workflow is run from a PR
created from a clone.

Remove the `issues` permission, it didn't seem necessary.
2023-09-25 18:18:39 +02:00
Nik Clayton e0e4235354
change: Deprecate the "develop" branch (#70)
The separation between the `develop` and `main` branches was inherited
from Tusky and isn't helpful, complicating the release process and
causing CI to repeatedly run the same actions on the same code.

Deprecate the `develop` branch by removing references to it in the
documentation and updating the CI configuration as necessary.

Separately, the GitHub settings will be changed to set `main` as the
default branch, and the `develop` branch will be deleted.
2023-09-19 16:40:07 +02:00
Nik Clayton 26482c4b78
ci: Support generating whatsnew and uploading to Google Play (#69)
Add additional steps which:

- Generate the whatsnew-en-US file from the Fastlane metadata
- Uploads the generated AAB file to Google Play
2023-09-19 12:05:06 +02:00
Nik Clayton 2c5c93e33a
ci: Start creating the build / sign / upload-to-Google-Play pipeline (#50)
This action should build the APK and AAB, sign them, and store the APK
as an asset.

Uploading to the correct Google Play release track will come later.
2023-09-15 22:15:50 +02:00
Nik Clayton a0f749b89a
ci: Rename pr-conventional-commit to pr-conventional-commit.yml (#32) 2023-09-12 13:01:47 +02:00
Nik Clayton 35afc574ab
ci: Check PR titles have conventional commit metadata (#30) 2023-09-12 12:59:29 +02:00
Nik Clayton 357ac03795
chore: Update issue templates (#4) 2023-09-05 22:20:47 +02:00
Nik Clayton e6ce86158b
ci: Move reviewdog permissions block (#6)
The permission declaration appears to be sensitive to the position in
the file. Move it to the start to ensure it takes effect.
2023-09-05 22:20:18 +02:00
Nik Clayton 1bf13b10f8
refactor: Transition from Tusky to Pachli
- Rename packages to app.pachli.*
- Switch to Pachli icons (blue / orange)
- Reset database schema version to 1
- Reset versionCode to 1 and versionName to "1.0"
- Update colour scheme, use colorPrimary etc through the app
- Use Material UI components for toolbars
- Use "Pachli" in strings (UI, constants, etc)
- Update copyright on code I contributed
- Update README
- Update fastlane metadata
2023-09-05 13:33:37 +02:00
Nik Clayton cf26af25d8
docs: Update copyright statement on relevant files
Update the copyright statement on files I wrote or substantially
rewrote.
2023-09-04 20:22:09 +02:00
Nik Clayton 0c892cf56f
Leave comments on PRs with fixes for lint errors (#3224)
Runs `ktlintFormat`, and adds comments to the PR if that generates any
diffs. The comments include the fix, which can be accepted immediately
through the GitHub UI.
2023-08-23 22:49:44 +02:00
Nik Clayton 41951c906c
Provide specific gradle properties for builds on CI (#3924)
Expectation is that these will result in faster builds by disabling
options (like the gradle daemon) that benefit long-lived processes but
do not benefit ephemeral build workers.
2023-08-08 23:04:29 +02:00
Nik Clayton 49fd2c8478
Populate gradle build cache on each push to develop (#3904)
The build cache is used in ci.yml to speed up builds, but it needs to be
populated by building code that's been merged.
2023-08-04 14:11:30 +02:00
Nik Clayton 839d8bcc04
Migrate to AGP 8.0.2 / Android Studio Flamingo / Java 17 (#3541)
- Update AGP in version catalog to 8.0.2
- Set Java version to 17
- Enable non-final resource IDs
2023-07-30 15:50:04 +02:00
Nik Clayton a41b81cd70
Allow builds on `develop` to write to the Gradle cache, update task names (#3834) 2023-07-12 13:26:30 +02:00
Nik Clayton 0a1be7df06
Experiment with linting and testing using Github actions (#3728)
Create an action that lints, tests, and builds the green debug variant.
2023-07-10 21:02:14 +02:00
Konrad Pozniak 46e5ef00ed
Create FUNDING.yml 2019-05-23 19:24:51 +02:00