mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-20 02:09:32 -06:00
264 lines
5.9 KiB
YAML
264 lines
5.9 KiB
YAML
name: Build majestic runtime
|
|
|
|
on: push
|
|
|
|
env:
|
|
LD_LIBRARY_PATH: /usr/local/lib
|
|
|
|
jobs:
|
|
|
|
ubuntu-runtime:
|
|
name: Runtime (Ubuntu)
|
|
runs-on: ubuntu-20.04
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- name: Build runtime
|
|
working-directory: ./src/runtime/c
|
|
run: |
|
|
autoreconf -i
|
|
./configure
|
|
make
|
|
sudo make install
|
|
|
|
- name: Upload artifact
|
|
uses: actions/upload-artifact@master
|
|
with:
|
|
name: libpgf-ubuntu
|
|
path: |
|
|
/usr/local/lib/libpgf*
|
|
/usr/local/include/pgf
|
|
|
|
ubuntu-haskell:
|
|
name: Haskell (Ubuntu)
|
|
runs-on: ubuntu-20.04
|
|
needs: ubuntu-runtime
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Download artifact
|
|
uses: actions/download-artifact@master
|
|
with:
|
|
name: libpgf-ubuntu
|
|
- run: |
|
|
sudo mv lib/* /usr/local/lib/
|
|
sudo mv include/* /usr/local/include/
|
|
|
|
- name: Setup Haskell
|
|
uses: haskell/actions/setup@v1
|
|
|
|
- name: Build & run testsuite
|
|
working-directory: ./src/runtime/haskell
|
|
run: |
|
|
cabal test --extra-lib-dirs=/usr/local/lib
|
|
|
|
ubuntu-python:
|
|
name: Python (Ubuntu)
|
|
runs-on: ubuntu-20.04
|
|
needs: ubuntu-runtime
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Download artifact
|
|
uses: actions/download-artifact@master
|
|
with:
|
|
name: libpgf-ubuntu
|
|
- run: |
|
|
sudo mv lib/* /usr/local/lib/
|
|
sudo mv include/* /usr/local/include/
|
|
|
|
- name: Install bindings
|
|
working-directory: ./src/runtime/python
|
|
run: |
|
|
python setup.py build
|
|
sudo python setup.py install
|
|
|
|
- name: Run testsuite
|
|
working-directory: ./src/runtime/python
|
|
run: |
|
|
pip install pytest
|
|
pytest
|
|
|
|
ubuntu-javascript:
|
|
name: JavaScript (Ubuntu)
|
|
runs-on: ubuntu-20.04
|
|
needs: ubuntu-runtime
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Download artifact
|
|
uses: actions/download-artifact@master
|
|
with:
|
|
name: libpgf-ubuntu
|
|
- run: |
|
|
sudo mv lib/* /usr/local/lib/
|
|
sudo mv include/* /usr/local/include/
|
|
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@v2
|
|
with:
|
|
node-version: '12'
|
|
|
|
- name: Install dependencies
|
|
working-directory: ./src/runtime/javascript
|
|
run: |
|
|
npm ci
|
|
|
|
- name: Run testsuite
|
|
working-directory: ./src/runtime/javascript
|
|
run: |
|
|
npm run test
|
|
|
|
# ----------------------------------------------------------------------------
|
|
|
|
macos-runtime:
|
|
name: Runtime (macOS)
|
|
runs-on: macOS-11
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- name: Install build tools
|
|
run: |
|
|
brew install \
|
|
autoconf \
|
|
automake \
|
|
libtool \
|
|
|
|
- name: Build runtime
|
|
working-directory: ./src/runtime/c
|
|
run: |
|
|
glibtoolize
|
|
autoreconf -i
|
|
./configure
|
|
make
|
|
sudo make install
|
|
|
|
- name: Upload artifact
|
|
uses: actions/upload-artifact@master
|
|
with:
|
|
name: libpgf-macos
|
|
path: |
|
|
/usr/local/lib/libpgf*
|
|
/usr/local/include/pgf
|
|
|
|
macos-haskell:
|
|
name: Haskell (macOS)
|
|
runs-on: macOS-11
|
|
needs: macos-runtime
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Download artifact
|
|
uses: actions/download-artifact@master
|
|
with:
|
|
name: libpgf-macos
|
|
- run: |
|
|
sudo mv lib/* /usr/local/lib/
|
|
sudo mv include/* /usr/local/include/
|
|
|
|
- name: Setup Haskell
|
|
uses: haskell/actions/setup@v1
|
|
|
|
- name: Build & run testsuite
|
|
working-directory: ./src/runtime/haskell
|
|
run: |
|
|
cabal test --extra-lib-dirs=/usr/local/lib
|
|
|
|
macos-python:
|
|
name: Python (macOS)
|
|
runs-on: macOS-11
|
|
needs: macos-runtime
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Download artifact
|
|
uses: actions/download-artifact@master
|
|
with:
|
|
name: libpgf-macos
|
|
- run: |
|
|
sudo mv lib/* /usr/local/lib/
|
|
sudo mv include/* /usr/local/include/
|
|
|
|
- name: Install bindings
|
|
working-directory: ./src/runtime/python
|
|
run: |
|
|
python3 setup.py build
|
|
sudo python3 setup.py install
|
|
|
|
- name: Run testsuite
|
|
working-directory: ./src/runtime/python
|
|
run: |
|
|
pip3 install pytest
|
|
pytest
|
|
|
|
macos-javascript:
|
|
name: JavaScript (macOS)
|
|
runs-on: macOS-11
|
|
needs: macos-runtime
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Download artifact
|
|
uses: actions/download-artifact@master
|
|
with:
|
|
name: libpgf-macos
|
|
- run: |
|
|
sudo mv lib/* /usr/local/lib/
|
|
sudo mv include/* /usr/local/include/
|
|
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@v2
|
|
with:
|
|
node-version: '12'
|
|
|
|
- name: Install dependencies
|
|
working-directory: ./src/runtime/javascript
|
|
run: |
|
|
npm ci
|
|
|
|
- name: Run testsuite
|
|
working-directory: ./src/runtime/javascript
|
|
run: |
|
|
npm run test
|
|
|
|
# ----------------------------------------------------------------------------
|
|
|
|
windows-runtime:
|
|
name: Runtime (Windows)
|
|
runs-on: windows-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- name: Setup MSYS2
|
|
uses: msys2/setup-msys2@v2
|
|
with:
|
|
msystem: MINGW64
|
|
install: >-
|
|
base-devel
|
|
mingw-w64-x86_64-toolchain
|
|
mingw-w64-x86_64-libtool
|
|
|
|
- name: Build runtime
|
|
shell: msys2 {0}
|
|
working-directory: ./src/runtime/c
|
|
run: |
|
|
autoreconf -i
|
|
./configure
|
|
make
|
|
make install
|
|
|
|
- name: Upload artifact
|
|
uses: actions/upload-artifact@master
|
|
with:
|
|
name: libpgf-windows
|
|
path: |
|
|
${{runner.temp}}/msys64/mingw64/bin/libpgf*
|
|
${{runner.temp}}/msys64/mingw64/bin/libgcc_s_seh-1.dll
|
|
${{runner.temp}}/msys64/mingw64/bin/libstdc++-6.dll
|
|
${{runner.temp}}/msys64/mingw64/bin/libwinpthread-1.dll
|
|
${{runner.temp}}/msys64/mingw64/lib/libpgf*
|
|
${{runner.temp}}/msys64/mingw64/include/pgf
|