Skip to content

Consolidate CI into nix/ci.nix #71

Consolidate CI into nix/ci.nix

Consolidate CI into nix/ci.nix #71

Workflow file for this run

on:
pull_request:
push:
branches:
- master
permissions:
actions: write
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
android:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Local cache
uses: actions/cache@v4
with:
path: /nix/store
key: "${{ runner.os }}-nix-android-cache"
restore-keys: |
${{ runner.os }}-nix-android-
- uses: cachix/install-nix-action@v31
with:
extra_nix_config: |
access-tokens = github.com=${{ secrets.GITHUB_TOKEN }}
- uses: cachix/cachix-action@v15
with:
name: jappie
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
- run: nix-build
- run: nix-build nix/android.nix
- run: nix-build nix/apk.nix -o result-apk
- name: Upload Android APK
if: github.ref == 'refs/heads/master'
uses: actions/upload-artifact@v4
with:
name: haskell-mobile-android
path: result-apk/haskell-mobile.apk
- name: Build UI test
run: nix-build nix/emulator-ui.nix -o result-emulator-ui
- name: Run UI rendering test
run: ./result-emulator-ui/bin/test-ui
- name: Cancel workflow on failure
if: failure()
continue-on-error: true
run: gh run cancel ${{ github.run_id }}
env:
GH_TOKEN: ${{ github.token }}
ios:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- name: Local cache
uses: actions/cache@v4
with:
path: /nix/store
key: "${{ runner.os }}-nix-ios-cache"
restore-keys: |
${{ runner.os }}-nix-ios-
- uses: cachix/install-nix-action@v31
with:
extra_nix_config: |
access-tokens = github.com=${{ secrets.GITHUB_TOKEN }}
- uses: cachix/cachix-action@v15
with:
name: jappie
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
- run: nix-build nix/ios.nix
- name: Build simulator test
run: nix-build nix/simulator.nix -o result-simulator
- name: Run simulator lifecycle test
run: ./result-simulator/bin/test-lifecycle-ios
- name: Build UI test
run: nix-build nix/simulator-ui.nix -o result-simulator-ui
- name: Run UI rendering test
run: ./result-simulator-ui/bin/test-ui-ios
- name: Upload iOS library
if: github.ref == 'refs/heads/master'
uses: actions/upload-artifact@v4
with:
name: haskell-mobile-ios
path: |
result/lib/libHaskellMobile.a
result/include/HaskellMobile.h
- name: Cancel workflow on failure
if: failure()
continue-on-error: true
run: gh run cancel ${{ github.run_id }}
env:
GH_TOKEN: ${{ github.token }}