implement and extend #24454 #1013
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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-13 | |
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@v4 | |
with: | |
build_dir: doc/html | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |