Build LT ahead of dict compilation #19
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
name: Build | |
on: | |
push: | |
paths: | |
- "data/**" | |
- ".github/workflows/build.yml" | |
pull_request: | |
branches: | |
- "main" | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
python-version: ["3.11"] | |
steps: | |
- name: Set paths | |
run: | | |
lt_dir="${{ github.workspace }}/lt" | |
echo "LT_HOME=${lt_dir}/languagetool" >> $GITHUB_ENV | |
echo "PT_DICT_HOME=${lt_dir}/portuguese-pos-dict" >> $GITHUB_ENV | |
echo "LT_TMP_DIR=${lt_dir}/tmp" >> $GITHUB_ENV | |
echo "HUNSPELL_DIR=${lt_dir}/hunspell" >> $GITHUB_ENV | |
- uses: actions/checkout@v3 | |
with: | |
path: ${{ env.PT_DICT_HOME }} | |
repository: ${{ env.GITHUB_ACTION_REPOSITORY }} | |
fetch-depth: 0 | |
- name: Get number of CPU cores | |
uses: SimenB/github-actions-cpu-cores@v1 | |
id: cpu-cores | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v3 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Set up Poetry | |
uses: Gr1N/setup-poetry@v8 | |
- name: Check Poetry config | |
working-directory: ${{ env.PT_DICT_HOME }} | |
run: poetry check | |
- name: Install Python dependencies | |
working-directory: ${{ env.PT_DICT_HOME }} | |
run: poetry install | |
env: | |
POETRY_HTTP_BASIC_GITLAB_USERNAME: "lt-ai-package-registry" | |
POETRY_HTTP_BASIC_GITLAB_PASSWORD: ${{ secrets.POETRY_HTTP_BASIC_GITLAB_PASSWORD }} | |
- name: Set dictionary version | |
working-directory: ${{ env.PT_DICT_HOME }} | |
run: echo "PT_DICT_VERSION=$(git describe --tags --abbrev=0 | sed 's/^v//g')" >> $GITHUB_ENV | |
- name: Set up Perl | |
uses: shogo82148/actions-setup-perl@v1 | |
with: | |
perl-version: "5.38" | |
- name: Install Perl dependencies | |
run: cpan install "Switch" "Text::Unaccent::PurePerl" | |
- name: Checkout Hunspell | |
uses: actions/checkout@v3 | |
with: | |
repository: hunspell/hunspell | |
path: ${{ env.HUNSPELL_DIR }} | |
- name: Compile Hunspell | |
working-directory: ${{ env.HUNSPELL_DIR }} | |
run: | | |
sudo apt-get install autoconf automake autopoint libtool | |
autoreconf -vfi | |
./configure | |
make | |
sudo make install | |
sudo ldconfig | |
which unmunch | |
- name: Set up JDK 11 for x64 | |
uses: actions/setup-java@v3 | |
with: | |
java-version: '11' | |
distribution: 'temurin' | |
architecture: x64 | |
- name: Build POS tagging dictionary | |
working-directory: ${{ env.PT_DICT_HOME }} | |
run: | | |
bash ./pos_tagger_scripts/build-lt.sh | |
- name: Checkout LT | |
uses: actions/checkout@v3 | |
with: | |
repository: languagetool-org/languagetool | |
path: ${{ env.LT_HOME }} | |
token: ${{ secrets.LT_OS_TOKEN }} | |
- name: Build LT | |
working-directory: ${{ env.LT_HOME }} | |
run: mvn clean install -DskipTests | |
- name: Build spelling dictionaries | |
working-directory: ${{ env.PT_DICT_HOME }} | |
run: | | |
mkdir -p "${{ env.LT_TMP_DIR }}/compounds" | |
poetry run python "./pt_dict/scripts/build_spelling_dicts.py" \ | |
--tmp-dir ${{ env.LT_TMP_DIR }} | |
--max-threads ${{ steps.cpu-cores.outputs.count }} |