123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- 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 }}
|