aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/release-candidate.yml
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2019-10-04 22:46:26 -0700
committerJohn MacFarlane <jgm@berkeley.edu>2019-10-05 10:01:04 -0700
commitd40349d54137bf3a317fa5631a03e901d8f84d8d (patch)
tree120308f17a5961ebc03a5053eb3550767082533f /.github/workflows/release-candidate.yml
parentc1015abb4d53d53c8accd9e9b5d49ab4eb321ac4 (diff)
downloadpandoc-d40349d54137bf3a317fa5631a03e901d8f84d8d.tar.gz
Update release-candidate.yml for GitHub actions.
Adds builds for macos and for both 32- and 64-bit windows.
Diffstat (limited to '.github/workflows/release-candidate.yml')
-rw-r--r--.github/workflows/release-candidate.yml125
1 files changed, 82 insertions, 43 deletions
diff --git a/.github/workflows/release-candidate.yml b/.github/workflows/release-candidate.yml
index a1e99e5d7..b4b84b923 100644
--- a/.github/workflows/release-candidate.yml
+++ b/.github/workflows/release-candidate.yml
@@ -14,10 +14,13 @@ jobs:
- 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-artifacts
+ path: linux-release-candidate
windows:
@@ -25,31 +28,33 @@ jobs:
strategy:
fail-fast: true
matrix:
- - osarch: "windows-x86_64"
- arch: "x86"
- choco_opts: "--x86"
- stack_opts: ""
- - osarch: "windows-i386"
- arch: "x64"
- choco_opts: ""
- stack_opts: "--flag hslua:lua_32bits"
+ versions:
+ - osarch: "windows-x86_64"
+ arch: "x64"
+ choco_opts: ""
+ stack_opts: ""
+ - osarch: "windows-i386"
+ arch: "x86"
+ choco_opts: "--x86"
+ stack_opts: "--flag hslua:lua_32bits"
steps:
- uses: actions/checkout@v1
- name: Install stack
shell: cmd
run: |
- choco install haskell-stack ${{ matrix.choco_opts }}
+ choco install haskell-stack ${{ matrix.versions.choco_opts }}
- name: Install dependencies
run: |
stack update
- stack build ${{ matrix.stack_opts }} --dependencies-only pandoc pandoc-citeproc
- - name: Build artifacts
+ 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.stack_opts }}pandoc pandoc-citeproc
- forfiles /P .\.stack-work\install /M pandoc*.exe /S /C "cmd /C copy @path windows"
+ 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
@@ -65,43 +70,77 @@ jobs:
)
echo Detected version %VERSION%
echo Creating msi...
- candle -arch ${{ matrix.arch }} -dVERSION=%VERSION% -dBINPATH=%BINPATH% *.wxs -out wixobj\
+ 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%
- light -sw1076 -ext WixUIExtension -ext WixUtilExtension -cultures:en-us -loc Pandoc-en-us.wxl -out pandoc-%VERSION%-${{ matrix.osarch }}.msi wixobj\*.wixobj
+ 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 }}.msi wixobj\*.wixobj
cd ..
mkdir windows-release-candidate
- copy windows\pandoc-%VERSION%-${{ matrix.osarch }}.msi windows-release-candidate
+ copy windows\pandoc-%VERSION%-${{ matrix.versions.osarch }}.msi windows-release-candidate
- uses: actions/upload-artifact@master
with:
name: windows-release-candidate
path: windows-release-candidate
-# macos:
+ macos:
-# runs-on: macOS-latest
+ 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: Build artifacts
-# run: |
-# export ARTIFACTS=nightly-macos/pandoc-nightly-macos-$(date +%Y-%m-%d)
-# mkdir -p ${ARTIFACTS}
-# ./stack build pandoc pandoc-citeproc
-# for f in $(find .stack-work/install -name 'pandoc*' -perm +001 -type f); do cp $f ${ARTIFACTS}/; done
-# mv ${ARTIFACTS}/pandoc ${ARTIFACTS}/pandoc
-# mv ${ARTIFACTS}/pandoc-citeproc ${ARTIFACTS}/pandoc-citeproc
-# cp COPYRIGHT ${ARTIFACTS}/
-# echo "Built from ${GITHUB_SHA}" > ${ARTIFACTS}/README.nightly.txt
-# - uses: actions/upload-artifact@master
-# with:
-# name: nightly-macos
-# path: nightly-macos
+ 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