aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/release-candidate.yml
blob: 92b5e0ab3b9315469bc6499f1f61baaf61156a23 (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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
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-candidated-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