Refactor Android CI workflow to use Nix actions and improve translation file collection
Some checks failed
Android / build (push) Failing after 6m5s

This commit is contained in:
HendrikRauh 2026-01-26 17:40:54 +01:00
parent 49bc90c00c
commit e3e67f5b29
2 changed files with 71 additions and 19 deletions

50
.github/actions/nix-devshell/action.yml vendored Normal file
View file

@ -0,0 +1,50 @@
name: "nix-devshell"
description:
"Set up Nix, prebuild the devshell and run commands inside the devshell."
inputs:
prebuild:
description:
"Whether to prebuild the devshell (nix develop --command true)."
required: false
default: "false"
commands:
description:
"Commands to run inside the devshell (executed with bash -lc)."
required: false
default: ""
runs:
using: "composite"
steps:
- name: Install Nix (idempotent)
shell: bash
run: |
set -euo pipefail
if ! command -v nix >/dev/null 2>&1; then
curl -L https://nixos.org/nix/install | sh -s -- --no-daemon
fi
# source the nix profile if present
if [ -f "$HOME/.nix-profile/etc/profile.d/nix.sh" ]; then
. "$HOME/.nix-profile/etc/profile.d/nix.sh"
fi
nix --version
- name: Prebuild devshell
if: ${{ inputs.prebuild == 'true' }}
shell: bash
run: |
set -euo pipefail
if [ -f "$HOME/.nix-profile/etc/profile.d/nix.sh" ]; then
. "$HOME/.nix-profile/etc/profile.d/nix.sh"
fi
nix --extra-experimental-features 'nix-command flakes' develop --command true
- name: Run commands in devshell
if: ${{ inputs.commands != '' }}
shell: bash
run: |
set -euo pipefail
if [ -f "$HOME/.nix-profile/etc/profile.d/nix.sh" ]; then
. "$HOME/.nix-profile/etc/profile.d/nix.sh"
fi
nix --extra-experimental-features 'nix-command flakes' develop --command bash -lc "${{ inputs.commands }}"

View file

@ -11,28 +11,30 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Install Nix (for nix usage)
run: |
set -euo pipefail
curl -L https://nixos.org/nix/install | sh -s -- --no-daemon
. "$HOME/.nix-profile/etc/profile.d/nix.sh"
nix --version
- name: Checkout code - name: Checkout code
uses: actions/checkout@v6 uses: actions/checkout@v6
- name: Prepare Nix devshell
uses: ./.github/actions/nix-devshell
with:
prebuild: "true"
- name: Collect Translation Files - name: Collect Translation Files
run: | uses: ./.github/actions/nix-devshell
set -euo pipefail with:
. "$HOME/.nix-profile/etc/profile.d/nix.sh" commands: |
nix --version
cd lib/l10n cd lib/l10n
nix --extra-experimental-features 'nix-command flakes' develop --command python3 collect_translations.py python3 collect_translations.py
cd ../..
- name: Build Debug APK - name: Build Debug APK
run: | uses: ./.github/actions/nix-devshell
set -euo pipefail with:
. "$HOME/.nix-profile/etc/profile.d/nix.sh" commands: |
nix --version flutter build apk --debug --target-platform android-arm64
nix --extra-experimental-features 'nix-command flakes' develop --command flutter build apk --debug
- name: Upload APK artifact
uses: actions/upload-artifact@v4
with:
name: app-debug-apk
path: build/app/outputs/flutter-apk/*.apk
# retention-days: 90