82fc8d41cc
* add tests for python code * ruff format
70 lines
2.1 KiB
YAML
70 lines
2.1 KiB
YAML
name: generate-docs
|
|
on:
|
|
push:
|
|
branches: [ "master" ]
|
|
|
|
jobs:
|
|
generate-docs:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: checkout repo
|
|
uses: actions/checkout@v4
|
|
with:
|
|
token: ${{ secrets.PROTECTED_BRANCH_PUSH_TOKEN }}
|
|
|
|
- name: Install poetry
|
|
run: pipx install poetry
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: "3.11.2"
|
|
cache: "poetry"
|
|
- name: Install dependencies
|
|
run: poetry install --no-interaction
|
|
|
|
- name: Generate shields.io URL
|
|
run: poetry run python runner.py generate-counter
|
|
id: counter
|
|
working-directory: atomic_red_team
|
|
env:
|
|
PYTHONPATH: ${{ github.workspace }}
|
|
|
|
- name: Update README
|
|
run: |
|
|
echo ${{ steps.counter.outputs.result }}
|
|
sed -i "s|https://img.shields.io/badge/Atomics-.*-flat.svg|${{ steps.counter.outputs.result }}|" README.md
|
|
shell: bash
|
|
|
|
- name: Generate and commit unique GUIDs for each atomic test
|
|
run: poetry run python runner.py generate-guids
|
|
working-directory: atomic_red_team
|
|
env:
|
|
PYTHONPATH: ${{ github.workspace }}
|
|
|
|
- name: setup ruby
|
|
uses: ruby/setup-ruby@v1
|
|
with:
|
|
ruby-version: 2.7
|
|
bundler-cache: true
|
|
|
|
- name: generate markdown docs for atomics
|
|
run: |
|
|
bin/generate-atomic-docs.rb
|
|
echo ""
|
|
echo ""
|
|
git status
|
|
echo ""
|
|
echo ""
|
|
git diff-index HEAD --
|
|
|
|
if git diff-index --quiet HEAD -- ; then
|
|
echo "Not committing documentation because there are no changes"
|
|
else
|
|
git config credential.helper 'cache --timeout=120'
|
|
git config user.email "opensource@redcanary.com"
|
|
git config user.name "Atomic Red Team doc generator"
|
|
git add README.md
|
|
git add atomics
|
|
git commit -am "Generated docs from job=$GITHUB_JOB branch=$GITHUB_REF_NAME [ci skip]"
|
|
git push origin $GITHUB_REF_NAME -f
|
|
fi
|