Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 0 additions & 57 deletions .github/workflows/main.yml

This file was deleted.

35 changes: 35 additions & 0 deletions .github/workflows/pr-checks.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: PR Checks

on:
pull_request:
branches: [ main ]

jobs:
test:
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'

- name: Setup Gradle
uses: gradle/actions/setup-gradle@v3

- name: Run unit tests
run: ./gradlew test --stacktrace

- name: Upload test reports
if: always()
uses: actions/upload-artifact@v4
with:
name: test-reports
path: |
**/build/reports/tests/
**/build/test-results/
retention-days: 7
83 changes: 83 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
name: Release

on:
push:
tags:
- 'v*'
workflow_dispatch:
inputs:
tag:
description: 'Version tag for APK name'
default: 'vx.x.x'

jobs:
build:
runs-on: ubuntu-latest
container:
image: registry.gitlab.com/fdroid/fdroidserver:buildserver-trixie
permissions:
contents: write
id-token: write

steps:
- uses: actions/checkout@v4

- name: Setup
run: |
apt-get update -q
apt-get install -y openjdk-21-jdk-headless ruby ruby-dev ruby-bundler build-essential
update-alternatives --set java /usr/lib/jvm/java-21-openjdk-amd64/bin/java
sed -i -e '/jetbrains/d' -e '/foojay/d' settings.gradle.kts
bundler install

- name: Decode keystore
run: |
echo "${{ secrets.KEYSTORE_BASE64 }}" | base64 -d > androidApp/release.keystore

- name: Build
run: cd androidApp && ../gradlew assembleRelease
env:
ANDROID_HOME: /opt/android-sdk
KEYSTORE_PATH: release.keystore
KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }}
KEY_ALIAS: ${{ secrets.KEY_ALIAS }}
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}

# - name: Sign
# run: |
# TAG=${{ github.event.inputs.tag || github.ref_name }}
# /opt/android-sdk/build-tools/$(ls /opt/android-sdk/build-tools/ | tail -1)/apksigner sign \
# --ks androidApp/release.keystore \
# --ks-pass "pass:${{ secrets.KEYSTORE_PASSWORD }}" \
# --key-pass "pass:${{ secrets.KEY_PASSWORD }}" \
# --ks-key-alias "${{ secrets.KEY_ALIAS }}" \
# --out signed_release.apk \
# androidApp/build/outputs/apk/release/androidApp-release-unsigned.apk
# rm keystore.jks
# env:
# ANDROID_HOME: /opt/android-sdk

- id: auth
uses: google-github-actions/auth@v2
with:
workload_identity_provider: 'projects/66072674254/locations/global/workloadIdentityPools/github-pool/providers/github-provider'
service_account: 'fastlane@pixelix-509511.iam.gserviceaccount.com'

- name: Run Fastlane Release Lane
env:
KEYSTORE_PATH: release.keystore
KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }}
KEY_ALIAS: ${{ secrets.KEY_ALIAS }}
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_REF_NAME: ${{ github.event.inputs.tag || github.ref_name }}
ANDROID_HOME: /opt/android-sdk
run: bundle exec fastlane android release

# - name: Release
# uses: softprops/action-gh-release@v2
# with:
# files: pixelix_${{ github.event.inputs.tag || github.ref_name }}.apk
# draft: true
# tag_name: ${{ github.event.inputs.tag || github.ref_name }}
# fail_on_unmatched_files: false
5 changes: 5 additions & 0 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
source "https://rubygems.org"

gem "fastlane"
plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile')
eval_gemfile(plugins_path) if File.exist?(plugins_path)
Loading
Loading