Skip to content

Add option to specify external directories for sources #23

Add option to specify external directories for sources

Add option to specify external directories for sources #23

Workflow file for this run

name: "Build"
on:
push:
branches:
- "main"
tags:
- "*"
pull_request:
branches:
- "main"
jobs:
BuildMac:
runs-on: "macos-13"
env:
LEPTONICA_VERSION: "1.84.1"
TESSERACT_VERSION: "5.3.3"
strategy:
matrix:
config:
- "Debug"
- "Release"
defaults:
run:
shell: "bash"
steps:
- name: "Get version"
run: |
if [[ $GITHUB_REF =~ ^refs/tags/ ]]
then version="${GITHUB_REF#refs/tags/}"
else version=$TESSERACT_VERSION
fi
version="${version%-1}"
printf "version=%s\n" "$version" > "$GITHUB_OUTPUT"
printf "leptonica_version=%s\n" "$LEPTONICA_VERSION" >> "$GITHUB_OUTPUT"
id: "get-version"
- uses: "actions/checkout@v4"
- name: Download Leptonica Source
run: |
wget "https://github.com/DanBloomberg/leptonica/archive/refs/tags/$LEPTONICA_VERSION.tar.gz"
tar -xzf "$LEPTONICA_VERSION.tar.gz"
- name: Download Tesseract Source
run: |
wget "https://github.com/tesseract-ocr/tesseract/archive/refs/tags/$TESSERACT_VERSION.tar.gz"
tar -xzf "$TESSERACT_VERSION.tar.gz"
- name: Apply Patch
run: |
cd "tesseract-$TESSERACT_VERSION"
patch < ../patch_tesseract.diff
- name: Install CMake
run: brew install cmake
- name: "Run build-macos.sh"
run: "./build-macos.sh ${{ matrix.config }} $TESSERACT_VERSION $LEPTONICA_VERSION"
- uses: "actions/upload-artifact@v3"
with:
name: "tesseract-macos-${{ matrix.config }}"
path: "release/*.tar.gz"
BuildLinux:
runs-on: "ubuntu-22.04"
env:
LEPTONICA_VERSION: "1.84.1"
TESSERACT_VERSION: "5.3.3"
strategy:
matrix:
config:
- "Debug"
- "Release"
defaults:
run:
shell: "bash"
steps:
- name: "Get version"
run: |
if [[ $GITHUB_REF =~ ^refs/tags/ ]]
then version="${GITHUB_REF#refs/tags/}"
else version=$TESSERACT_VERSION
fi
version="${version%-1}"
printf "version=%s\n" "$version" > "$GITHUB_OUTPUT"
printf "leptonica_version=%s\n" "$LEPTONICA_VERSION" >> "$GITHUB_OUTPUT"
id: "get-version"
- uses: "actions/checkout@v4"
- name: Download Leptonica Source
run: |
wget "https://github.com/DanBloomberg/leptonica/archive/refs/tags/${LEPTONICA_VERSION}.tar.gz"
tar -xzf "$LEPTONICA_VERSION.tar.gz"
- name: Download Tesseract Source
run: |
wget "https://github.com/tesseract-ocr/tesseract/archive/refs/tags/$TESSERACT_VERSION.tar.gz"
tar -xzf "$TESSERACT_VERSION.tar.gz"
- name: Install CMake
run: sudo apt-get update && sudo apt-get install -y cmake
- name: "Run build-linux.sh"
run: "./build-linux.sh ${{ matrix.config }} $TESSERACT_VERSION $LEPTONICA_VERSION"
- uses: "actions/upload-artifact@v3"
with:
name: "tesseract-linux-${{ matrix.config }}"
path: "release/*.tar.gz"
BuildWindows:
runs-on: "windows-2022"
env:
LEPTONICA_VERSION: "1.84.1"
TESSERACT_VERSION: "5.3.3"
strategy:
matrix:
config:
- "Debug"
- "Release"
steps:
- name: "Get version"
shell: bash
run: |
if [[ $GITHUB_REF =~ ^refs/tags/ ]]
then version="${GITHUB_REF#refs/tags/}"
else version=$TESSERACT_VERSION
fi
version="${version%-1}"
printf "TESSERACT_VERSION=%s\n" "$TESSERACT_VERSION" > "$GITHUB_ENV"
printf "LEPTONICA_VERSION=%s\n" "$LEPTONICA_VERSION" >> "$GITHUB_ENV"
id: "get-version"
- uses: "actions/checkout@v4"
- name: Download Leptonica Source
shell: powershell
run: |
Invoke-WebRequest -Uri "https://github.com/DanBloomberg/leptonica/archive/refs/tags/$env:LEPTONICA_VERSION.zip" -OutFile "$env:LEPTONICA_VERSION.zip"
Expand-Archive -Path "$env:LEPTONICA_VERSION.zip" -DestinationPath "."
- name: Download Tesseract Source
shell: powershell
run: |
Invoke-WebRequest -Uri https://github.com/tesseract-ocr/tesseract/archive/refs/tags/$env:TESSERACT_VERSION.zip -OutFile "$env:TESSERACT_VERSION.zip"
Expand-Archive -Path "$env:TESSERACT_VERSION.zip" -DestinationPath "."
- name: "Run Build-Windows.ps1"
shell: pwsh
run: "./Build-Windows.ps1 -Configuration ${{ matrix.config }} -TesseractVersion $env:TESSERACT_VERSION -LeptonicaVersion $env:LEPTONICA_VERSION"
- uses: "actions/upload-artifact@v3"
with:
name: "tesseract-windows-${{ matrix.config }}"
path: "release/*.zip"
Release:
runs-on: "ubuntu-22.04"
if: "github.event_name == 'push' && contains(github.ref, 'refs/tags/')"
needs:
- "BuildMac"
- "BuildLinux"
- "BuildWindows"
permissions:
contents: "write"
defaults:
run:
shell: "bash"
steps:
- name: "Get version"
run: |
if [[ $GITHUB_REF =~ ^refs/tags/ ]]
then version="${GITHUB_REF#refs/tags/}"
else version=main
fi
printf "version=%s" "$version" > "$GITHUB_OUTPUT"
id: "get-version"
- name: "Download build artifacts"
uses: "actions/download-artifact@v3"
- name: Generate Checksums 🪪
run: |
: Generate Checksums 🪪
if [[ "${RUNNER_DEBUG}" ]]; then set -x; fi
shopt -s extglob
echo "### Checksums" > ${{ github.workspace }}/CHECKSUMS.txt
for file in ${{ github.workspace }}/@(*.tar.gz|*.tar.xz|*.zip); do
echo " ${file##*/}: $(sha256sum "${file}" | cut -d " " -f 1)" >> ${{ github.workspace }}/CHECKSUMS.txt
done
- name: "Create Release"
uses: "softprops/action-gh-release@1e07f4398721186383de40550babbdf2b84acfc5"
with:
draft: true
tag_name: "${{ steps.get-version.outputs.version }}"
name: "${{ steps.get-version.outputs.version }}"
body_path: ${{ github.workspace }}/CHECKSUMS.txt
files: |
${{ github.workspace }}/**/*.tar.gz
${{ github.workspace }}/**/*.zip