Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 1 addition & 6 deletions .github/actions/docker/check-repo-name/action.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,6 @@
name: Check Repository Name
description: Checks if the repository name matches the package name to prevent template-derived repositories from publishing releases.

inputs:
repository:
description: Full repository name (owner/repo)
required: true

outputs:
should_release:
description: Whether to proceed with the release (true/false)
Expand All @@ -18,7 +13,7 @@ runs:
id: check
run: |
PACKAGE_NAME=$(uv run ci-pyproject-name)
REPO_NAME="${{ inputs.repository }}"
REPO_NAME="${{ github.repository }}"
REPO_NAME_ONLY="${REPO_NAME##*/}"

echo "Package name: $PACKAGE_NAME"
Expand Down
15 changes: 3 additions & 12 deletions .github/actions/docker/generate-release-notes/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,6 @@ inputs:
version:
description: Release version (without the v prefix)
required: true
container-name:
description: Docker container name
required: true
package-name:
description: Python package name
required: true
repository:
description: Full repository name (owner/repo)
required: true

outputs:
release_notes_file:
Expand All @@ -28,9 +19,9 @@ runs:
run: |
sed \
-e 's|{{VERSION}}|${{ inputs.version }}|g' \
-e 's|{{CONTAINER_NAME}}|${{ inputs.container-name }}|g' \
-e 's|{{PACKAGE_NAME}}|${{ inputs.package-name }}|g' \
-e 's|{{REPOSITORY}}|${{ inputs.repository }}|g' \
-e 's|{{CONTAINER_NAME}}|${{ github.event.repository.name }}|g' \
-e 's|{{PACKAGE_NAME}}|${{ env.PACKAGE_NAME }}|g' \
-e 's|{{REPOSITORY}}|${{ github.repository }}|g' \
docs/RELEASE-NOTES.md > release_notes.md
echo "release_notes_file=release_notes.md" >> $GITHUB_OUTPUT
shell: bash
9 changes: 2 additions & 7 deletions .github/actions/docker/prepare-release/action.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,6 @@
name: Prepare Release
description: Gets package version, prepares a release directory, creates a tarball, and uploads it as an artifact.

inputs:
package-name:
description: Name of the Python package
required: true

outputs:
package-dir:
description: Name of the release directory and tarball (without .tar.gz)
Expand All @@ -18,7 +13,7 @@ runs:
id: get_package_info
run: |
VERSION=$(uv run ci-pyproject-version)
echo "package_dir=${{ inputs.package-name }}_${VERSION}" >> $GITHUB_OUTPUT
echo "package_dir=${PACKAGE_NAME}_${VERSION}" >> $GITHUB_OUTPUT
shell: bash

- name: Prepare release directory
Expand All @@ -38,5 +33,5 @@ runs:
- name: Upload release tarball
uses: actions/upload-artifact@v7
with:
name: ${{ inputs.package-name }}_release
name: ${{ env.PACKAGE_NAME }}_release
path: ${{ steps.get_package_info.outputs.package_dir }}.tar.gz
7 changes: 1 addition & 6 deletions .github/actions/docker/show-logs/action.yml
Original file line number Diff line number Diff line change
@@ -1,14 +1,9 @@
name: Show Container Logs
description: Shows logs from a Docker Compose container.

inputs:
container-name:
description: Name of the container to show logs for
required: true

runs:
using: composite
steps:
- name: Show container logs
run: docker compose logs ${{ inputs.container-name }}
run: docker compose logs ${{ github.event.repository.name }}
shell: bash
19 changes: 12 additions & 7 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,25 +8,30 @@ on:
branches:
- main

env:
PACKAGE_NAME: python_template_server

jobs:
build-wheel:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: ./.github/actions/setup/set-package-name
if: ${{ github.event.repository.name == 'template-python' }}
- uses: javidahmed64592/template-python/.github/actions/setup/set-package-name@main
if: ${{ github.event.repository.name != 'template-python' }}
- uses: ./.github/actions/build/build-wheel
if: ${{ github.repository == 'javidahmed64592/template-python' }}
if: ${{ github.event.repository.name == 'template-python' }}
- uses: javidahmed64592/template-python/.github/actions/build/build-wheel@main
if: ${{ github.repository != 'javidahmed64592/template-python' }}
if: ${{ github.event.repository.name != 'template-python' }}

