Files
gf-core/.github/workflows/build-majestic.yml
Krasimir Angelov 3f39719e65 fourth attempt
2023-01-25 10:25:33 +01:00

278 lines
6.4 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@v3
- 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@v3
- 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@v2
with:
ghc-version: 8
- name: 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@v3
- 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@v3
# - 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@v3
- 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@v3
- 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@v2
with:
ghc-version: 8
- 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
env:
EXTRA_INCLUDE_DIRS: /usr/local/include
EXTRA_LIB_DIRS: /usr/local/lib
steps:
- uses: actions/checkout@v3
- 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 cibuildwheel
run: |
python3 -m pip install git+https://github.com/joerick/cibuildwheel.git@main
- name: Install bindings
env:
CIBW_TEST_REQUIRES: pytest
CIBW_TEST_COMMAND: "pytest {project}/src/runtime/python/tests"
run: |
python3 -m cibuildwheel src/runtime/python --output-dir wheelhouse
- uses: actions/upload-artifact@v2
with:
name: python-macos
path: ./wheelhouse
# macos-javascript:
# name: JavaScript (macOS)
# runs-on: macOS-11
# needs: macos-runtime
#
# steps:
# - uses: actions/checkout@v3
# - 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@v3
- name: Setup MSYS2
uses: msys2/setup-msys2@v2
with:
msystem: MINGW64
install: >-
base-devel
autoconf
automake
libtool
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