diff --git a/.github/actions/androidapp-road-test/action.yml b/.github/actions/androidapp-road-test/action.yml index 47e1a846..3acb2ea0 100644 --- a/.github/actions/androidapp-road-test/action.yml +++ b/.github/actions/androidapp-road-test/action.yml @@ -29,17 +29,8 @@ runs: - name: Prepare Android environment uses: ./.github/actions/prepare-android - - - name: Restore Gradle cache - uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5 with: - path: | - ~/.gradle/caches - ~/.gradle/wrapper - key: ${{ runner.os }}-android-androidapp-${{ inputs.flavor }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} - restore-keys: | - ${{ runner.os }}-android-androidapp-${{ inputs.flavor }}-gradle- - ${{ runner.os }}-android-androidapp-gradle- + gradle-workflow-job-context: ${{ inputs.flavor }} # == Brownfield Gradle Plugin == - name: Publish Brownfield Gradle Plugin to Maven Local @@ -82,6 +73,18 @@ runs: run: stat ~/.m2/repository/${{ inputs.rn-project-maven-path }}/0.0.1-SNAPSHOT/brownfieldlib-0.0.1-SNAPSHOT-release.aar shell: bash + # clean up build artifacts to ensure no ENOSPC + - name: Clean up local build artifacts + run: | + rm -rf ${{ inputs.rn-project-path }}/android/build + rm -rf ${{ inputs.rn-project-path }}/android/.cxx + rm -rf ${{ inputs.rn-project-path }}/android/.gradle + rm -rf ${{ inputs.rn-project-path }}/android/app/build + rm -rf ${{ inputs.rn-project-path }}/android/app/.cxx + rm -rf ${{ inputs.rn-project-path }}/android/app/.gradle + rm -rf ${{ inputs.rn-project-path }}/android/app/build + shell: bash + # == AndroidApp == - name: Build native Android Brownfield app diff --git a/.github/actions/prepare-android/action.yml b/.github/actions/prepare-android/action.yml index d3694013..44424131 100644 --- a/.github/actions/prepare-android/action.yml +++ b/.github/actions/prepare-android/action.yml @@ -8,9 +8,14 @@ inputs: default: 'true' run-yarn-build: - description: 'Whether to run yarn build' + description: 'Whether to run yarn build (usually false when ./.github/actions/setup already ran)' required: false - default: 'true' + default: 'false' + + gradle-workflow-job-context: + description: 'Segment Gradle cache per app/project (e.g. vanilla, expo54). Falls back to github.job when empty.' + required: false + default: '' runs: using: composite @@ -24,6 +29,13 @@ runs: distribution: 'zulu' java-version: '17' + - name: Setup Gradle + uses: gradle/actions/setup-gradle@6f229686ee4375cc4a86b2514c89bac4930e82c4 # v5 + with: + # Validates all gradle-wrapper.jar files, caches Gradle User Home efficiently, + # and captures Build Scan links. Do not combine with actions/cache on ~/.gradle. + workflow-job-context: ${{ inputs.gradle-workflow-job-context != '' && inputs.gradle-workflow-job-context || github.job }} + - name: Free Disk Space (Ubuntu) if: inputs.free-disk-space == 'true' uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be # v1.3.1 @@ -33,7 +45,7 @@ runs: android: false dotnet: true haskell: true - large-packages: false + large-packages: true docker-images: true swap-storage: false diff --git a/.github/workflows/gradle-plugin-lint.yml b/.github/workflows/gradle-plugin-lint.yml index 39264e96..2c70cc81 100644 --- a/.github/workflows/gradle-plugin-lint.yml +++ b/.github/workflows/gradle-plugin-lint.yml @@ -21,16 +21,6 @@ jobs: free-disk-space: 'false' run-yarn-build: 'false' - - name: Restore Gradle cache - uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5 - with: - path: | - ~/.gradle/caches - ~/.gradle/wrapper - key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} - restore-keys: | - ${{ runner.os }}-gradle- - - name: Run Detekt working-directory: gradle-plugins/react/brownfield run: ./gradlew detekt --no-daemon --stacktrace diff --git a/packages/brownfield-navigation/turbo.json b/packages/brownfield-navigation/turbo.json new file mode 100644 index 00000000..d03b8931 --- /dev/null +++ b/packages/brownfield-navigation/turbo.json @@ -0,0 +1,16 @@ +{ + "$schema": "https://turbo.build/schema.json", + "extends": ["//"], + "tasks": { + "build": { + "inputs": [ + "src/**/*", + "bob.config.js", + "babel.config.js", + "tsconfig*.json", + "package.json" + ], + "outputs": ["lib/**"] + } + } +} diff --git a/packages/brownfield/turbo.json b/packages/brownfield/turbo.json index 3bafb127..6bf07282 100644 --- a/packages/brownfield/turbo.json +++ b/packages/brownfield/turbo.json @@ -3,7 +3,13 @@ "extends": ["//"], "tasks": { "build": { - "inputs": ["src/**/*"], + "inputs": [ + "src/**/*", + "bob.config.js", + "babel.config.js", + "tsconfig*.json", + "package.json" + ], "outputs": ["dist/**"] } } diff --git a/packages/brownie/turbo.json b/packages/brownie/turbo.json index 2c795536..d03b8931 100644 --- a/packages/brownie/turbo.json +++ b/packages/brownie/turbo.json @@ -3,7 +3,13 @@ "extends": ["//"], "tasks": { "build": { - "inputs": ["src/**/*"], + "inputs": [ + "src/**/*", + "bob.config.js", + "babel.config.js", + "tsconfig*.json", + "package.json" + ], "outputs": ["lib/**"] } } diff --git a/packages/cli/turbo.json b/packages/cli/turbo.json index a11e03c5..029b0d9f 100644 --- a/packages/cli/turbo.json +++ b/packages/cli/turbo.json @@ -3,7 +3,13 @@ "extends": ["//"], "tasks": { "build": { - "inputs": ["src/**/*"], + "inputs": [ + "src/**/*", + "bob.config.js", + "babel.config.js", + "tsconfig*.json", + "package.json" + ], "outputs": ["dist/**"] }, "build:brownfield": { diff --git a/packages/react-native-brownfield/turbo.json b/packages/react-native-brownfield/turbo.json index 2c795536..d03b8931 100644 --- a/packages/react-native-brownfield/turbo.json +++ b/packages/react-native-brownfield/turbo.json @@ -3,7 +3,13 @@ "extends": ["//"], "tasks": { "build": { - "inputs": ["src/**/*"], + "inputs": [ + "src/**/*", + "bob.config.js", + "babel.config.js", + "tsconfig*.json", + "package.json" + ], "outputs": ["lib/**"] } }