Kaizen #135
This file contains hidden or 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: Kaizen | |
| on: | |
| workflow_dispatch: | |
| schedule: | |
| - cron: "42 09,23 * * *" # every day at [09,23]:42 UTC | |
| push: | |
| branches: | |
| - main | |
| paths: | |
| - 'algorithms/**' | |
| - 'system-design/**' | |
| permissions: | |
| contents: read | |
| jobs: | |
| consolidate-data: | |
| runs-on: ubuntu-24.04 | |
| permissions: | |
| contents: write | |
| steps: | |
| - name: 🛡️ Harden the runner | |
| uses: step-security/harden-runner@f4a75cfd619ee5ce8d5b864b0d183aff3c69b55a # v2.13.1 | |
| with: | |
| egress-policy: audit | |
| - name: 📦 Checkout code | |
| uses: actions/checkout@v5 | |
| with: | |
| token: ${{ secrets.RELEASE_PAT }} | |
| - name: 🛠️ Setup git | |
| run: | | |
| git config --global user.name "radagastbot[bot]" | |
| git config --global user.email "radagastbot[bot]@users.noreply.github.com" | |
| - name: ⬇️ Get latest parser asset URL | |
| id: get_asset | |
| run: | | |
| ASSET_URL=$(curl -sL -H "Accept: application/vnd.github.v3+json" \ | |
| -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \ | |
| "https://api.github.com/repos/josimar-silva/kaizen/releases" | \ | |
| jq -r '[.[] | select(.tag_name | startswith("kaizen-parser/"))][0].assets[] | select(.name | test("kaizen-.*-x86_64-unknown-linux-musl.tar.gz$")).browser_download_url') | |
| echo "url=$ASSET_URL" >> "$GITHUB_OUTPUT" | |
| - name: ⬇️ Download parser | |
| run: curl -L -o kaizen-parser.tar.gz '${{ steps.get_asset.outputs.url }}' | |
| - name: 📦 Unzip parser | |
| run: tar -xzf kaizen-parser.tar.gz | |
| - name: ⚙️ Install parser | |
| run: mv kaizen-*/parser . | |
| - name: 📝 Generate kaizen data | |
| run: | | |
| ./parser parse \ | |
| --repository https://github.com/josimar-silva/kaizen \ | |
| --output data.json \ | |
| --analysis-dirs algorithms/analysis,system-design/analysis | |
| env: | |
| RUST_LOG: info | |
| - name: ⬆️ Update website data | |
| run: mv -f data.json website/public | |
| - name: 📤 Push new data to repo | |
| run: | | |
| git add website/public/data.json | |
| if git diff --staged --quiet; then | |
| echo "もう!" | |
| else | |
| git commit -m "kaizen($(date +'%Y-%m-%d')): publish data for ${{ github.sha }}" | |
| git push | |
| fi |