61 lines
2.1 KiB
YAML
61 lines
2.1 KiB
YAML
name: Setup Tesseract Cache
|
|
description: Manages kreuzberg-tesseract build cache per architecture
|
|
|
|
inputs:
|
|
label:
|
|
description: Platform label (e.g. linux-x86_64, linux-aarch64)
|
|
required: true
|
|
enable-cache:
|
|
description: Enable tesseract caching (disable for cross-arch builds)
|
|
required: false
|
|
default: "true"
|
|
rust-target:
|
|
description: Rust target triple for per-target cache cleanup
|
|
required: false
|
|
default: ""
|
|
|
|
outputs:
|
|
cache-dir:
|
|
description: Tesseract cache directory path
|
|
value: ${{ steps.set-outputs.outputs.cache-dir }}
|
|
cache-enabled:
|
|
description: Whether caching is enabled (true/false)
|
|
value: ${{ steps.set-outputs.outputs.cache-enabled }}
|
|
docker-options:
|
|
description: Docker options for passing cache env vars
|
|
value: ${{ steps.set-outputs.outputs.docker-options }}
|
|
|
|
runs:
|
|
using: composite
|
|
steps:
|
|
- name: Clean cache directories (cache disabled)
|
|
if: inputs.enable-cache != 'true'
|
|
shell: bash
|
|
run: scripts/ci/actions/setup-tesseract-cache/clean-dirs.sh "${{ inputs.label }}"
|
|
|
|
- name: Setup cache directories
|
|
if: inputs.enable-cache == 'true'
|
|
shell: bash
|
|
run: scripts/ci/actions/setup-tesseract-cache/setup-dirs.sh "${{ inputs.label }}"
|
|
|
|
- name: Cache kreuzberg-tesseract build cache
|
|
if: inputs.enable-cache == 'true'
|
|
uses: actions/cache@v5
|
|
with:
|
|
path: |
|
|
.tesseract-cache/${{ inputs.label }}
|
|
.xdg-cache/${{ inputs.label }}
|
|
key: kreuzberg-tesseract-cache-v2-${{ runner.os }}-${{ inputs.label }}-${{ hashFiles('crates/kreuzberg-tesseract/Cargo.toml', 'crates/kreuzberg-tesseract/build.rs') }}
|
|
restore-keys: |
|
|
kreuzberg-tesseract-cache-v2-${{ runner.os }}-${{ inputs.label }}-
|
|
|
|
- name: Clean per-target Tesseract cache
|
|
if: inputs.rust-target != ''
|
|
shell: bash
|
|
run: scripts/ci/actions/setup-tesseract-cache/clean-target-cache.sh "${{ inputs.rust-target }}"
|
|
|
|
- name: Set outputs and environment
|
|
id: set-outputs
|
|
shell: bash
|
|
run: scripts/ci/actions/setup-tesseract-cache/set-outputs.sh "${{ inputs.label }}" "${{ inputs.enable-cache }}"
|