name: main on: schedule: - cron: "0 */4 * * *" workflow_dispatch: repository_dispatch: types: [pypi_release] jobs: build: name: main runs-on: ubuntu-latest steps: - if: ${{ startsWith(github.event_name, 'repository_dispatch') }} run: sleep 30 - uses: actions/checkout@v4 - name: Install uv uses: astral-sh/setup-uv@v5 - name: set git config run: | git config user.name "$GITHUB_ACTOR" git config user.email "$GITHUB_ACTOR@users.noreply.github.com" - run: uv run --no-project mirror.py - name: check for unpushed commits id: check_unpushed run: | UNPUSHED_COMMITS=$(git log origin/main..HEAD) if [ -z "$UNPUSHED_COMMITS" ]; then echo "No unpushed commits found." echo "changes_exist=false" >> $GITHUB_ENV else echo "Unpushed commits found." echo "changes_exist=true" >> $GITHUB_ENV fi - name: push changes if they exist if: env.changes_exist == 'true' run: | git push origin HEAD:refs/heads/main git push origin HEAD:refs/heads/main --tags - name: create release on new tag if new changes exist if: env.changes_exist == 'true' run: | TAG_NAME=$(git describe --tags $(git rev-list --tags --max-count=1)) echo $TAG_NAME gh release create "$TAG_NAME" \ --title "$TAG_NAME" \ --notes "See: https://github.com/astral-sh/ruff/releases/tag/${TAG_NAME/v}" \ --latest env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}