verify-structure:
runs-on: ubuntu-latest
needs: build-wheel
steps:
- uses: actions/checkout@v6
- uses: ./.github/actions/setup/set-package-name
if: ${{ github.event.repository.name == 'template-python' }}
- uses: javidahmed64592/template-python/.github/actions/setup/set-package-name@main
if: ${{ github.event.repository.name != 'template-python' }}
- uses: ./.github/actions/build/verify-structure
if: ${{ github.repository == 'javidahmed64592/template-python' }}
if: ${{ github.event.repository.name == 'template-python' }}
- uses: javidahmed64592/template-python/.github/actions/build/verify-structure@main
if: ${{ github.repository != 'javidahmed64592/template-python' }}
if: ${{ github.event.repository.name != 'template-python' }}
35 changes: 18 additions & 17 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,69 +8,70 @@ on:
branches:
- main

env:
PACKAGE_NAME: python_template_server

jobs:
validate-pyproject:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: ./.github/actions/ci/validate-pyproject
if: ${{ github.repository == 'javidahmed64592/template-python' }}
if: ${{ github.event.repository.name == 'template-python' }}
- uses: javidahmed64592/template-python/.github/actions/ci/validate-pyproject@main
if: ${{ github.repository != 'javidahmed64592/template-python' }}
if: ${{ github.event.repository.name != 'template-python' }}

ruff:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: ./.github/actions/ci/ruff
if: ${{ github.repository == 'javidahmed64592/template-python' }}
if: ${{ github.event.repository.name == 'template-python' }}
- uses: javidahmed64592/template-python/.github/actions/ci/ruff@main
if: ${{ github.repository != 'javidahmed64592/template-python' }}
if: ${{ github.event.repository.name != 'template-python' }}

mypy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: ./.github/actions/ci/mypy
if: ${{ github.repository == 'javidahmed64592/template-python' }}
if: ${{ github.event.repository.name == 'template-python' }}
- uses: javidahmed64592/template-python/.github/actions/ci/mypy@main
if: ${{ github.repository != 'javidahmed64592/template-python' }}
if: ${{ github.event.repository.name != 'template-python' }}

pytest:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: ./.github/actions/ci/pytest
if: ${{ github.repository == 'javidahmed64592/template-python' }}
if: ${{ github.event.repository.name == 'template-python' }}
- uses: javidahmed64592/template-python/.github/actions/ci/pytest@main
if: ${{ github.repository != 'javidahmed64592/template-python' }}
if: ${{ github.event.repository.name != 'template-python' }}

bandit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: ./.github/actions/setup/set-package-name
if: ${{ github.event.repository.name == 'template-python' }}
- uses: javidahmed64592/template-python/.github/actions/setup/set-package-name@main
if: ${{ github.event.repository.name != 'template-python' }}
- uses: ./.github/actions/ci/bandit
if: ${{ github.repository == 'javidahmed64592/template-python' }}
if: ${{ github.event.repository.name == 'template-python' }}
- uses: javidahmed64592/template-python/.github/actions/ci/bandit@main
if: ${{ github.repository != 'javidahmed64592/template-python' }}
if: ${{ github.event.repository.name != 'template-python' }}

pip-audit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: ./.github/actions/ci/pip-audit
if: ${{ github.repository == 'javidahmed64592/template-python' }}
if: ${{ github.event.repository.name == 'template-python' }}
- uses: javidahmed64592/template-python/.github/actions/ci/pip-audit@main
if: ${{ github.repository != 'javidahmed64592/template-python' }}
if: ${{ github.event.repository.name != 'template-python' }}

