Skip to content

Commit 909539e

Browse files
authored
Merge pull request #51 from tfc/master
Split into servant-multipart-api, servant-multipart-client, servant-multipart
2 parents 2dec091 + 20d5b85 commit 909539e

File tree

24 files changed

+1159
-753
lines changed

24 files changed

+1159
-753
lines changed

.github/workflows/ghcjs.yml

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
name: CI
2+
3+
# Trigger the workflow on push or pull request, but only for the master branch
4+
on:
5+
pull_request:
6+
push:
7+
branches: [master]
8+
9+
jobs:
10+
ghcjs:
11+
name: ubuntu-18.04 / ghcjs 8.4
12+
runs-on: "ubuntu-18.04"
13+
14+
steps:
15+
- uses: actions/checkout@v2
16+
17+
- name: "Setup PATH"
18+
run: |
19+
echo "PATH=$HOME/.cabal/bin:/opt/ghcjs/8.4/bin:$PATH" >> $GITHUB_ENV
20+
21+
- name: Install ghcjs and cabal
22+
run: |
23+
# Default GitHub image dropped ppa:hvr/ghc, so we add it ourselves
24+
sudo add-apt-repository ppa:hvr/ghc
25+
sudo add-apt-repository ppa:hvr/ghcjs
26+
sudo apt-get update -y
27+
sudo apt-get install ghcjs-8.4
28+
sudo apt-get install cabal-install
29+
30+
# Override cabal.project with the lightweight GHCJS one
31+
cp cabal.ghcjs.project cabal.project
32+
cat cabal.project
33+
34+
- name: Cabal update and freeze
35+
run: |
36+
cabal v2-update
37+
cabal v2-freeze --ghcjs -w /opt/ghcjs/8.4/bin/ghcjs
38+
39+
- uses: actions/[email protected]
40+
name: Cache ~/.cabal/store and dist-newstyle
41+
with:
42+
path: |
43+
~/.cabal/store
44+
dist-newstyle
45+
key: ubuntu-18.04-ghcjs8.4-${{ hashFiles('cabal.project.freeze') }}
46+
restore-keys: |
47+
ubuntu-18.04-ghcjs8.4-
48+
49+
- name: Install cabal-plan
50+
run: |
51+
cabal v2-install -w /opt/ghc/8.4.4/bin/ghc --ignore-project cabal-plan --constraint='cabal-plan ^>=0.6.0.0' --constraint='cabal-plan +exe'
52+
53+
- name: Build
54+
run: |
55+
cabal v2-build --ghcjs -w /opt/ghcjs/8.4/bin/ghcjs --enable-tests --enable-benchmarks all
56+
57+
- name: Run tests
58+
run: |
59+
# cabal v2-test does not work with GHCJS
60+
# See: https://github.com/haskell/cabal/issues/6175
61+
#
62+
# This invokes cabal-plan to figure out test binaries, and invokes them with node.
63+
cabal-plan list-bins '*:test:*' | while read -r line; do testpkg=$(echo "$line" | perl -pe 's/:.*//'); testexe=$(echo "$line" | awk '{ print $2 }'); echo "testing $textexe in package $textpkg"; (cd "$(pkgdir $testpkg)" && nodejs "$testexe".jsexe/all.js); done

