name: generate-docs on: push: branches: [ "master" ] jobs: generate-docs: runs-on: ubuntu-latest steps: - name: checkout repo uses: actions/checkout@v5 with: token: ${{ secrets.PROTECTED_BRANCH_PUSH_TOKEN }} - name: Install poetry run: pipx install poetry - uses: actions/setup-python@v6 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: 3.0 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