aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/release-candidate.yml
blob: 79b01fd1292c508f41e1ba7342ccc3e0757c8469 (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
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.8
        ghcup install cabal --set 3.12

    - 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 }}-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@v5
      with:
        name: windows-release-candidate
        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.8
        ghcup install cabal --set 3.12
        echo "$HOME/.ghcup/bin" >> "${GITHUB_PATH}"

    - name: Create release
      run: |
        sh macos/make_macos_release.sh

    - uses: actions/upload-artifact@v5
      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@v5
#     with:
#       name: linux-release-candidate
#       path: linux-release-candidate