Update README.md #329
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Infos on current github runners: | |
# https://docs.github.com/en/free-pro-team@latest/actions/reference/specifications-for-github-hosted-runners#about-github-hosted-runners | |
name: Test | |
on: | |
pull_request: | |
push: | |
branches: ["main"] | |
tags: ["v*"] | |
workflow_dispatch: | |
inputs: | |
refToBuild: | |
description: "Branch, tag or commit SHA1 to build" | |
required: true | |
type: string | |
concurrency: | |
group: cicd-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
test: | |
name: Lint & Test | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [macos-12, windows-2022, ubuntu-22.04] | |
steps: | |
# Setup environment | |
- uses: actions/checkout@v4 | |
if: ${{ github.event_name != 'workflow_dispatch' }} | |
- uses: actions/checkout@v4 | |
if: ${{ github.event_name == 'workflow_dispatch' }} | |
with: | |
ref: ${{ inputs.refToBuild }} | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: "3.10" | |
cache: "pip" | |
- name: Install hatch | |
run: pip install hatch | |
- name: Prepare Linux | |
if: matrix.os == 'ubuntu-22.04' | |
run: | | |
sudo apt-get update | |
sudo apt-get install \ | |
python3-pil \ | |
tesseract-ocr \ | |
tesseract-ocr-eng \ | |
tesseract-ocr-jpn \ | |
tesseract-ocr-chi-sim \ | |
xclip | |
sudo apt-get install \ | |
xvfb \ | |
libxkbcommon-x11-0 \ | |
libxcb-icccm4 \ | |
libxcb-image0 \ | |
libxcb-keysyms1 \ | |
libxcb-randr0 \ | |
libxcb-render-util0 \ | |
libxcb-xinerama0 \ | |
libxcb-xfixes0 \ | |
libxcb-shape0 \ | |
libxcb-cursor0 \ | |
libegl1 \ | |
libegl1-mesa | |
sudo apt-get install \ | |
ca-certificates | |
echo "XDG_SESSION_TYPE=gnome" >> $GITHUB_ENV | |
echo "QT_DEBUG_PLUGINS=1" >> $GITHUB_ENV | |
echo "QT_QPA_PLATFORM=xcb" >> $GITHUB_ENV | |
- name: Prepare macOS | |
if: matrix.os == 'macos-12' | |
run: | | |
brew install pkg-config tesseract tesseract-lang dylibbundler | |
brew info tesseract | |
- name: Prepare Windows | |
if: matrix.os == 'windows-2022' | |
run: | | |
$url = "https://digi.bib.uni-mannheim.de/tesseract/tesseract-ocr-w64-setup-v5.3.0.20221214.exe" | |
Invoke-WebRequest -Uri $url -OutFile "tesseract_installer.exe" | |
7z x tesseract_installer.exe -O"C:\Program Files\Tesseract-OCR" | |
$chi_sim_url = "https://github.com/tesseract-ocr/tessdata_fast/raw/main/chi_sim.traineddata" | |
Invoke-WebRequest -Uri $chi_sim_url -OutFile "C:\Program Files\Tesseract-OCR\tessdata\chi_sim.traineddata" | |
$jpn_url = "https://github.com/tesseract-ocr/tessdata_fast/raw/main/jpn.traineddata" | |
Invoke-WebRequest -Uri $jpn_url -OutFile "C:\Program Files\Tesseract-OCR\tessdata\jpn.traineddata" | |
$tesseract = "C:\Program Files\Tesseract-OCR\" | |
echo "$tesseract" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append | |
echo "TESSDATA_PREFIX=$tesseract\tessdata" >> $env:GITHUB_ENV | |
Set-DisplayResolution -Width 1920 -Height 1080 -Force | |
- name: Test tesseract | |
run: | | |
tesseract --version | |
tesseract --list-langs | |
- name: Run project checks | |
run: hatch run check | |
env: | |
QT_DEBUG_PLUGINS: 1 | |
- name: Coveralls Parallel | |
uses: coverallsapp/github-action@release/v2 | |
with: | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
flag-name: ${{ matrix.os }} | |
path-to-lcov: coverage.lcov | |
parallel: true | |
python-package: | |
name: Python package | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [macos-12, windows-2022, ubuntu-22.04] | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: "3.10" | |
cache: "pip" | |
- name: Install hatch | |
run: pip install hatch | |
- name: Test build python package | |
run: hatch build | |
briefcase-build: | |
name: Briefcase build | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [macos-12, windows-2022, ubuntu-22.04] | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: "3.10" | |
cache: "pip" | |
- name: Install hatch | |
run: pip install hatch | |
- name: Test build briefcase package | |
shell: bash -l {0} | |
run: hatch run bundle --dev | |
- name: Print briefcase log in case of error | |
if: failure() | |
shell: bash -l {0} | |
run: | | |
(cat logs/briefcase*) || true | |
find build/normcap || true | |
- name: Set current date as env variable | |
shell: bash -l {0} | |
run: echo "NOW=$(date +'%Y-%m-%dT%H:%M:%S')" >> $GITHUB_ENV | |
- name: Draft internal release | |
uses: ncipollo/release-action@v1 | |
if: github.repository_owner == 'dynobo' | |
with: | |
name: Internal | |
body: "Only for internal tests. Should not be published. [${{ env.NOW }}]" | |
artifacts: "*/*.+(dmg|AppImage|msi|zip)" | |
artifactErrorsFailBuild: false | |
allowUpdates: true | |
draft: true | |
prerelease: true | |
token: ${{ secrets.GITHUB_TOKEN }} | |
tag: "internal" | |
coveralls: | |
name: Upload coverage | |
needs: test | |
if: github.repository_owner == 'dynobo' | |
runs-on: ubuntu-latest | |
steps: | |
- name: Coveralls Finished | |
uses: coverallsapp/github-action@release/v2 | |
with: | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
parallel-finished: true | |
codeql: | |
name: CodeQL | |
runs-on: ubuntu-latest | |
permissions: | |
actions: read | |
contents: read | |
security-events: write | |
strategy: | |
fail-fast: false | |
matrix: | |
language: ["javascript", "python"] | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Initialize CodeQL | |
uses: github/codeql-action/init@v3 | |
with: | |
languages: ${{ matrix.language }} | |
queries: security-extended | |
- name: Autobuild | |
uses: github/codeql-action/autobuild@v3 | |
- name: Perform CodeQL Analysis | |
uses: github/codeql-action/analyze@v3 |