diff --git a/.github/workflows/android.yaml b/.github/workflows/android.yaml index bc751fe..622fdd5 100644 --- a/.github/workflows/android.yaml +++ b/.github/workflows/android.yaml @@ -9,11 +9,56 @@ on: jobs: build: runs-on: ubuntu-latest + env: + ENABLE_NIX_STORE_CACHE: 'true' # set to 'true' to test caching the whole /nix/store (risky) + USE_CACHIX: 'false' # set to 'true' to enable Cachix step steps: - name: Checkout code uses: actions/checkout@v6 + - name: Cache Nix local cache (~/.cache/nix) + uses: actions/cache@v4 + with: + path: ${{ env.HOME }}/.cache/nix + key: ${{ runner.os }}-nix-local-${{ hashFiles('flake.lock','flake.nix') }} + restore-keys: | + ${{ runner.os }}-nix-local- + + - name: (Optional) Cache entire /nix/store (experimental, very large) + if: env.ENABLE_NIX_STORE_CACHE == 'true' + uses: actions/cache@v4 + with: + path: /nix/store/ + key: ${{ runner.os }}-nix-store-${{ hashFiles('flake.lock','flake.nix') }} + restore-keys: | + ${{ runner.os }}-nix-store- + + - name: (Optional) Setup Cachix (use binary cache) + if: env.USE_CACHIX == 'true' + uses: cachix/cachix-action@v14 + with: + name: inventree + + - name: Cache Flutter Pub + uses: actions/cache@v4 + with: + path: ${{ env.HOME }}/.pub-cache + key: ${{ runner.os }}-pub-${{ hashFiles('pubspec.lock','pubspec.yaml') }} + restore-keys: | + ${{ runner.os }}-pub- + + - name: Cache Gradle + uses: actions/cache@v4 + with: + path: | + ${{ env.HOME }}/.gradle/caches + ${{ env.HOME }}/.gradle/wrapper + android/.gradle + key: ${{ runner.os }}-gradle-${{ hashFiles('**/build.gradle*','android/gradle.properties','android/gradle/wrapper/gradle-wrapper.properties') }} + restore-keys: | + ${{ runner.os }}-gradle- + - name: Prepare Nix devshell uses: ./.github/actions/nix-devshell with: