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 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% @set WINDOWS=%CD%\windows @set RELEASE=%WINDOWS%\pandoc-%VERSION% mkdir %RELEASE% forfiles /P .\.stack-work\install /M pandoc*.exe /S /C "cmd /C echo @path && echo %%WINDOWS%% && copy @path %%RELEASE%%" stack exec pandoc -- -s --toc MANUAL.txt -o %RELEASE%\MANUAL.html stack exec pandoc -- -s COPYING.md -t rtf -o %RELEASE%\COPYING.rtf copy %RELEASE%\COPYING.rtf %WINDOWS% copy COPYRIGHT %RELEASE%\COPYRIGHT.txt cd windows 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=%RELEASE% *.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-%VERSION% 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 cp man/pandoc.1 ${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