-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add build & deployment workflows (#4)
--------- Co-authored-by: Lucie Steiblé <[email protected]>
- Loading branch information
1 parent
5f53e7f
commit 7a04d4b
Showing
27 changed files
with
636,422 additions
and
112 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,169 @@ | ||
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 "FR_DICT_HOME=${lt_dir}/french-pos-dict" >> $GITHUB_ENV | ||
echo "LT_TMP_DIR=${lt_dir}/tmp" >> $GITHUB_ENV | ||
- uses: actions/checkout@v3 | ||
with: | ||
path: ${{ env.FR_DICT_HOME }} | ||
repository: ${{ env.GITHUB_ACTION_REPOSITORY }} | ||
fetch-depth: 0 | ||
submodules: recursive | ||
|
||
- 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.FR_DICT_HOME }} | ||
run: poetry check | ||
|
||
- name: Install Python dependencies | ||
working-directory: ${{ env.FR_DICT_HOME }} | ||
run: poetry install --no-root | ||
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.FR_DICT_HOME }} | ||
run: echo "FR_DICT_VERSION=test-$(date "+%Y-%m-%d")-$RANDOM" >> $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: Set up JDK 11 for x64 | ||
uses: actions/setup-java@v3 | ||
with: | ||
java-version: '11' | ||
distribution: 'temurin' | ||
architecture: x64 | ||
|
||
- name: Checkout LT | ||
uses: actions/checkout@v3 | ||
with: | ||
repository: languagetool-org/languagetool | ||
path: ${{ env.LT_HOME }} | ||
token: ${{ secrets.LT_OS_TOKEN }} | ||
|
||
- name: Cache LT Build | ||
uses: actions/cache@v2 | ||
with: | ||
path: | | ||
${{ env.LT_HOME }}/languagetool-standalone/target | ||
${{ env.LT_HOME }}/languagetool-dev/target | ||
~/.m2 | ||
key: lt-build-${{ hashFiles('lt/languagetool/pom.xml', 'lt/languagetool/**/*.java') }} | ||
id: lt-cache | ||
|
||
- name: Build LT | ||
if: steps.lt-cache.outputs.cache-hit != 'true' | ||
run: mvn clean install -DskipTests | ||
working-directory: ${{ env.LT_HOME }} | ||
|
||
- name: Build LT Dev | ||
if: steps.lt-cache.outputs.cache-hit != 'true' | ||
run: mvn clean compile assembly:single | ||
working-directory: ${{ env.LT_HOME }}/languagetool-dev | ||
|
||
- name: Build POS tagging dictionary | ||
working-directory: ${{ env.FR_DICT_HOME }} | ||
run: | | ||
poetry run python "dict_tools/scripts/build_tagger_dicts.py" \ | ||
--language fr \ | ||
--force-install \ | ||
--no-force-compile \ | ||
--spelling \ | ||
--install-version "${{ env.FR_DICT_VERSION }}" | ||
- name: Update dictionary version in LT pom.xml | ||
working-directory: ${{ env.FR_DICT_HOME }} | ||
run: | | ||
poetry run python "dict_tools/scripts/update_pom.py" \ | ||
--new-version "${{ env.FR_DICT_VERSION }}" \ | ||
--package-name "french-pos-dict" | ||
- name: Test LT | ||
working-directory: ${{ env.LT_HOME }} | ||
run: | | ||
mvn clean install -DskipTests | ||
./build.sh fr test | ||
- name: Archive Java src for deployment | ||
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: src | ||
path: ${{ env.PT_DICT_HOME }}/results/java-lt/src | ||
|
||
deploy: | ||
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') | ||
runs-on: ubuntu-latest | ||
needs: build | ||
steps: | ||
- name: Checkout repository | ||
uses: actions/checkout@v3 | ||
with: | ||
fetch-depth: 0 | ||
|
||
# Necessary since downloading artefacts with an 'overwrite' option is not supported | ||
- name: Empty out src directory | ||
run: rm -rf results/java-lt/src/* | ||
|
||
- name: Download artefact from upstream workflow | ||
uses: actions/download-artifact@v4 | ||
with: | ||
name: src | ||
path: results/java-lt/src/ | ||
|
||
- name: Set dictionary version | ||
# TODO: remove 'test-' prefix! | ||
run: echo "FR_DICT_VERSION=test-$(git describe --tags --abbrev=0 | sed 's/^v//g')" >> $GITHUB_ENV | ||
|
||
- name: Set up JDK 11 for x64 | ||
uses: actions/setup-java@v3 | ||
with: | ||
java-version: '11' | ||
distribution: 'temurin' | ||
architecture: x64 | ||
|
||
- name: Import GPG Key | ||
run: echo "${{ secrets.GPG_PRIVATE_KEY }}" | gpg --batch --import | ||
|
||
- name: Deploy to SonaType | ||
env: | ||
GPG_KEYNAME: ${{ secrets.GPG_KEYNAME }} | ||
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} | ||
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }} | ||
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }} | ||
working-directory: results/java-lt | ||
run: mvn clean deploy -P release -s ${{ github.workspace }}/results/java-lt/settings.xml |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,11 @@ | ||
target | ||
results/java-lt/target/ | ||
*.iml | ||
*.dict | ||
lexique-dicollecte* | ||
README_lexique.txt | ||
old-french-* | ||
*.dump | ||
*.dump | ||
results/lt/*.txt | ||
results/lt/*.dump | ||
results/lt/*.err | ||
results/java-lt/src/**/* |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
[submodule "dict_tools"] | ||
path = dict_tools | ||
url = https://[email protected]/languagetool-org/dictionary-tools.git |
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
File renamed without changes.
Oops, something went wrong.