Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Docs] CI for variables.yaml + CI for docs update #2457

Draft
wants to merge 2 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
77 changes: 77 additions & 0 deletions .github/workflows/github-actions-yaml-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
name: ORFS variables.yaml tester and linter

on:
push:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

shouldn't this be pull-request, not on push(to a branch) test linting?

otherwise I don't think it will tests pull requests as only those with write access to the ORFS can create branches

The rest of the PR I think is designed to run after updates to master


jobs:
docs-test-job:
name: 'Tests for variables.yaml'
runs-on: ubuntu-latest
container:
image: openroad/ubuntu-cpp20
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: 'recursive'
- name: Run generate-variable-docs.py
run: |
python3 flow/scripts/generate-variable-docs.py
- name: Run yamlfix check
run: |
yamlfix -c yamlfix.toml flow/scripts/variables.yaml --check

docs-pr-update:
name: 'Create PR to update ORFS FlowVariables.md and variables.yaml'
needs:
- docs-test-job
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Run generate-variable-docs.py
run: |
python3 flow/scripts/generate-variable-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
2 changes: 1 addition & 1 deletion etc/DependencyInstaller.sh
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ _installCommon() {
source /opt/rh/rh-python38/enable
set -u
fi
local pkgs="pandas numpy firebase_admin click pyyaml"
local pkgs="pandas numpy firebase_admin click pyyaml yamlfix"
if [[ $(id -u) == 0 ]]; then
pip3 install --no-cache-dir -U $pkgs
else
Expand Down
Loading
Loading