name: Release candidate on: workflow_dispatch permissions: contents: read jobs: windows: runs-on: windows-2022 strategy: fail-fast: true matrix: versions: - osarch: "windows-x86_64" arch: "x64" cabal_opts: '-fembed_data_files -fserver -flua' steps: - uses: actions/checkout@v6 - name: Install ghc run: | ghcup install ghc --set 9.10 ghcup install cabal --set 3.14 - name: Install dependencies run: | cabal update cabal build ${{ matrix.versions.cabal_opts }} --dependencies-only pandoc-cli - name: Create windows package shell: cmd run: | for /f %%a in ('powershell -Command "Get-Date -format yyyy-MM-dd"') do set THEDATE=%%a cabal build ${{ matrix.versions.cabal_opts }} pandoc-cli for /f "delims=" %%a in ('cabal list-bin ${{ matrix.versions.cabal_opts }} pandoc-cli') do set BINPATH=%%a echo BINPATH is %BINPATH% for /f "tokens=1-2 delims= " %%a in ('cabal run ${{ matrix.versions.cabal_opts }} pandoc-cli -- --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% copy %BINPATH% %RELEASE% %BINPATH% -s --toc MANUAL.txt -o %RELEASE%\MANUAL.html %BINPATH% -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.14\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 }}.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 }}.msi windows-release-candidate copy windows\pandoc-%VERSION%-${{ matrix.versions.osarch }}.zip windows-release-candidate - name: Upload unsigned artifact id: upload-unsigned-artifact uses: actions/upload-artifact@v6 with: name: windows-release-candidate-unsigned path: windows-release-candidate - name: Sign artifact id: sign-artifact uses: signpath/github-action-submit-signing-request@v2 with: api-token: '${{ secrets.SIGNPATH_API_TOKEN }}' organization-id: 'd330f023-29aa-44e4-b90b-ae1c570f4a25' project-slug: 'pandoc' signing-policy-slug: 'test-signing' artifact-configuration-slug: 'pandoc-msi-in-zip-artifact' github-artifact-id: '${{ steps.upload-unsigned-artifact.outputs.artifact-id }}' wait-for-completion: true output-artifact-directory: 'windows-release-candidate' - name: upload-signed-artifact id: upload-signed-artifact uses: actions/upload-artifact@v6 with: name: windows-release-candidate-signed path: windows-release-candidate macos: runs-on: macos-15-intel steps: - uses: actions/checkout@v6 - name: Install ghcup run: | brew install ghcup - name: Install ghc and cabal run: | ghcup install ghc --set 9.10 ghcup install cabal --set 3.14 echo "$HOME/.ghcup/bin" >> "${GITHUB_PATH}" - name: Create release run: | sh macos/make_macos_release.sh - uses: actions/upload-artifact@v6 with: name: macos-x86_64 path: macos-x86_64 # linux: # runs-on: ubuntu-latest # steps: # - uses: actions/checkout@v6 # - 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@v6 # with: # name: linux-release-candidate # path: linux-release-candidate