on: push: branches: - main paths-ignore: - "commits.png" - "languages.png" schedule: - cron: "0 */8 * * *" jobs: stats: runs-on: ubuntu-latest container: catthehacker/ubuntu:act-latest steps: - uses: actions/checkout@v4 with: token: ${{ secrets.GIT_TOKEN }} - name: Check for Skip CI in Last Commit id: check_commit run: | git reset --hard git pull git reset --hard commit_message=$(git log -1 --pretty=%B) if echo "$commit_message" | grep -q "\[skip ci\]"; then echo "Skip CI based on commit message" && exit 78; fi - uses: actions/setup-python@v5 with: python-version: "3.10" cache: "pip" - name: Install dependencies run: | pip install -r requirements.txt - name: Generate statistics run: | python3 stats.py - name: Stage the changes run: | git add languages.png commits.png - name: Commit and Push Changes run: | if git diff --staged --quiet; then echo "No changes to commit." else git config --local user.email "stats@localhost" git config --local user.name "Stats CI/CD" git add commits.png languages.png git commit -am "[skip ci] Update stats" || echo "No changes to commit" git push origin HEAD -f fi