diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index ca6bd4a..8a92671 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -11,7 +11,7 @@ on: type: boolean bump: description: 'Bump type' - required: true + required: false default: 'patch' type: choice options: @@ -27,13 +27,40 @@ jobs: steps: - name: Checkout code - uses: actions/checkout@master - with: - fetch-depth: 0 - fetch-tags: true + uses: actions/checkout@v4.2.2 + with: + fetch-depth: 0 # Fetch full history + fetch-tags: true # Fetch all tags (refs/tags) + + - name: Install uv + uses: astral-sh/setup-uv@v5 + - name: Set up Python + run: uv python install + with: + python-version-file: "pyproject.toml" + - name: Install the project dependencies + run: | + uv sync --all-groups + uv add pip + uv export --format requirements.txt -o requirements.txt + # uv run python -m pip install --upgrade pip + # uv run python -m pip install -r requirements.txt + + - name: Set Git identity + run: | + git config user.name "Gitea CI" + git config user.email "ci@git.theprivateserver.de" + - name: Bump version + id: bump + run: | + uv tool install bump-my-version + uv tool run bump-my-version bump ${{ github.event.inputs.bump }} + # echo the version to github env, the version is shown by using uv tool run bump-my-version show current_version + echo "VERSION<> $GITHUB_ENV + echo "$(uv tool run bump-my-version show current_version)" >> $GITHUB_ENV + echo "EOF" >> $GITHUB_ENV - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - - name: Set up QEMU uses: docker/setup-qemu-action@v3 @@ -44,51 +71,16 @@ jobs: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.TOKEN }} - - name: Install uv - uses: astral-sh/setup-uv@v5 - - name: Set up Python - run: uv python install - with: - python-version-file: "pyproject.toml" - - - name: Install the project - run: uv sync --all-extras --dev - - - name: Create requirements.txt + - name: Get previous tag + id: prev_tag run: | - echo "Creating requirements.txt" - uv export --format requirements.txt -o requirements.txt - echo "requirements.txt created" + prev=$(git tag --sort=-v:refname | sed -n '2p' || true) + echo "tag=$prev" >> "$GITHUB_OUTPUT" + - - name: Set Git identity - run: | - git config user.name "Gitea CI" - git config user.email "ci@git.theprivateserver.de" - - - name: Build Changelog - id: build_changelog - uses: https://github.com/mikepenz/release-changelog-builder-action@v5 - with: - platform: "gitea" - baseURL: "http://gitea:3000" - configuration: ".gitea/changelog-config.json" - env: - GITHUB_TOKEN: ${{ secrets.GITEA_TOKEN }} - - - - name: Bump version - id: bump - run: | - uv tool install bump-my-version - uv tool run bump-my-version bump ${{ github.event.inputs.bump }} --allow-dirty - # echo the version to github env, the version is shown by using uv tool run bump-my-version show current_version - echo "VERSION<> $GITHUB_ENV - echo "$(uv tool run bump-my-version show current_version)" >> $GITHUB_ENV - echo "EOF" >> $GITHUB_ENV - - name: Check version - run: echo ${{ env.VERSION }} - name: Build and store Docker image if: ${{ github.event.inputs.docker_release == 'true' }} + run: | REPO_NAME=$(echo "${{ github.repository }}" | tr '[:upper:]' '[:lower:]') docker buildx build \ @@ -101,17 +93,28 @@ jobs: with: github_token: ${{ secrets.TOKEN }} branch: ${{ github.ref }} - - name: Create release - id: create_release - if: ${{ github.event.inputs.github_release == 'true' }} - uses: softprops/action-gh-release@master + - name: Build Changelog + id: build_changelog + uses: https://github.com/mikepenz/release-changelog-builder-action@v5 with: - tag_name: v${{ env.VERSION }} - release_name: Release ${{ env.VERSION }} - body: ${{steps.build_changelog.outputs.changelog}} - draft: false - prerelease: false - make_latest: true + platform: "gitea" + baseURL: "http://gitea:3000" + configuration: ".gitea/changelog_config.json" + env: GITHUB_TOKEN: ${{ secrets.TOKEN }} + - name: Create Gitea Release + if: ${{ github.event.inputs.github_release == 'true' }} + uses: softprops/action-gh-release@v1 + with: + tag_name: v${{ env.VERSION }} + release_name: Release v${{ env.VERSION }} + body: ${{steps.build_changelog.outputs.changelog}} + draft: false + prerelease: false + env: + GITHUB_TOKEN: ${{ secrets.TOKEN }} + GITHUB_REPOSITORY: ${{ github.repository }} + +