[Docs] CI for variables.yaml + CI for docs update #3
Workflow file for this run
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: ORFS variables.yaml tester and linter | |
on: | |
push: | |
pull_request: | |
jobs: | |
docs-test-job: | |
name: 'Tests for variables.yaml' | |
if: github.event_name == 'pull_request' || github.event_name == 'push' | |
runs-on: ubuntu-latest | |
container: | |
image: openroad/ubuntu-cpp20 | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
submodules: 'recursive' | |
- name: Run generate-variables-docs.py | |
run: | | |
python3 flow/scripts/generate-variables-docs.py | |
- name: Check if FlowVariables.md is up to date | |
run: | | |
git diff --exit-code docs/user/FlowVariables.md | |
- name: Run yamlfix check | |
run: | | |
pip install yamlfix==1.17.0 | |
yamlfix -c yamlfix.toml flow/scripts/variables.yaml --check | |
docs-pr-update: | |
name: 'Create PR to update ORFS FlowVariables.md and variables.yaml' | |
if: github.event_name == 'push' | |
needs: | |
- docs-test-job | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Run generate-variables-docs.py | |
run: | | |
python3 flow/scripts/generate-variables-docs.py | |
- name: Run yamlfix | |
run: | | |
pip install yamlfix==1.17.0 | |
yamlfix -c yamlfix.toml flow/scripts/variables.yaml | |
- name: Create branch if diff exists | |
id: variables-update | |
run: | | |
git config --local user.email "github-actions[bot]@users.noreply.github.com" | |
git config --local user.name "github-actions[bot]" | |
if [ -n "$(git status --porcelain)" ]; then | |
echo "has_update=true" >> "$GITHUB_OUTPUT" | |
else | |
echo "has_update=false" >> "$GITHUB_OUTPUT" | |
fi | |
git add flow/scripts/variables.yaml | |
git add docs/user/FlowVariables.md | |
git commit --signoff -m "[Docs]: Update ORFS FlowVariables.md" | |
# Sanity check that no other files are unstaged | |
if [ -n "$(git status --porcelain)" ]; then | |
echo "Error: Unstaged changes after commit." | |
exit 1 | |
fi | |
- name: Only push if not master | |
if: "github.event.client_payload.branch != 'master'" | |
id: variables-update-pr | |
run: | | |
git push origin "HEAD:refs/pull/${{ github.event.client_payload.branch }}/head" | |
- name: Create variables update PR | |
if: "steps.variables-update.outputs.has_update == 'true' && github.event.client_payload.branch == 'master'" | |
uses: peter-evans/create-pull-request@v5 | |
with: | |
token: ${{ github.token }} | |
signoff: true | |
delete-branch: true | |
title: "[BOT] Update ORFS variables" | |
reviewers: | | |
vvbandeira | |
maliberty | |
draft: true | |
branch: bot-update-variables | |
commit-message: | | |
[BOT] Update ORFS variables |