summaryrefslogtreecommitdiff
path: root/.github/workflows
diff options
context:
space:
mode:
authorkrangelov <kr.angelov@gmail.com>2021-01-20 20:16:26 +0100
committerkrangelov <kr.angelov@gmail.com>2021-01-20 20:16:26 +0100
commit04f6f113f07712a35128a924558dac9a3f83a822 (patch)
tree6f60a5dd879f17fd7a6b0c9c5de7daf1df7e374f /.github/workflows
parentbac619f025e8b3680e93cc64eddd9cebfc350249 (diff)
parentd77921005a429406398167c713969c6d807e56fa (diff)
Merge branch 'master' of https://github.com/GrammaticalFramework/gf-core
Diffstat (limited to '.github/workflows')
-rw-r--r--.github/workflows/build-all-versions.yml8
-rw-r--r--.github/workflows/build-binary-packages.yml185
-rw-r--r--.github/workflows/build-debian-package.yml49
-rw-r--r--.github/workflows/build-python-package.yml12
4 files changed, 197 insertions, 57 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-binary-packages.yml b/.github/workflows/build-binary-packages.yml
new file mode 100644
index 000000000..810fa1352
--- /dev/null
+++ b/.github/workflows/build-binary-packages.yml
@@ -0,0 +1,185 @@
+name: Build Binary Packages
+
+on:
+ workflow_dispatch:
+ release:
+
+jobs:
+
+# ---
+
+ ubuntu:
+ name: Build Ubuntu package
+ runs-on: ubuntu-18.04
+ # strategy:
+ # matrix:
+ # ghc: ["8.6.5"]
+ # cabal: ["2.4"]
+
+ steps:
+ - uses: actions/checkout@v2
+
+ # Note: `haskell-platform` is listed as requirement in debian/control,
+ # which is why it's installed using apt instead of the Setup Haskell action.
+
+ # - 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: |
+ sudo apt-get update
+ sudo apt-get install -y \
+ make \
+ dpkg-dev \
+ debhelper \
+ haskell-platform \
+ libghc-json-dev \
+ python-dev \
+ default-jdk \
+ libtool-bin
+
+ - name: Build package
+ run: |
+ make deb
+
+ - name: Copy package
+ run: |
+ cp ../gf_*.deb dist/
+
+ - name: Upload artifact
+ uses: actions/upload-artifact@v2
+ with:
+ name: gf-${{ github.sha }}-ubuntu
+ path: dist/gf_*.deb
+ if-no-files-found: error
+
+# ---
+
+ macos:
+ name: Build macOS package
+ runs-on: macos-10.15
+ strategy:
+ matrix:
+ 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 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
+
+# ---
+
+ windows:
+ name: Build Windows package
+ runs-on: windows-2019
+ strategy:
+ matrix:
+ 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
+ python-devel
+
+ - name: Prepare dist folder
+ shell: msys2 {0}
+ run: |
+ mkdir /c/tmp-dist
+ mkdir /c/tmp-dist/c
+ mkdir /c/tmp-dist/java
+ mkdir /c/tmp-dist/python
+
+ - 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/c
+ cp /mingw64/bin/libgu-0.dll /c/tmp-dist/c
+
+ - 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/java/jpgf.dll
+ cp jpgf.jar /c/tmp-dist/java
+
+ - name: Build Python bindings
+ shell: msys2 {0}
+ env:
+ EXTRA_INCLUDE_DIRS: /mingw64/include
+ EXTRA_LIB_DIRS: /mingw64/lib
+ run: |
+ cd src/runtime/python
+ python setup.py build
+ python setup.py install
+ cp /usr/lib/python3.8/site-packages/pgf* /c/tmp-dist/python
+
+ - name: Setup Haskell
+ uses: actions/setup-haskell@v1
+ id: setup-haskell-cabal
+ with:
+ ghc-version: ${{ matrix.ghc }}
+ cabal-version: ${{ matrix.cabal }}
+
+ - name: Install Haskell build tools
+ run: |
+ cabal install alex happy
+
+ - 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
diff --git a/.github/workflows/build-debian-package.yml b/.github/workflows/build-debian-package.yml
deleted file mode 100644
index 09719aaa8..000000000
--- a/.github/workflows/build-debian-package.yml
+++ /dev/null
@@ -1,49 +0,0 @@
-name: Build Debian Package
-
-on: [push, pull_request]
-
-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
-
- - name: Install build tools
- run: |
- sudo apt update
- sudo apt install -y \
- make \
- dpkg-dev \
- debhelper \
- haskell-platform \
- 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
-
- - name: Build Debian package
- run: |
- make deb
-
- - name: Copy packages
- run: |
- mkdir debian/dist
- cp ../gf_*.deb debian/dist/
-
- - uses: actions/upload-artifact@v2
- with:
- path: debian/dist
diff --git a/.github/workflows/build-python-package.yml b/.github/workflows/build-python-package.yml
index 45e94b853..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
@@ -21,7 +25,7 @@ jobs:
- name: Install cibuildwheel
run: |
- python -m pip install cibuildwheel==1.4.2
+ python -m pip install git+https://github.com/joerick/cibuildwheel.git@master
- name: Install build tools for OSX
if: startsWith(matrix.os, 'macos')
@@ -69,7 +73,7 @@ jobs:
needs: [build_wheels, build_sdist]
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/master' && github.event_name == 'push'
-
+
steps:
- uses: actions/checkout@v2