aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/release-candidate.yml
blob: 84b2e8565c34b9b5d2878369fa975ed0cbbb0cb4 (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
name: Release candidate

on:
  push:
    branches:
    - 'rc/**'

jobs:
  linux:

    runs-on: ubuntu-18.04
    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@v2
      with:
        name: linux-release-candidate
        path: linux-release-candidate

  windows:

    runs-on: windows-2019
    strategy:
      fail-fast: true
      matrix:
        versions:
          - osarch: "windows-x86_64"
            arch: "x64"
            stack_opts: "-j1"
    steps:
    - uses: actions/checkout@v1
    - name: Install dependencies
      run: |
          stack update
          stack build ${{ matrix.versions.stack_opts }} --dependencies-only pandoc
    - 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
          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@v2
      with:
        name: windows-release-candidate
        path: windows-release-candidate

  macos:

    runs-on: macOS-10.15

    steps:
    - uses: actions/checkout@v1

    - name: Build executable
      run: |
          stack --no-terminal setup
          stack --no-terminal update
          stack --no-terminal install

    - name: Create artifacts
      run: |
          export VERSION=$(grep '^[Vv]ersion:' pandoc.cabal | awk '{print $$2;}')
          export ARTIFACTS=macos-release-candidate
          export RESOURCES=${ARTIFACTS}/Resources
          export ROOT=${ARTIFACTS}/pandoc
          export DEST=${ROOT}/usr/local
          export ME=$(whoami)
          export BASE=pandoc-$VERSION
          mkdir -p ${ARTIFACTS}
          mkdir -p ${RESOURCES}
          mkdir -p ${DEST}/bin
          mkdir -p ${DEST}/share/man/man1
          cp ~/.local/bin/pandoc ${DEST}/bin/
          strip ${DEST}/bin/pandoc
          cp man/pandoc.1 ${DEST}/share/man/man1/pandoc.1
          ~/.local/bin/pandoc -s COPYING.md -Vpagetitle=License -o ${RESOURCES}/license.html
          chown -R $ME:staff ${ROOT}
          sed -e "s/PANDOCVERSION/${VERSION}/" macos/distribution.xml.in > ${ARTIFACTS}/distribution.xml
          cp macos/Makefile ${ARTIFACTS}/
          echo ${VERSION} > ${ARTIFACTS}/version.txt

    - uses: actions/upload-artifact@v2
      with:
        name: macos-release-candidate
        path: macos-release-candidate