Test CI for PR #13
Workflow file for this run
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: CI | |
on: | |
push: | |
paths-ignore: | |
- '*.rst' | |
- NEWS | |
pull_request: | |
branches: master | |
paths-ignore: | |
- '*.rst' | |
- NEWS | |
# Allows you to run this workflow manually from the Actions tab | |
workflow_dispatch: | |
##env: | |
jobs: | |
build: | |
strategy: | |
matrix: | |
include: | |
- name: "C distribution build" | |
CFLAGS_DIST_BUILD: '-O2 -Wall -W -std=c90 -Wdeclaration-after-statement -Werror' | |
- name: "C distribution build (clang)" | |
CFLAGS_DIST_BUILD: '-O2 -Wall -W -std=c90 -Wdeclaration-after-statement -Werror' | |
CC: clang | |
- name: "C" | |
c_tests: y | |
CFLAGS: '-O2 -Wall -W -std=c99 -Werror' | |
- name: "C (clang)" | |
c_tests: y | |
CFLAGS: '-O2 -Wall -W -std=c99 -Werror' | |
CC: clang | |
- name: java | |
JAVA: java | |
JAVAC: javac | |
- name: go_old | |
os: 'ubuntu-20.04' | |
# 22.04: golang-1.13 17 18 20 | |
apt_packages: 'golang-1.13' | |
GO: go | |
- name: go_new | |
# 22.04: golang-1.13 17 18 20 | |
apt_packages: 'golang-1.20' | |
GO: go | |
# - language: node_js | |
# node_js: "node" | |
# env: NODE=node | |
# - language: rust | |
# rust: | |
# - stable | |
# - beta | |
# dist: bionic | |
# env: RUST=rust | |
# - language: csharp | |
# env: MCS=mcs | |
# dist: bionic | |
- name: Pascal | |
FPC: fpc | |
apt_packages: 'fpc' | |
# # The pure Python versions run slowly so we need to thin the testdata | |
# # for languages such as Arabic where there's a lot, or else the build | |
# # hits the travis time limit. With pypy, it's enough faster than we | |
# # can run the full tests. | |
# - language: python | |
# python: "3.9" | |
# env: PYTHON=python THIN_FACTOR=10 | |
# - language: python | |
# python: "3.7" | |
# env: PYTHON=python THIN_FACTOR=10 | |
# - language: python | |
# python: "3.6" | |
# env: PYTHON=python THIN_FACTOR=10 | |
# - language: python | |
# python: "pypy3.7-7.3.5" | |
# env: PYTHON=python | |
# dist: bionic | |
- name: Ada | |
gprbuild: gprbuild | |
apt_packages: 'gnat gprbuild' | |
# - os: windows | |
# language: c | |
# env: c_tests=y MAKE=mingw32-make | |
# - os: windows | |
# language: go | |
# env: GO=go MAKE=mingw32-make | |
fail-fast: false | |
runs-on: ${{ matrix.os || 'ubuntu-latest' }} | |
#env: | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Checkout data | |
run: | | |
# Try to check out a branch of the same name from the snowball-data | |
# repo sibling of this snowball repo, so that PRs requiring changes to | |
# both can be CI tested easily. | |
# | |
# If that fails, just use the standard snowball-data repo's default | |
# branch. | |
git status | |
git remote -v | |
env|sort | |
GH_BRANCH=${GITHUB_HEAD_REF:-${GITHUB_REF_NAME}} | |
GH_REPO_OWNER=${GITHUB_REPOSITORY_OWNER:-${GITHUB_REPOSITORY%%/*}} | |
GH_REPO_URL=https://github.com/$GH_REPO_OWNER/snowball-data.git | |
echo "Trying branch $GH_BRANCH from $GH_REPO_URL" | |
git clone --depth=1 -b "$GH_BRANCH" "$GH_REPO_URL" || { echo "Trying default branch from snowball/snowball-data"; git clone --depth=1 https://github.com/snowballstem/snowball-data.git; } | |
- name: Install CCache | |
uses: hendrikmuhs/ccache-action@v1 | |
with: | |
key: ${{ matrix.name }} | |
- name: Install packages | |
if: matrix.apt_packages | |
run: sudo apt-get install -y ${{ matrix.apt_packages }} | |
- name: Build | |
run: | | |
export CC=${{ matrix.CC || 'gcc' }} | |
export MAKE=${{ matrix.MAKE || 'make' }} | |
$MAKE CC="$CC" | |
test -z "${{ matrix.CFLAGS_DIST_BUILD }}" || { pip install setuptools && $MAKE dist && mkdir tmp && cd tmp && tar xf ../dist/libstemmer_c-*.tar.gz && cd libstemmer_c-* && $MAKE CFLAGS="${{ matrix.CFLAGS_DIST_BUILD }}" ; } | |
test -z "${{ matrix.c_tests }}" || $MAKE check CC="$CC" STEMMING_DATA=snowball-data | |
test -z "${{ matrix.PYTHON }}" || $MAKE check_python python="${{ matrix.PYTHON }}" STEMMING_DATA=snowball-data | |
test -z "${{ matrix.JAVA }}" -o -z "${{ matrix.JAVAC }}" || $MAKE check_java STEMMING_DATA=snowball-data JAVA="${{ matrix.JAVA }}" JAVAC="${{ matrix.JAVAC }}" | |
test -z "${{ matrix.MCS }}" || $MAKE check_csharp MCS="${{ matrix.MCS }}" STEMMING_DATA=snowball-data | |
test -z "${{ matrix.NODE }}" || $MAKE check_js STEMMING_DATA=snowball-data NODE="${{ matrix.NODE }}" | |
test -z "${{ matrix.RUST }}" || $MAKE check_rust STEMMING_DATA=snowball-data RUST="${{ matrix.RUST }}" | |
test -z "${{ matrix.GO }}" || $MAKE check_go STEMMING_DATA=snowball-data GO="${{ matrix.GO }}" | |
test -z "${{ matrix.FPC }}" || $MAKE check_pascal STEMMING_DATA=snowball-data FPC="${{ matrix.FPC }}" | |
test -z "${{ matrix.gprbuild }}" || $MAKE check_ada STEMMING_DATA=snowball-data gprbuild="${{ matrix.gprbuild }}" |