version-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: ./.github/actions/ci/version-check
if: ${{ github.repository == 'javidahmed64592/template-python' }}
if: ${{ github.event.repository.name == 'template-python' }}
- uses: javidahmed64592/template-python/.github/actions/ci/version-check@main
if: ${{ github.repository != 'javidahmed64592/template-python' }}
if: ${{ github.event.repository.name != 'template-python' }}
62 changes: 21 additions & 41 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,6 @@ on:
- main
workflow_dispatch:

env:
PACKAGE_NAME: python_template_server
CONTAINER_NAME: python-template-server

jobs:
build-docker:
runs-on: ubuntu-latest
Expand All @@ -21,32 +17,28 @@ jobs:
- uses: actions/checkout@v6

- uses: ./.github/actions/docker/build-start-services
if: ${{ github.repository == 'javidahmed64592/python-template-server' }}
if: ${{ github.event.repository.name == 'python-template-server' }}
- uses: javidahmed64592/python-template-server/.github/actions/docker/build-start-services@main
if: ${{ github.repository != 'javidahmed64592/python-template-server' }}
if: ${{ github.event.repository.name != 'python-template-server' }}

- uses: ./.github/actions/docker/show-logs
if: ${{ github.repository == 'javidahmed64592/python-template-server' }}
with:
container-name: ${{ env.CONTAINER_NAME }}
if: ${{ github.event.repository.name == 'python-template-server' }}
- uses: javidahmed64592/python-template-server/.github/actions/docker/show-logs@main
if: ${{ github.repository != 'javidahmed64592/python-template-server' }}
with:
container-name: ${{ env.CONTAINER_NAME }}
if: ${{ github.event.repository.name != 'python-template-server' }}

- uses: ./.github/actions/docker/check-containers
if: ${{ github.repository == 'javidahmed64592/python-template-server' }}
if: ${{ github.event.repository.name == 'python-template-server' }}
with:
port: 443
- uses: javidahmed64592/python-template-server/.github/actions/docker/check-containers@main
if: ${{ github.repository != 'javidahmed64592/python-template-server' }}
if: ${{ github.event.repository.name != 'python-template-server' }}
with:
port: 443

- uses: ./.github/actions/docker/stop-services
if: ${{ github.repository == 'javidahmed64592/python-template-server' }}
if: ${{ github.event.repository.name == 'python-template-server' }}
- uses: javidahmed64592/python-template-server/.github/actions/docker/stop-services@main
if: ${{ github.repository != 'javidahmed64592/python-template-server' }}
if: ${{ github.event.repository.name != 'python-template-server' }}

prepare-release:
runs-on: ubuntu-latest
Expand All @@ -55,15 +47,12 @@ jobs:
steps:
- uses: actions/checkout@v6
- uses: javidahmed64592/template-python/.github/actions/setup/install-python-dev@main
- uses: javidahmed64592/template-python/.github/actions/setup/set-package-name@main

- uses: ./.github/actions/docker/prepare-release
if: ${{ github.repository == 'javidahmed64592/python-template-server' }}
with:
package-name: ${{ env.PACKAGE_NAME }}
if: ${{ github.event.repository.name == 'python-template-server' }}
- uses: javidahmed64592/python-template-server/.github/actions/docker/prepare-release@main
if: ${{ github.repository != 'javidahmed64592/python-template-server' }}
with:
package-name: ${{ env.PACKAGE_NAME }}
if: ${{ github.event.repository.name != 'python-template-server' }}

publish-release:
runs-on: ubuntu-latest
Expand All @@ -76,26 +65,23 @@ jobs:
steps:
- uses: actions/checkout@v6
- uses: javidahmed64592/template-python/.github/actions/setup/install-python-core@main
- uses: javidahmed64592/template-python/.github/actions/setup/set-package-name@main

- uses: ./.github/actions/docker/check-repo-name
if: ${{ github.repository == 'javidahmed64592/python-template-server' }}
if: ${{ github.event.repository.name == 'python-template-server' }}
id: check_repo_name_local
with:
repository: ${{ github.repository }}
- uses: javidahmed64592/python-template-server/.github/actions/docker/check-repo-name@main
if: ${{ github.repository != 'javidahmed64592/python-template-server' }}
if: ${{ github.event.repository.name != 'python-template-server' }}
id: check_repo_name_remote
with:
repository: ${{ github.repository }}
- id: check_repo_name
run: echo "should_release=${{ steps.check_repo_name_local.outputs.should_release || steps.check_repo_name_remote.outputs.should_release }}" >> $GITHUB_OUTPUT
shell: bash