.github/workflows/haskell-ci.yml

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# This GitHub workflow config has been generated by a script via
22
#
3-
# haskell-ci 'github' '--config=cabal.haskell-ci' 'servant-multipart.cabal'
3+
# haskell-ci 'github' '--config=cabal.haskell-ci' 'cabal.project'
44
#
55
# To regenerate the script (for example after adjusting tested-with) run
66
#
@@ -10,7 +10,7 @@
1010
#
1111
# version: 0.12
1212
#
13-
# REGENDATA ("0.12",["github","--config=cabal.haskell-ci","servant-multipart.cabal"])
13+
# REGENDATA ("0.12",["github","--config=cabal.haskell-ci","cabal.project"])
1414
#
1515
name: Haskell-CI
1616
on:
@@ -122,7 +122,9 @@ jobs:
122122
- name: initial cabal.project for sdist
123123
run: |
124124
touch cabal.project
125-
echo "packages: $GITHUB_WORKSPACE/source/." >> cabal.project
125+
echo "packages: $GITHUB_WORKSPACE/source/servant-multipart" >> cabal.project
126+
echo "packages: $GITHUB_WORKSPACE/source/servant-multipart-api" >> cabal.project
127+
echo "packages: $GITHUB_WORKSPACE/source/servant-multipart-client" >> cabal.project
126128
cat cabal.project
127129
- name: sdist
128130
run: |
@@ -136,14 +138,24 @@ jobs:
136138
run: |
137139
PKGDIR_servant_multipart="$(find "$GITHUB_WORKSPACE/unpacked" -maxdepth 1 -type d -regex '.*/servant-multipart-[0-9.]*')"
138140
echo "PKGDIR_servant_multipart=${PKGDIR_servant_multipart}" >> $GITHUB_ENV
141+
PKGDIR_servant_multipart_api="$(find "$GITHUB_WORKSPACE/unpacked" -maxdepth 1 -type d -regex '.*/servant-multipart-api-[0-9.]*')"
142+
echo "PKGDIR_servant_multipart_api=${PKGDIR_servant_multipart_api}" >> $GITHUB_ENV
143+
PKGDIR_servant_multipart_client="$(find "$GITHUB_WORKSPACE/unpacked" -maxdepth 1 -type d -regex '.*/servant-multipart-client-[0-9.]*')"
144+
echo "PKGDIR_servant_multipart_client=${PKGDIR_servant_multipart_client}" >> $GITHUB_ENV
139145
touch cabal.project
140146
touch cabal.project.local
141147
echo "packages: ${PKGDIR_servant_multipart}" >> cabal.project
148+
echo "packages: ${PKGDIR_servant_multipart_api}" >> cabal.project
149+
echo "packages: ${PKGDIR_servant_multipart_client}" >> cabal.project
142150
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo "package servant-multipart" >> cabal.project ; fi
143151
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods" >> cabal.project ; fi
152+
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo "package servant-multipart-api" >> cabal.project ; fi
153+
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods" >> cabal.project ; fi
154+
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo "package servant-multipart-client" >> cabal.project ; fi
155+
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods" >> cabal.project ; fi
144156
cat >> cabal.project <<EOF
145157
EOF
146-
$HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: $_ installed\n" unless /^(servant-multipart)$/; }' >> cabal.project.local
158+
$HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: $_ installed\n" unless /^(servant-multipart|servant-multipart-api|servant-multipart-client)$/; }' >> cabal.project.local
147159
cat cabal.project
148160
cat cabal.project.local
149161
- name: dump install plan
@@ -173,6 +185,10 @@ jobs:
173185
run: |
174186
cd ${PKGDIR_servant_multipart} || false
175187
${CABAL} -vnormal check
188+
cd ${PKGDIR_servant_multipart_api} || false
189+
${CABAL} -vnormal check
190+
cd ${PKGDIR_servant_multipart_client} || false
191+
${CABAL} -vnormal check
176192
- name: haddock
177193
run: |
178194
$CABAL v2-haddock $ARG_COMPILER --with-haddock $HADDOCK $ARG_TESTS $ARG_BENCH all

cabal.ghcjs.project

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
packages:
2+
servant-multipart-api
3+
servant-multipart-client
4+
tests: True
5+
run-tests: True

cabal.project

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
packages:
2+
servant-multipart
3+
servant-multipart-api
4+
servant-multipart-client
5+
tests: True
6+
run-tests: True

servant-multipart-api/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
TODO
File renamed without changes.
File renamed without changes.
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
name: servant-multipart-api
2+
version: 0.12
3+
synopsis: multipart/form-data (e.g file upload) support for servant
4+
description:
5+
This package contains servant API types that support multiform upload, used by
6+
servant-multipart and servant-multipart-client for backend/client implementation.
7+
8+
homepage: https://github.com/haskell-servant/servant-multipart#readme
9+
license: BSD3
10+
license-file: LICENSE
11+
author: Alp Mestanogullari
12+
maintainer: [email protected]
13+
copyright: 2016-2017 Alp Mestanogullari, 2018-2019 Servant Contributors
14+
category: Web, Servant
15+
build-type: Simple
16+
cabal-version: >=1.10
17+
extra-source-files: CHANGELOG.md
18+
tested-with: GHC ==8.0.2 || ==8.2.2 || ==8.4.4 || ==8.6.5 || ==8.8.4 || ==8.10.4
19+
20+
library
21+
default-language: Haskell2010
22+
hs-source-dirs: src
23+
exposed-modules: Servant.Multipart.API
24+
25+
-- ghc boot libs
26+
build-depends:
27+
base >=4.9 && <5
28+
, bytestring >=0.10.8.1 && <0.11
29+
, text >=1.2.3.0 && <1.3
30+
, transformers >=0.5.2.0 && <0.6
31+
32+
-- other dependencies
33+
build-depends:
34+
servant >=0.16 && <0.19
35+
36+
source-repository head
37+
type: git
38+
location: https://github.com/haskell-servant/servant-multipart

0 commit comments

Comments
 (0)