+76
.github/workflows/catsky-release.yml
+76
.github/workflows/catsky-release.yml
···
1
+
name: Release Catsky
2
+
on: workflow_dispatch # could be weekly/etc or on a separate branch.
3
+
4
+
jobs:
5
+
build-android:
6
+
name: Build Catsky for Android
7
+
runs-on: ubuntu-latest
8
+
outputs:
9
+
apk-path: ${{ steps.upload-artifact.outputs.artifact-path }}
10
+
steps:
11
+
- uses: actions/checkout@v4
12
+
13
+
- uses: actions/setup-node@v4
14
+
with:
15
+
node-version: 20
16
+
cache: yarn
17
+
18
+
- uses: actions/setup-java@v4
19
+
with:
20
+
java-version: 17
21
+
distribution: temurin
22
+
cache: gradle
23
+
24
+
- uses: android-actions/setup-android@v3
25
+
26
+
- uses: extractions/setup-just@v2
27
+
28
+
- name: Install dependencies
29
+
run: yarn install --frozen-lockfile
30
+
31
+
- name: Copy example build settings
32
+
run: |
33
+
cp .env.example .env
34
+
cp google-services.json.example google-services.json
35
+
36
+
- name: Build APK
37
+
run: just dist-build-android-gradle
38
+
39
+
- name: Upload APK artifact
40
+
id: upload-artifact
41
+
uses: actions/upload-artifact@v4
42
+
with:
43
+
name: android
44
+
path: android/app/build/outputs/apk/release/app-release.apk
45
+
46
+
release:
47
+
name: Create GitHub Release
48
+
needs: build-android
49
+
runs-on: ubuntu-latest
50
+
steps:
51
+
- name: Download APK artifact
52
+
uses: actions/download-artifact@v4
53
+
with:
54
+
name: android
55
+
path: .
56
+
57
+
- name: Create GitHub Release
58
+
id: create_release
59
+
uses: actions/create-release@v1
60
+
env:
61
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
62
+
with:
63
+
tag_name: catsky-v${{ github.run_number }}
64
+
release_name: Catsky v${{ github.run_number }}
65
+
draft: false
66
+
prerelease: false
67
+
68
+
- name: Upload APK to Release
69
+
uses: actions/upload-release-asset@v1
70
+
env:
71
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
72
+
with:
73
+
upload_url: ${{ steps.create_release.outputs.upload_url }}
74
+
asset_path: ./app-release.apk
75
+
asset_name: app-release.apk
76
+
asset_content_type: application/vnd.android.package-archive
+4
README.md
+4
README.md
···
6
6
7
7
- **Web: bsky.app**
8
8
9
+
<a href="https://apps.obtainium.imranr.dev/redirect?r=obtainium://add/https://github.com/NekoDrone/catsky-social">
10
+
<img src="https://github.com/ImranR98/Obtainium/blob/main/assets/graphics/badge_obtainium.png?raw=true"
11
+
alt="Get it on Obtainium" align="center" height="54" /></a>
12
+
9
13
## Development Resources
10
14
11
15
This is a [React Native](https://reactnative.dev/) application, written in the TypeScript programming language. It builds on the `atproto` TypeScript packages (like [`@atproto/api`](https://www.npmjs.com/package/@atproto/api)), which are also open source, but in [a different git repository](https://github.com/bluesky-social/atproto).
+6
docs/android-builds.md
+6
docs/android-builds.md
···
1
+
# Android CI builds
2
+
3
+
Android builds are done via CI to avoid EAS (expo) and are published via releases to avoid artifact expiry and allow [obtainium](https://obtainium.imranr.dev/) to download and auto-update the app.
4
+
5
+
- "Catsky build" is for testing/etc NOT for release as these artifacts will expiry and won't be pushed out to obtainium users
6
+
- "Catsky release" is for production and will be pushed out to obtainium users and artifacts won't expire