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/ - uses: actions/setup-python@v3 name: Install Python with: python-version: '3.10' - 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@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