mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-29 17:34:43 +00:00
Adapts #23108 to the version-2-0 branch and makes the 2.0 compiler define `nimHasNoLineTooLong` as the devel compiler depends on it to not turn off `hint[LineTooLong]`, which means the 2.0 compiler errors on the devel compiler config (as mentioned in https://github.com/nim-lang/Nim/issues/23178#issuecomment-1880511322). Would have these as separate PRs but the macos CI PR would have to be merged first, then the second PR would have to be rebased.
119 lines
3.3 KiB
YAML
119 lines
3.3 KiB
YAML
name: Nim Docs CI
|
|
on:
|
|
push:
|
|
paths:
|
|
- 'compiler/docgen.nim'
|
|
- 'compiler/renderverbatim.nim'
|
|
- 'config/nimdoc.cfg'
|
|
- 'doc/**.rst'
|
|
- 'doc/**.md'
|
|
- 'doc/nimdoc.css'
|
|
- 'lib/**.nim'
|
|
- 'nimdoc/testproject/expected/testproject.html'
|
|
- 'tools/dochack/dochack.nim'
|
|
- 'tools/kochdocs.nim'
|
|
- '.github/workflows/ci_docs.yml'
|
|
- 'koch.nim'
|
|
|
|
pull_request:
|
|
# Run only on changes on these files.
|
|
paths:
|
|
- 'compiler/docgen.nim'
|
|
- 'compiler/renderverbatim.nim'
|
|
- 'config/nimdoc.cfg'
|
|
- 'doc/**.rst'
|
|
- 'doc/**.md'
|
|
- 'doc/nimdoc.css'
|
|
- 'lib/**.nim'
|
|
- 'nimdoc/testproject/expected/testproject.html'
|
|
- 'tools/dochack/dochack.nim'
|
|
- 'tools/kochdocs.nim'
|
|
- '.github/workflows/ci_docs.yml'
|
|
- 'koch.nim'
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
build:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
target: [linux, windows, osx]
|
|
include:
|
|
- target: linux
|
|
os: ubuntu-20.04
|
|
- target: windows
|
|
os: windows-2019
|
|
- target: osx
|
|
os: macos-12
|
|
|
|
name: ${{ matrix.target }}
|
|
runs-on: ${{ matrix.os }}
|
|
timeout-minutes: 60 # refs bug #18178
|
|
|
|
steps:
|
|
- name: 'Checkout'
|
|
uses: actions/checkout@v3
|
|
with:
|
|
fetch-depth: 2
|
|
|
|
- name: 'Install build dependencies (macOS)'
|
|
if: runner.os == 'macOS'
|
|
run: brew install make
|
|
|
|
- name: 'Install build dependencies (Windows)'
|
|
if: runner.os == 'Windows'
|
|
shell: bash
|
|
run: |
|
|
set -e
|
|
. ci/funs.sh
|
|
nimInternalInstallDepsWindows
|
|
echo "${{ github.workspace }}/dist/mingw64/bin" >> "${GITHUB_PATH}"
|
|
|
|
- name: 'Add build binaries to PATH'
|
|
shell: bash
|
|
run: echo "${{ github.workspace }}/bin" >> "${GITHUB_PATH}"
|
|
|
|
- name: 'System information'
|
|
shell: bash
|
|
run: . ci/funs.sh && nimCiSystemInfo
|
|
|
|
- name: 'Build csourcesAny (posix)'
|
|
# this would work on windows and other CI use this on windows,
|
|
# but we ensure here that `ci/build_autogen.bat` keeps working on windows.
|
|
if: runner.os != 'Windows'
|
|
shell: bash
|
|
run: . ci/funs.sh && nimBuildCsourcesIfNeeded CC=gcc
|
|
# was previously using caching via `actions/cache@v1` but this wasn't
|
|
# used in other CI pipelines and it's unclear the added complexity
|
|
# was worth the saving; can be revisited if needed.
|
|
|
|
- name: 'Build csourcesAny (windows)'
|
|
if: runner.os == 'Windows'
|
|
shell: cmd
|
|
run: ci/build_autogen.bat
|
|
|
|
- name: 'Build koch'
|
|
shell: bash
|
|
run: nim c koch
|
|
|
|
- name: 'Build the real compiler'
|
|
shell: bash
|
|
run: ./koch boot -d:release
|
|
|
|
- name: 'Build documentation'
|
|
shell: bash
|
|
run: ./koch doc --git.commit:devel
|
|
|
|
- name: 'Publish documentation to Github Pages'
|
|
if: |
|
|
github.event_name == 'push' && github.ref == 'refs/heads/devel' &&
|
|
matrix.target == 'linux'
|
|
uses: crazy-max/ghaction-github-pages@v3
|
|
with:
|
|
build_dir: doc/html
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|