summaryrefslogtreecommitdiff
path: root/.github/workflows
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows')
-rw-r--r--.github/workflows/build-all-versions.yml8
-rw-r--r--.github/workflows/build-debian-package.yml26
-rw-r--r--.github/workflows/build-macos-package.yml43
-rw-r--r--.github/workflows/build-python-package.yml8
-rw-r--r--.github/workflows/build-windows-package.yml89
5 files changed, 153 insertions, 21 deletions
diff --git a/.github/workflows/build-all-versions.yml b/.github/workflows/build-all-versions.yml
index 52db74850..df71f0ac0 100644
--- a/.github/workflows/build-all-versions.yml
+++ b/.github/workflows/build-all-versions.yml
@@ -13,16 +13,16 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
- os: [ubuntu-latest, macOS-latest, windows-latest]
+ os: [ubuntu-latest, macos-latest, windows-latest]
cabal: ["3.2"]
ghc:
- "8.6.5"
- "8.8.3"
- "8.10.1"
exclude:
- - os: macOS-latest
+ - os: macos-latest
ghc: 8.8.3
- - os: macOS-latest
+ - os: macos-latest
ghc: 8.6.5
- os: windows-latest
ghc: 8.8.3
@@ -92,4 +92,4 @@ jobs:
# - name: Test
# run: |
- # stack test --system-ghc \ No newline at end of file
+ # stack test --system-ghc
diff --git a/.github/workflows/build-debian-package.yml b/.github/workflows/build-debian-package.yml
index 09719aaa8..02a0b3846 100644
--- a/.github/workflows/build-debian-package.yml
+++ b/.github/workflows/build-debian-package.yml
@@ -1,20 +1,20 @@
name: Build Debian Package
-on: [push, pull_request]
+on:
+ workflow_dispatch:
jobs:
build:
name: Build on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
- fail-fast: true
matrix:
os: [ubuntu-18.04]
env:
LC_ALL: C.UTF-8
steps:
- - uses: actions/checkout@v1
+ - uses: actions/checkout@v2
- name: Install build tools
run: |
@@ -27,23 +27,19 @@ jobs:
libghc-json-dev \
python-dev \
default-jdk \
- libtool-bin \
- txt2tags \
- pandoc
-
- - name: Checkout RGL
- run: |
- git clone --depth 1 https://github.com/GrammaticalFramework/gf-rgl.git ../gf-rgl
+ libtool-bin
- name: Build Debian package
run: |
make deb
- - name: Copy packages
+ - name: Copy package
run: |
- mkdir debian/dist
- cp ../gf_*.deb debian/dist/
+ cp ../gf_*.deb dist/
- - uses: actions/upload-artifact@v2
+ - name: Upload artifact
+ uses: actions/upload-artifact@v2
with:
- path: debian/dist
+ name: gf-${{ github.sha }}-debian
+ path: dist/gf_*.deb
+ if-no-files-found: error
diff --git a/.github/workflows/build-macos-package.yml b/.github/workflows/build-macos-package.yml
new file mode 100644
index 000000000..1ebf5dfa6
--- /dev/null
+++ b/.github/workflows/build-macos-package.yml
@@ -0,0 +1,43 @@
+name: Build macOS Package
+
+on:
+ workflow_dispatch:
+
+jobs:
+ build:
+ name: Build on ${{ matrix.os }}
+ runs-on: ${{ matrix.os }}
+ strategy:
+ matrix:
+ os: [macos-10.15]
+ ghc: ["8.6.5"]
+ cabal: ["2.4"]
+
+ steps:
+ - uses: actions/checkout@v2
+
+ - name: Setup Haskell
+ uses: actions/setup-haskell@v1
+ id: setup-haskell-cabal
+ with:
+ ghc-version: ${{ matrix.ghc }}
+ cabal-version: ${{ matrix.cabal }}
+
+ - name: Install build tools
+ run: |
+ brew install \
+ automake
+ cabal v1-install alex happy
+
+ - name: Build macOS package
+ run: |
+ sudo mkdir -p /Library/Java/Home
+ sudo ln -s /usr/local/opt/openjdk/include /Library/Java/Home/include
+ make pkg
+
+ - name: Upload artifact
+ uses: actions/upload-artifact@v2
+ with:
+ name: gf-${{ github.sha }}-macos
+ path: dist/gf-*.pkg
+ if-no-files-found: error
diff --git a/.github/workflows/build-python-package.yml b/.github/workflows/build-python-package.yml
index 921da9fb5..6326821dc 100644
--- a/.github/workflows/build-python-package.yml
+++ b/.github/workflows/build-python-package.yml
@@ -1,6 +1,10 @@
name: Build & Publish Python Package
-on: [push, pull_request]
+# Trigger the workflow on push or pull request, but only for the master branch
+on:
+ pull_request:
+ push:
+ branches: [master]
jobs:
build_wheels:
@@ -9,7 +13,7 @@ jobs:
strategy:
fail-fast: true
matrix:
- os: [ubuntu-18.04, macos-latest]
+ os: [ubuntu-18.04, macos-10.15]
steps:
- uses: actions/checkout@v1
diff --git a/.github/workflows/build-windows-package.yml b/.github/workflows/build-windows-package.yml
new file mode 100644
index 000000000..e56184840
--- /dev/null
+++ b/.github/workflows/build-windows-package.yml
@@ -0,0 +1,89 @@
+name: Build Windows Package
+
+on:
+ push: # testing until merged into master
+ workflow_dispatch:
+
+jobs:
+ build:
+ name: Build on ${{ matrix.os }}
+ runs-on: ${{ matrix.os }}
+ strategy:
+ matrix:
+ os: [windows-2019]
+ ghc: ["8.6.5"]
+ cabal: ["2.4"]
+
+ steps:
+ - uses: actions/checkout@v2
+
+ - name: Setup MSYS2
+ uses: msys2/setup-msys2@v2
+ with:
+ install: >-
+ base-devel
+ gcc
+
+ - name: Setup Haskell
+ uses: actions/setup-haskell@v1
+ id: setup-haskell-cabal
+ with:
+ ghc-version: ${{ matrix.ghc }}
+ cabal-version: ${{ matrix.cabal }}
+
+ - name: Install build tools
+ run: |
+ cabal install alex happy
+ pip install python-dev-tools
+
+ - name: Prepare dist folder
+ shell: msys2 {0}
+ run: |
+ mkdir /c/tmp-dist
+
+ - name: Build C runtime
+ shell: msys2 {0}
+ run: |
+ cd src/runtime/c
+ autoreconf -i
+ ./configure
+ make
+ make install
+ cp /mingw64/bin/libpgf-0.dll /c/tmp-dist
+ cp /mingw64/bin/libgu-0.dll /c/tmp-dist
+
+ - name: Build Java bindings
+ shell: msys2 {0}
+ run: |
+ export PATH="${PATH}:/c/Program Files/Java/jdk8u275-b01/bin"
+ cd src/runtime/java
+ make \
+ JNI_INCLUDES="-I \"/c/Program Files/Java/jdk8u275-b01/include\" -I \"/c/Program Files/Java/jdk8u275-b01/include/win32\" -I \"/mingw64/include\" -D__int64=int64_t" \
+ WINDOWS_LDFLAGS="-L\"/mingw64/lib\" -no-undefined"
+ make install
+ cp .libs//msys-jpgf-0.dll /c/tmp-dist/jpgf.dll
+ cp jpgf.jar /c/tmp-dist
+
+ - name: Build Python bindings
+ env:
+ EXTRA_INCLUDE_DIRS: /usr/local/include
+ EXTRA_LIB_DIRS: /usr/local/lib
+ run: |
+ cd src/runtime/python
+ python setup.py build
+ python setup.py install
+ # cp build/*/pgf.so /c/tmp-dist
+
+ - name: Build GF
+ run: |
+ cabal install --only-dependencies -fserver
+ cabal configure -fserver
+ cabal build
+ copy dist\build\gf\gf.exe C:\tmp-dist
+
+ - name: Upload artifact
+ uses: actions/upload-artifact@v2
+ with:
+ name: gf-${{ github.sha }}-windows
+ path: C:\tmp-dist\*
+ if-no-files-found: error