Skip to content

Test CI for PR

Test CI for PR #13

Workflow file for this run

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 }}"