mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-29 09:24:36 +00:00
refs #22650 Docs CI cover standard library runnable examples that aren't covered by the test suite and can be affected by compiler changes without knowing
117 lines
3.2 KiB
YAML
117 lines
3.2 KiB
YAML
name: Nim Docs CI
|
|
on:
|
|
push:
|
|
paths:
|
|
- 'compiler/**.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/**.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-11
|
|
|
|
name: ${{ matrix.target }}
|
|
runs-on: ${{ matrix.os }}
|
|
timeout-minutes: 60 # refs bug #18178
|
|
|
|
steps:
|
|
- name: 'Checkout'
|
|
uses: actions/checkout@v4
|
|
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 }}
|