Merge pull request #13061 from RasaHQ/INFRA-1126 #20318
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: Docs Tests | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
types: [opened, synchronize, labeled] | |
concurrency: | |
group: ci-docs-tests-${{ github.ref }} # branch name | |
cancel-in-progress: true | |
env: | |
DEFAULT_PYTHON_VERSION: "3.10" | |
jobs: | |
changes: | |
name: Check for file changes | |
runs-on: ubuntu-22.04 | |
outputs: | |
docs: ${{ steps.filter.outputs.docs }} | |
steps: | |
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c | |
- uses: dorny/paths-filter@4512585405083f25c027a35db413c2b3b9006d50 | |
id: filter | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
filters: .github/change_filters.yml | |
test_documentation: | |
name: Test Documentation | |
runs-on: ubuntu-22.04 | |
needs: [changes] | |
if: needs.changes.outputs.docs == 'true' | |
steps: | |
- name: Checkout git repository 🕝 | |
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c | |
- name: Set up Python ${{ env.DEFAULT_PYTHON_VERSION }} 🐍 | |
uses: actions/setup-python@57ded4d7d5e986d7296eab16560982c6dd7c923b | |
with: | |
python-version: ${{ env.DEFAULT_PYTHON_VERSION }} | |
- name: Set up Node 12.x 🦙 | |
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c | |
with: | |
node-version: "12.x" | |
- name: Read Poetry Version 🔢 | |
run: | | |
echo "POETRY_VERSION=$(scripts/poetry-version.sh)" >> $GITHUB_ENV | |
shell: bash | |
- name: Install poetry 🦄 | |
uses: Gr1N/setup-poetry@15821dc8a61bc630db542ae4baf6a7c19a994844 # v8 | |
with: | |
poetry-version: ${{ env.POETRY_VERSION }} | |
- name: Load Poetry Cached Libraries ⬇ | |
id: cache-poetry | |
uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 | |
with: | |
path: .venv | |
key: ${{ runner.os }}-poetry-${{ env.POETRY_VERSION }}-${{ env.DEFAULT_PYTHON_VERSION }}-${{ hashFiles('**/poetry.lock') }}-${{ secrets.POETRY_CACHE_VERSION }} | |
restore-keys: ${{ runner.os }}-poetry-${{ env.DEFAULT_PYTHON_VERSION }} | |
- name: Clear Poetry cache | |
if: steps.cache-poetry.outputs.cache-hit == 'true' && contains(github.event.pull_request.labels.*.name, 'tools:clear-poetry-cache-docs-tests') | |
run: rm -r .venv | |
- name: Create virtual environment | |
if: (steps.cache-poetry.outputs.cache-hit != 'true' || contains(github.event.pull_request.labels.*.name, 'tools:clear-poetry-cache-docs-tests')) | |
run: python -m venv create .venv | |
- name: Set up virtual environment | |
if: needs.changes.outputs.docs == 'true' | |
run: poetry config virtualenvs.in-project true | |
- name: Load Yarn Cached Packages ⬇ | |
uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 | |
with: | |
path: docs/node_modules | |
key: ${{ runner.os }}-yarn-12.x-${{ hashFiles('docs/yarn.lock') }} | |
restore-keys: ${{ runner.os }}-yarn-12.x | |
- name: Install Dependencies 📦 | |
run: | | |
sudo apt-get -y install libpq-dev | |
make install-full install-docs | |
- name: Run Swagger 🕵️♀️ | |
run: | | |
npm install -g swagger-cli | |
swagger-cli validate docs/static/spec/action-server.yml | |
swagger-cli validate docs/static/spec/rasa.yml | |
- name: Test Docs 🕸 | |
run: make test-docs | |
documentation_lint: | |
name: Documentation Linting Checks | |
runs-on: ubuntu-22.04 | |
needs: [changes] | |
if: needs.changes.outputs.docs == 'true' | |
steps: | |
- name: Checkout git repository 🕝 | |
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c | |
- name: Set up Python ${{ env.DEFAULT_PYTHON_VERSION }} 🐍 | |
uses: actions/setup-python@57ded4d7d5e986d7296eab16560982c6dd7c923b | |
with: | |
python-version: ${{ env.DEFAULT_PYTHON_VERSION }} | |
- name: Set up Node 12.x 🦙 | |
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c | |
with: | |
node-version: "12.x" | |
- name: Read Poetry Version 🔢 | |
run: | | |
echo "POETRY_VERSION=$(scripts/poetry-version.sh)" >> $GITHUB_ENV | |
shell: bash | |
- name: Install poetry 🦄 | |
uses: Gr1N/setup-poetry@15821dc8a61bc630db542ae4baf6a7c19a994844 # v8 | |
with: | |
poetry-version: ${{ env.POETRY_VERSION }} | |
- name: Load Poetry Cached Libraries ⬇ | |
id: cache-poetry | |
uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 | |
with: | |
path: .venv | |
key: ${{ runner.os }}-poetry-${{ env.POETRY_VERSION }}-${{ env.DEFAULT_PYTHON_VERSION }}-${{ hashFiles('**/poetry.lock') }}-${{ secrets.POETRY_CACHE_VERSION }} | |
restore-keys: ${{ runner.os }}-poetry-${{ env.DEFAULT_PYTHON_VERSION }} | |
- name: Clear Poetry cache | |
if: steps.cache-poetry.outputs.cache-hit == 'true' && contains(github.event.pull_request.labels.*.name, 'tools:clear-poetry-cache-docs-tests') | |
run: rm -r .venv | |
- name: Create virtual environment | |
if: (steps.cache-poetry.outputs.cache-hit != 'true' || contains(github.event.pull_request.labels.*.name, 'tools:clear-poetry-cache-docs-tests')) | |
run: python -m venv create .venv | |
- name: Set up virtual environment | |
if: needs.changes.outputs.docs == 'true' | |
run: poetry config virtualenvs.in-project true | |
- name: Load Yarn Cached Packages ⬇ | |
uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 | |
with: | |
path: docs/node_modules | |
key: ${{ runner.os }}-yarn-12.x-${{ hashFiles('docs/yarn.lock') }} | |
restore-keys: ${{ runner.os }}-yarn-12.x | |
- name: Install Dependencies 📦 | |
run: | | |
sudo apt-get -y install libpq-dev | |
make install-full install-docs | |
- name: Docs Linting Checks 🕸 | |
run: make lint-docs |