diff --git a/.github/workflows/android-check.yaml b/.github/workflows/android-check.yaml index 80223719be..f2628b7718 100644 --- a/.github/workflows/android-check.yaml +++ b/.github/workflows/android-check.yaml @@ -1,6 +1,9 @@ name: Android Check on: workflow_dispatch: # Manual trigger + push: + branches: + - master pull_request: paths-ignore: - .gitignore @@ -83,9 +86,17 @@ jobs: shell: bash run: ./configure.sh + - name: Configure ccache + uses: hendrikmuhs/ccache-action@v1.2 + with: + key: ${{ github.workflow }}-${{ matrix.flavor }} + - name: Compile ${{ matrix.flavor }} shell: bash working-directory: android + env: + CMAKE_C_COMPILER_LAUNCHER: ccache + CMAKE_CXX_COMPILER_LAUNCHER: ccache run: | cmake --version ninja --version diff --git a/.github/workflows/cleanup_caches.yml b/.github/workflows/cleanup_caches.yml new file mode 100644 index 0000000000..708cb2dba0 --- /dev/null +++ b/.github/workflows/cleanup_caches.yml @@ -0,0 +1,34 @@ +# https://docs.github.com/en/actions/using-workflows/caching-dependencies-to-speed-up-workflows#force-deleting-cache-entries +name: Cleanup caches by a branch +on: + pull_request: + types: + - closed + +jobs: + cleanup: + runs-on: ubuntu-latest + steps: + - name: Check out code + uses: actions/checkout@v3 + + - name: Cleanup + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + gh extension install actions/gh-actions-cache + + REPO=${{ github.repository }} + BRANCH="refs/pull/${{ github.event.pull_request.number }}/merge" + + echo "Fetching list of cache key" + cacheKeysForPR=$(gh actions-cache list -R $REPO -B $BRANCH | cut -f 1 ) + + ## Setting this to not fail the workflow while deleting cache keys. + set +e + echo "Deleting caches..." + for cacheKey in $cacheKeysForPR + do + gh actions-cache delete $cacheKey -R $REPO -B $BRANCH --confirm + done + echo "Done" diff --git a/.github/workflows/ios-check.yaml b/.github/workflows/ios-check.yaml index 332c188470..8624d546b9 100644 --- a/.github/workflows/ios-check.yaml +++ b/.github/workflows/ios-check.yaml @@ -1,6 +1,9 @@ name: iOS Check on: workflow_dispatch: # Manual trigger + push: + branches: + - master pull_request: paths-ignore: - .gitignore @@ -53,11 +56,17 @@ jobs: shell: bash run: ./configure.sh + - name: Configure ccache + uses: mikehardy/buildcache-action@v2.1.0 + with: + cache_key: ${{ github.workflow }}-${{ matrix.buildType }} + - name: Compile shell: bash # Check for compilation errors. run: | xcodebuild \ + CC=clang CPLUSPLUS=clang++ LD=clang LDPLUSPLUS=clang++ \ -workspace xcode/omim.xcworkspace \ -scheme OMaps \ -configuration ${{ matrix.buildType }} build \ diff --git a/.github/workflows/linux-check.yaml b/.github/workflows/linux-check.yaml index ebe4f0931d..3d42d97b42 100644 --- a/.github/workflows/linux-check.yaml +++ b/.github/workflows/linux-check.yaml @@ -74,10 +74,11 @@ jobs: env: CC: clang-14 CXX: clang++-14 + CMAKE_C_COMPILER_LAUNCHER: ccache + CMAKE_CXX_COMPILER_LAUNCHER: ccache # -g1 should slightly reduce build time. run: | cmake . -B build -G Ninja -DCMAKE_BUILD_TYPE=Debug \ - -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ -DCMAKE_CXX_FLAGS=-g1 -DUNITY_DISABLE=ON - name: Compile @@ -138,11 +139,12 @@ jobs: env: CC: ${{ matrix.compiler.CC }} CXX: ${{ matrix.compiler.CXX }} + CMAKE_C_COMPILER_LAUNCHER: ccache + CMAKE_CXX_COMPILER_LAUNCHER: ccache # -g1 should slightly reduce build time. run: | echo "Building ${{ matrix.CMAKE_BUILD_TYPE }}" cmake . -B build -G Ninja -DCMAKE_BUILD_TYPE=${{ matrix.CMAKE_BUILD_TYPE }} \ - -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ -DCMAKE_C_FLAGS=-g1 -DCMAKE_CXX_FLAGS=-g1 - name: Compile diff --git a/.github/workflows/macos-check.yaml b/.github/workflows/macos-check.yaml index 95146fc231..473f4b022e 100644 --- a/.github/workflows/macos-check.yaml +++ b/.github/workflows/macos-check.yaml @@ -65,10 +65,12 @@ jobs: - name: CMake shell: bash + env: + CMAKE_C_COMPILER_LAUNCHER: ccache + CMAKE_CXX_COMPILER_LAUNCHER: ccache run: | echo "Building ${{ matrix.CMAKE_BUILD_TYPE }}" cmake . -B build -G Ninja -DCMAKE_BUILD_TYPE=${{ matrix.CMAKE_BUILD_TYPE }} \ - -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ -DCMAKE_C_FLAGS=-g1 -DCMAKE_CXX_FLAGS=-g1 - name: Compile