Skip to content

Bump actions/download-artifact from 3 to 4.1.7 in /.github/workflows #372

Bump actions/download-artifact from 3 to 4.1.7 in /.github/workflows

Bump actions/download-artifact from 3 to 4.1.7 in /.github/workflows #372

Workflow file for this run

name: CI
on:
push:
branches:
- master
tags:
- v*
pull_request:
branches:
- master
jobs:
build-and-test-cpp:
name: Build and test C++ library on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest]
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- name: Build and install
if: startsWith(matrix.os, 'ubuntu')
run: |
cmake -DBUILD_TESTS=ON -DCMAKE_INSTALL_PREFIX=$PWD/install .
make install
- name: Build and install
if: startsWith(matrix.os, 'macos')
run: |
cmake -DBUILD_TESTS=ON -DCMAKE_INSTALL_PREFIX=$PWD/install -DICU_ROOT=/usr/local/opt/icu4c/ .
make install
- name: Test
run: |
test/onmt_tokenizer_test test/data
check-python-style:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python 3.8
uses: actions/setup-python@v4
with:
python-version: 3.8
- name: Install dependencies
run: |
python -m pip install black==22.* flake8==3.9.* isort==5.*
- name: Check code format with Black
working-directory: bindings/python
run: |
black --check .
- name: Check imports order with isort
working-directory: bindings/python
run: |
isort --check-only .
- name: Check code style with Flake8
working-directory: bindings/python
if: ${{ always() }}
run: |
flake8 .
build-and-test-python-wheels:
name: Build and test wheels on ${{ matrix.os }} for ${{ matrix.arch }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-20.04, macos-11, windows-2019]
arch: [auto64]
include:
- os: ubuntu-20.04
arch: aarch64
- os: macos-11
arch: arm64
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- uses: docker/setup-qemu-action@v2
if: ${{ matrix.arch == 'aarch64' }}
name: Set up QEMU
- name: Build wheels
uses: pypa/[email protected]
with:
package-dir: bindings/python
output-dir: wheelhouse
env:
CIBW_ENVIRONMENT_WINDOWS: TOKENIZER_ROOT='${{ github.workspace }}\install'
CIBW_BEFORE_ALL: bindings/python/tools/prepare_build_environment.sh
CIBW_BEFORE_ALL_WINDOWS: bash bindings/python/tools/prepare_build_environment_windows.sh
CIBW_BEFORE_BUILD: pip install pybind11==2.10.1
CIBW_MANYLINUX_X86_64_IMAGE: manylinux2014
CIBW_MANYLINUX_AARCH64_IMAGE: manylinux2014
CIBW_TEST_COMMAND: pytest {project}/bindings/python/test/test.py
CIBW_TEST_REQUIRES: pytest
CIBW_ARCHS: ${{ matrix.arch }}
CIBW_SKIP: pp* *-musllinux_*
CIBW_TEST_SKIP: "*-macosx_arm64"
- name: Upload Python wheels
uses: actions/upload-artifact@v3
with:
name: python-wheels
path: wheelhouse
publish-python-wheels-on-pypi:
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
needs: [build-and-test-cpp, build-and-test-python-wheels]
runs-on: ubuntu-latest
steps:
- name: Download Python wheels
uses: actions/[email protected]
with:
name: python-wheels
- name: Publish Python wheels to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
user: __token__
password: ${{ secrets.PYPI_API_TOKEN }}
packages_dir: .