- uses: ./.github/actions/docker/get-version
if: steps.check_repo_name.outputs.should_release == 'true' && github.repository == 'javidahmed64592/python-template-server'
if: steps.check_repo_name.outputs.should_release == 'true' && github.event.repository.name == 'python-template-server'
id: get_version_local
- uses: javidahmed64592/python-template-server/.github/actions/docker/get-version@main
if: steps.check_repo_name.outputs.should_release == 'true' && github.repository != 'javidahmed64592/python-template-server'
if: steps.check_repo_name.outputs.should_release == 'true' && github.event.repository.name != 'python-template-server'
id: get_version_remote
- id: get_version
if: steps.check_repo_name.outputs.should_release == 'true'
Expand All @@ -105,12 +91,12 @@ jobs:
shell: bash

- uses: ./.github/actions/docker/check-tag
if: steps.check_repo_name.outputs.should_release == 'true' && github.repository == 'javidahmed64592/python-template-server'
if: steps.check_repo_name.outputs.should_release == 'true' && github.event.repository.name == 'python-template-server'
id: check_tag_local
with:
version: ${{ steps.get_version.outputs.version }}
- uses: javidahmed64592/python-template-server/.github/actions/docker/check-tag@main
if: steps.check_repo_name.outputs.should_release == 'true' && github.repository != 'javidahmed64592/python-template-server'
if: steps.check_repo_name.outputs.should_release == 'true' && github.event.repository.name != 'python-template-server'
id: check_tag_remote
with:
version: ${{ steps.get_version.outputs.version }}
Expand Down Expand Up @@ -162,21 +148,15 @@ jobs:
platforms: linux/amd64,linux/arm64

- uses: ./.github/actions/docker/generate-release-notes
if: steps.check_repo_name.outputs.should_release == 'true' && steps.check_tag.outputs.tag_exists == 'false' && github.repository == 'javidahmed64592/python-template-server'
if: steps.check_repo_name.outputs.should_release == 'true' && steps.check_tag.outputs.tag_exists == 'false' && github.event.repository.name == 'python-template-server'
id: release_notes_local
with:
version: ${{ steps.get_version.outputs.version }}
container-name: ${{ env.CONTAINER_NAME }}
package-name: ${{ env.PACKAGE_NAME }}
repository: ${{ github.repository }}
- uses: javidahmed64592/python-template-server/.github/actions/docker/generate-release-notes@main
if: steps.check_repo_name.outputs.should_release == 'true' && steps.check_tag.outputs.tag_exists == 'false' && github.repository != 'javidahmed64592/python-template-server'
if: steps.check_repo_name.outputs.should_release == 'true' && steps.check_tag.outputs.tag_exists == 'false' && github.event.repository.name != 'python-template-server'
id: release_notes_remote
with:
version: ${{ steps.get_version.outputs.version }}
container-name: ${{ env.CONTAINER_NAME }}
package-name: ${{ env.PACKAGE_NAME }}
repository: ${{ github.repository }}
- id: release_notes
if: steps.check_repo_name.outputs.should_release == 'true' && steps.check_tag.outputs.tag_exists == 'false'
run: echo "release_notes_file=${{ steps.release_notes_local.outputs.release_notes_file || steps.release_notes_remote.outputs.release_notes_file }}" >> $GITHUB_OUTPUT
Expand All @@ -187,7 +167,7 @@ jobs:
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ steps.get_version.outputs.tag }}
name: "${{ env.CONTAINER_NAME }} ${{ steps.get_version.outputs.version }}"
name: "${{ github.event.repository.name }} ${{ steps.get_version.outputs.version }}"
body_path: ${{ steps.release_notes.outputs.release_notes_file }}
draft: false
prerelease: false
Expand Down