mirror of
https://github.com/jgm/pandoc.git
synced 2026-08-30 17:59:17 +08:00
dfd654cf36
Previously this happened automatically, but now we get a zip file with no containing directory?
147 lines
4.8 KiB
YAML
147 lines
4.8 KiB
YAML
name: Release candidate
|
|
|
|
on: workflow_dispatch
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
windows:
|
|
|
|
runs-on: windows-2022
|
|
timeout-minutes: 120
|
|
strategy:
|
|
fail-fast: true
|
|
matrix:
|
|
versions:
|
|
- osarch: "windows-x86_64"
|
|
arch: "x64"
|
|
cabal_opts: '-fembed_data_files -fserver -flua'
|
|
|
|
steps:
|
|
- uses: actions/checkout@v7
|
|
- name: Install ghc
|
|
run: |
|
|
ghcup install ghc --set 9.10
|
|
ghcup install cabal --set 3.14
|
|
|
|
# declare/restore cached things
|
|
|
|
- name: Cache cabal global package db
|
|
id: cabal-global
|
|
uses: actions/cache@v6
|
|
with:
|
|
path: |
|
|
C:\cabal\store
|
|
key: ${{ runner.os }}-appdata-cabal-rc-${{ hashFiles('cabal.project') }}-${{ secrets.CACHE_VERSION }}
|
|
|
|
- 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@v7
|
|
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: 'release-signing'
|
|
artifact-configuration-slug: 'pandoc-msi-and-zip'
|
|
github-artifact-id: '${{ steps.upload-unsigned-artifact.outputs.artifact-id }}'
|
|
wait-for-completion: true
|
|
output-artifact-directory: 'windows-release-candidate'
|
|
timeout-minutes: 120
|
|
|
|
- name: upload-signed-artifact
|
|
id: upload-signed-artifact
|
|
uses: actions/upload-artifact@v7
|
|
with:
|
|
name: windows-release-candidate-signed
|
|
path: windows-release-candidate
|
|
|
|
macos:
|
|
|
|
runs-on: macos-15-intel
|
|
|
|
steps:
|
|
- uses: actions/checkout@v7
|
|
|
|
- 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: Cache cabal global package db
|
|
id: cabal-global
|
|
uses: actions/cache@v6
|
|
with:
|
|
path: |
|
|
~/.local/state/cabal/store
|
|
~/.cabal/store
|
|
key: ${{ runner.os }}-appdata-cabal-rc-${{ hashFiles('cabal.project') }}-${{ secrets.CACHE_VERSION }}
|
|
|
|
- name: Create release
|
|
run: |
|
|
sh macos/make_macos_release.sh
|
|
tar cvzf macos-x86_64.tar.gz macos-x86_64
|
|
|
|
- uses: actions/upload-artifact@v7
|
|
with:
|
|
name: macos-x86_64.tar.gz
|
|
path: macos-x86_64.tar.gz
|
|
|