blob: 90ee9e0fac58dfbc43baa0ade9fe6fd4e0886b5e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
|
name: Release candidate
on:
push:
branches:
- 'rc/**'
jobs:
linux:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Create linux package
run: |
make debpkg
mkdir linux-release-candidate
cp linux/artifacts/*.deb linux-release-candidate/
cp linux/artifacts/*.tar.gz linux-release-candidate/
- uses: actions/upload-artifact@master
with:
name: linux-release-candidate
path: linux-release-candidate
windows:
runs-on: windows-latest
strategy:
fail-fast: true
matrix:
versions:
- osarch: "windows-x86_64"
arch: "x64"
choco_opts: ""
stack_opts: "-j1"
- osarch: "windows-i386"
arch: "x86"
choco_opts: "--x86"
stack_opts: "-j1 --flag hslua:lua_32bits"
steps:
- uses: actions/checkout@v1
- name: Install stack
shell: cmd
run: |
choco install haskell-stack ${{ matrix.versions.choco_opts }}
- name: Install dependencies
run: |
stack update
stack build ${{ matrix.versions.stack_opts }} --dependencies-only pandoc pandoc-citeproc
- name: Create windows package
shell: cmd
run: |
for /f %%a in ('powershell -Command "Get-Date -format yyyy-MM-dd"') do set THEDATE=%%a
stack build ${{ matrix.versions.stack_opts }}pandoc pandoc-citeproc
@set WINDOWS=%CD%\windows
forfiles /P .\.stack-work\install /M pandoc*.exe /S /C "cmd /C echo @path && echo %%WINDOWS%% && copy @path %%WINDOWS%%"
stack exec pandoc -- -s --toc MANUAL.txt -o windows\MANUAL.html
stack exec pandoc -- -s COPYING.md -t rtf -o windows\COPYING.rtf
copy COPYRIGHT windows\COPYRIGHT.txt
cd windows
for /f "tokens=1-2 delims= " %%a in ('stack exec pandoc -- --version') do (
@set VERSION=%%b
goto :next
)
:next
if "%VERSION%" == "" (
echo Error: could not determine version number.
exit /b 1
)
echo Detected version %VERSION%
echo Creating msi...
dir
@set WIXBIN="c:\Program Files (x86)\WiX Toolset v3.11\bin"
@set WORKDIR=%CD%
echo Running candle...
%WIXBIN%\candle -arch ${{ matrix.versions.arch }} -dVERSION=%VERSION% -dBINPATH=%WORKDIR% *.wxs -out wixobj\
if %errorlevel% neq 0 exit /b %errorlevel%
echo Running light...
%WIXBIN%\light -sw1076 -ext WixUIExtension -ext WixUtilExtension -cultures:en-us -loc Pandoc-en-us.wxl -out %WORKDIR%\pandoc-%VERSION%-${{ matrix.versions.osarch }}-UNSIGNED.msi wixobj\*.wixobj
7z a "pandoc-%VERSION%-${{ matrix.versions.osarch }}.zip" pandoc.exe pandoc-citeproc.exe MANUAL.html COPYING.rtf
cd ..
mkdir windows-release-candidate
copy windows\pandoc-%VERSION%-${{ matrix.versions.osarch }}-UNSIGNED.msi windows-release-candidate
copy windows\pandoc-%VERSION%-${{ matrix.versions.osarch }}.zip windows-release-candidate
copy windows\Makefile windows-release-candidate
- uses: actions/upload-artifact@master
with:
name: windows-release-candidate
path: windows-release-candidate
macos:
runs-on: macOS-latest
steps:
- uses: actions/checkout@v1
- name: Install stack
run: |
curl -L https://get.haskellstack.org/stable/osx-x86_64.tar.gz -o stack.tar.gz
tar xzvf stack.tar.gz --strip-components=1 'stack*/stack'
- name: Install dependencies
run: |
./stack update
./stack build --dependencies-only pandoc pandoc-citeproc
- name: Create macOS package
run: |
export VERSION=$(grep '^[Vv]ersion:' pandoc.cabal | awk '{print $$2;}')
export BASEDIR=$(pwd)
export ARTIFACTS=${BASEDIR}/macos-release-candidate
export DIST=${BASEDIR}/macos_package
export RESOURCES=${ARTIFACTS}/Resources
export ROOT=${DIST}/pandoc
export DEST=${ROOT}/usr/local
export ME=$(whoami)
export BASE=pandoc-$VERSION
mkdir -p ${ARTIFACTS}
mkdir -p ${DIST}
mkdir -p ${RESOURCES}
mkdir -p ${DEST}/bin
mkdir -p ${DEST}/share/man/man1
./stack build pandoc pandoc-citeproc
for f in $(find .stack-work/install -name 'pandoc*' -perm +001 -type f); do cp $f ${DEST}/bin/; done
strip ${DEST}/bin/pandoc
strip ${DEST}/bin/pandoc-citeproc
${DEST}/bin/pandoc -f markdown-smart -t man -s \
--template man/pandoc.1.template --lua-filter man/manfilter.lua \
--variable version="pandoc ${VERSION}" \
-o ${DEST}/share/man/man1/pandoc.1
${DEST}/bin/pandoc-citeproc --man > \
$DEST/share/man/man1/pandoc-citeproc.1
${DEST}/bin/pandoc -t html5 -s COPYING.md -Vpagetitle=License \
-o ${RESOURCES}/license.html
sed -e "s/PANDOCVERSION/${VERSION}/" macos/distribution.xml.in > ${ARTIFACTS}/distribution.xml
chown -R $ME:staff ${DIST}
echo Creating pkg...
pkgbuild --root $ROOT --identifier net.johnmacfarlane.pandoc --version $VERSION --ownership recommended ${ARTIFACTS}/pandoc.pkg
echo Creating zip...
cd ${DEST}
cd ..
mv local ${BASE}
zip -r ${ARTIFACTS}/${BASE}-macOS.zip ${BASE}
echo -e "${BASE}-macOS.pkg: pandoc.pkg\n\tproductbuild --distribution distribution.xml --resources Resources --package-path $< --version ${VERSION} --sign 'Developer ID Installer: John Macfarlane' -o \$@\n" > ${ARTIFACTS}/Makefile
- uses: actions/upload-artifact@master
with:
name: macos-release-candidate
path: macos-release-candidate
|