diff options
Diffstat (limited to '.github/workflows')
-rw-r--r-- | .github/workflows/ci.yml | 191 | ||||
-rw-r--r-- | .github/workflows/commit-validation.yml | 38 | ||||
-rw-r--r-- | .github/workflows/format-validation.yml | 88 | ||||
-rw-r--r-- | .github/workflows/lint.yml | 30 | ||||
-rw-r--r-- | .github/workflows/nightly.yml | 84 | ||||
-rw-r--r-- | .github/workflows/release-candidate.yml | 84 |
6 files changed, 0 insertions, 515 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml deleted file mode 100644 index 4debe1ebe..000000000 --- a/.github/workflows/ci.yml +++ /dev/null @@ -1,191 +0,0 @@ -name: CI tests - -on: - push: - branches: - - '*' - - '!rc/*' - paths-ignore: - - 'doc/**' - - 'MANUAL.txt' - - '*.md' - - 'RELEASE_CHECKLIST' - - 'BUGS' - - 'changelog' - - 'README.template' - - 'appveyor.yml' - - 'tools/**' - - 'linux/**' - - 'macos/**' - - 'windows/**' - - 'man/**' - pull_request: - paths-ignore: - - 'doc/**' - - 'MANUAL.txt' - - '*.md' - - 'RELEASE_CHECKLIST' - - 'BUGS' - - 'changelog' - - 'README.template' - - 'appveyor.yml' - - 'tools/**' - - 'linux/**' - - 'macos/**' - - 'windows/**' - - 'man/**' - -jobs: - linux: - - runs-on: ubuntu-18.04 - strategy: - fail-fast: true - matrix: - versions: - - ghc: '8.0.2' - cabal: '2.4' - - ghc: '8.2.2' - cabal: '2.4' - - ghc: '8.4.4' - cabal: '2.4' - - ghc: '8.6.5' - cabal: '3.2' - - ghc: '8.8.4' - cabal: '3.2' - - ghc: '8.10.2' - cabal: '3.2' - steps: - - uses: actions/checkout@v2 - - # need to install older cabal/ghc versions from ppa repository - - - name: Install recent cabal/ghc - uses: actions/setup-haskell@v1.1.3 - with: - ghc-version: ${{ matrix.versions.ghc }} - cabal-version: ${{ matrix.versions.cabal }} - - # declare/restore cached things - # caching doesn't work for scheduled runs yet - # https://github.com/actions/cache/issues/63 - - - name: Cache cabal global package db - id: cabal-global - uses: actions/cache@v2 - with: - path: | - ~/.cabal - key: ${{ runner.os }}-${{ matrix.versions.ghc }}-${{ matrix.versions.cabal }}-cabal-global-${{ hashFiles('cabal.project') }} - - - name: Cache cabal work - id: cabal-local - uses: actions/cache@v2 - with: - path: | - dist-newstyle - key: ${{ runner.os }}-${{ matrix.versions.ghc }}-${{ matrix.versions.cabal }}-cabal-local - - - name: Install dependencies - run: | - cabal v2-update - cabal v2-build --dependencies-only --enable-tests --disable-optimization - - name: Build and test - run: | - cabal v2-build --enable-tests --disable-optimization 2>&1 | tee build.log - # fail if warnings in local build - ! grep -q ": *[Ww]arning:" build.log || exit 1 - cabal v2-test --disable-optimization - - windows: - - runs-on: windows-2019 - - steps: - - uses: actions/checkout@v2 - - # We should have ghc 8.10, cabal, stack pre-installed - # - uses: actions/setup-haskell@v1.1.3 - # with: - # enable-stack: true - # stack-version: 'latest' - - # declare/restore cached things - # caching doesn't work for scheduled runs yet - # https://github.com/actions/cache/issues/63 - - - name: Cache stack global package db - id: stack-global-package-db - uses: actions/cache@v2 - with: - path: | - C:\Users\runneradmin\AppData\Roaming\stack\ - key: ${{ runner.os }}-appdata-roaming-stack-${{ hashFiles('stack.yaml') }} - - # stack's local package dbs for the project and each package - # - name: Cache .stack-work - # uses: actions/cache@v1 - # with: - # path: .stack-work - # key: ${{ runner.os }}-stack-work-${{ hashFiles('stack.yaml') }} - # restore-keys: ${{ runner.os }}-stack-work - - - name: Install dependencies - run: | - stack update - stack install happy - stack test --dependencies-only --fast - - name: Build and test - shell: cmd - run: | - stack test --fast --test-arguments=--hide-successes - - macos: - - runs-on: macOS-10.15 - strategy: - fail-fast: true - matrix: - versions: - - ghc: '8.8.4' - cabal: '3.2' - - steps: - - uses: actions/checkout@v2 - - - name: Install recent cabal/ghc - uses: actions/setup-haskell@v1.1.3 - with: - ghc-version: ${{ matrix.versions.ghc }} - cabal-version: ${{ matrix.versions.cabal }} - - # declare/restore cached things - # caching doesn't work for scheduled runs yet - # https://github.com/actions/cache/issues/63 - - - name: Cache cabal global package db - id: cabal-global - uses: actions/cache@v2 - with: - path: | - ~/.cabal - key: ${{ runner.os }}-${{ matrix.versions.ghc }}-${{ matrix.versions.cabal }}-cabal-global-${{ hashFiles('cabal.project') }} - - - name: Cache cabal work - id: cabal-local - uses: actions/cache@v2 - with: - path: | - dist-newstyle - key: ${{ runner.os }}-${{ matrix.versions.ghc }}-${{ matrix.versions.cabal }}-cabal-local - - - name: Install dependencies - run: | - cabal v2-update - cabal v2-build --dependencies-only --enable-tests --disable-optimization - - name: Build and test - run: | - cabal v2-build --enable-tests --disable-optimization 2>&1 | tee build.log - # fail if warnings in local build - ! grep -q ": *[Ww]arning:" build.log || exit 1 - cabal v2-test --disable-optimization diff --git a/.github/workflows/commit-validation.yml b/.github/workflows/commit-validation.yml deleted file mode 100644 index 0b52e94e5..000000000 --- a/.github/workflows/commit-validation.yml +++ /dev/null @@ -1,38 +0,0 @@ -name: commit-validation -on: [ push, pull_request ] - -jobs: - check-commit-msg-length: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v1 - - name: Check commit message length - run: | - # Get last commit messages - if [ "${{github.event_name}}" = "push" ]; then - if [ "${{github.event.before}}" = "0000000000000000000000000000000000000000" ]; then - # We are on a new branch - current="$(echo '${{github.ref}}' | sed 's!^refs/heads!origin!')" - readarray -t other < <(git show-ref | awk -F' ' '{ sub(/^refs\/remotes\//,"",$NF); }($NF != "'"$current"'"){print "^" $NF;}') - LOG_RANGE=( "$current" "${other[@]}" ) - unset current other - else - # We are on existing branch - LOG_RANGE=( "${{github.event.before}}.." ) - fi - elif [ "${{github.event_name}}" = "pull_request" ]; then - LOG_RANGE=( "origin/${{github.base_ref}}.." ) - fi - if [[ -v LOG_RANGE ]]; then - if git log --no-merges --pretty=format:"%s" "${LOG_RANGE[@]}" -- | grep -qE "^[^#].{78}"; then - echo -e "Last commit log contains a line with more than 78 characters:\n" - git log --no-merges --pretty=format:"%h: %s" "${LOG_RANGE[@]}" -- | grep -E "^[^:]+: [^#].{78}" - echo - exit 1 - else - echo "Commit log looks good." - fi - unset LOG_RANGE - else - echo "Not checking commits on ${{github.event_name}}" - fi diff --git a/.github/workflows/format-validation.yml b/.github/workflows/format-validation.yml deleted file mode 100644 index a0a5b34b7..000000000 --- a/.github/workflows/format-validation.yml +++ /dev/null @@ -1,88 +0,0 @@ -name: Format validation - -on: - push: - branches: - - '*' - - '!rc/*' - paths: - - 'test/writer.jats_articleauthoring' - - 'test/writer.jats_publishing' - - 'test/writer.jats_archiving' - - 'test/tables.jats_archiving' - - 'test/tables/nordics.jats_archiving' - - 'test/tables/planets.jats_archiving' - - 'test/tables/students.jats_archiving' - pull_request: - branches: - - '*' - - '!rc/*' - paths: - - 'test/writer.jats_articleauthoring' - - 'test/writer.jats_publishing' - - 'test/writer.jats_archiving' - - 'test/tables.jats_archiving' - - 'test/tables/nordics.jats_archiving' - - 'test/tables/planets.jats_archiving' - - 'test/tables/students.jats_archiving' - -jobs: - jats: - name: JATS - runs-on: ubuntu-latest - env: - VALIDATOR_URL: "https://jats-validator.hubmed.org/dtd/" - strategy: - fail-fast: false - matrix: - tagset: - - articleauthoring - - publishing - - archiving - steps: - - name: Checkout - uses: actions/checkout@v2 - - - name: Validate writer output - run: | - filename=test/writer.jats_${{ matrix.tagset }} - printf "Validating file %s\n" "$filename" - json="$(curl --form "xml=@${filename}" --silent "$VALIDATOR_URL")" - err_count="$(printf '%s' "$json" | jq '.errors | length')" - if [ "$err_count" -eq 0 ]; then - printf "File was validated successfully.\n" - exit 0 - else - printf "Validator report:\n%s" "$json" - exit 1 - fi - - - name: Validate tables - # Archiving has the simplest template, so we only check with that. - if: matrix.tagset == 'archiving' - run: | - tmpl="$(cat <<EOF - <?xml version="1.0" encoding="utf-8" ?> - <!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.2 20190208//EN" - "JATS-archivearticle1.dtd"> - <article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" dtd-version="1.2" article-type="other"> - <front><article-meta></article-meta></front> - <body>%s</body></article> - EOF - )" - jats_file="$(mktemp jats-tables.XXXXX)" - exit_code=0 - for f in tables tables/nordics tables/planets tables/students; do - filename=test/$f.jats_archiving - printf "Validating %s...\n" "$filename" - printf "$tmpl" "$(cat $filename)" > "$jats_file" - json="$(curl --form "xml=@${jats_file}" --silent "$VALIDATOR_URL")" - err_count="$(printf "%s" "$json" | jq '.errors | length')" - if [ "$err_count" -eq 0 ]; then - printf "Table output is valid when used as body content.\n" - else - printf "Validator report:\n%s" "$json" - exit_code=1 - fi - done - exit "$exit_code" diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml deleted file mode 100644 index d2f463ec7..000000000 --- a/.github/workflows/lint.yml +++ /dev/null @@ -1,30 +0,0 @@ -name: Lint - -# Trigger the workflow on push or pull request, but only for the -# master branch -on: - pull_request: - branch: [master] - push: - branch: [master] - paths-ignore: - - LICENSE - - README.md - - CHANGELOG.md - - stack.yaml - - .travis.yml - -jobs: - lint: - name: Lint - runs-on: ubuntu-latest - env: - hlint_script: https://raw.github.com/ndmitchell/hlint/master/misc/run.sh - - steps: - - name: Checkout - uses: actions/checkout@v2 - - - name: Download and run hlint - run: | - curl -sSL "${hlint_script}" | sh -s . diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml deleted file mode 100644 index 9f5b14adf..000000000 --- a/.github/workflows/nightly.yml +++ /dev/null @@ -1,84 +0,0 @@ -name: Nightly - -on: - schedule: - - cron: '53 7 * * *' - -jobs: - linux: - - runs-on: ubuntu-18.04 - steps: - - uses: actions/checkout@v2 - - name: Install dependencies - run: | - ghc --version - cabal --version - cabal v2-update - cabal v2-build --dependencies-only all - - name: Build - run: | - cabal v2-install all - strip $HOME/.cabal/bin/pandoc - - name: Install artifact - run: | - export ARTIFACTS=nightly-linux/pandoc-nightly-linux-$(date +%Y-%m-%d) - mkdir -p ${ARTIFACTS} - cp $HOME/.cabal/bin/pandoc ${ARTIFACTS}/ - cp COPYRIGHT ${ARTIFACTS}/ - echo "Built from ${GITHUB_SHA}" > ${ARTIFACTS}/README.nightly.txt - - uses: actions/upload-artifact@master - with: - name: nightly-linux - path: nightly-linux - - windows: - - runs-on: windows-2019 - - steps: - - uses: actions/checkout@v2 - - name: Install dependencies - run: | - stack update - stack build --dependencies-only pandoc - - name: Build artifacts - shell: cmd - run: | - for /f %%a in ('powershell -Command "Get-Date -format yyyy-MM-dd"') do set THEDATE=%%a - set ARTIFACTS=%CD%\nightly-windows\pandoc-nightly-windows-%THEDATE% - mkdir %ARTIFACTS% - stack build pandoc - forfiles /P .\.stack-work\install /M pandoc*.exe /S /C "cmd /C copy @path %%ARTIFACTS%%" - copy COPYRIGHT %ARTIFACTS% - ren %ARTIFACTS%\COPYRIGHT COPYRIGHT.txt - echo Built from %GITHUB_SHA% > %ARTIFACTS%\README.nightly.txt - - uses: actions/upload-artifact@master - with: - name: nightly-windows - path: nightly-windows - - macos: - - runs-on: macOS-10.15 - - steps: - - uses: actions/checkout@v2 - - name: Install dependencies - run: | - stack update - stack build --dependencies-only pandoc - - name: Build artifacts - run: | - export ARTIFACTS=nightly-macos/pandoc-nightly-macos-$(date +%Y-%m-%d) - mkdir -p ${ARTIFACTS} - stack build pandoc - for f in $(find .stack-work/install -name 'pandoc*' -perm +001 -type f); do cp $f ${ARTIFACTS}/; done - mv ${ARTIFACTS}/pandoc ${ARTIFACTS}/pandoc - cp COPYRIGHT ${ARTIFACTS}/ - echo "Built from ${GITHUB_SHA}" > ${ARTIFACTS}/README.nightly.txt - - uses: actions/upload-artifact@master - with: - name: nightly-macos - path: nightly-macos - diff --git a/.github/workflows/release-candidate.yml b/.github/workflows/release-candidate.yml deleted file mode 100644 index 85ae96860..000000000 --- a/.github/workflows/release-candidate.yml +++ /dev/null @@ -1,84 +0,0 @@ -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 |