From e2ee682f2228b4f3092fd4a0d957f5819d7bd249 Mon Sep 17 00:00:00 2001 From: Javid Ahmed Date: Fri, 6 Mar 2026 01:11:35 +0000 Subject: [PATCH 1/5] Refactor CI and build workflows to use repository name checks for conditional steps --- .github/workflows/build.yml | 19 ++++++++++++------- .github/workflows/ci.yml | 35 ++++++++++++++++++----------------- 2 files changed, 30 insertions(+), 24 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0948ccf..135fc8b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -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' }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8654a71..6455dca 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -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' }} From c56540a25133bf158bbf007009c15d95ddfeb83b Mon Sep 17 00:00:00 2001 From: Javid Ahmed Date: Fri, 6 Mar 2026 01:41:23 +0000 Subject: [PATCH 2/5] Refactor Docker workflows to use github.event.repository.name for repository checks and remove unnecessary inputs --- .../actions/docker/check-repo-name/action.yml | 7 +- .../docker/generate-release-notes/action.yml | 15 +--- .../actions/docker/prepare-release/action.yml | 9 +-- .github/actions/docker/show-logs/action.yml | 7 +- .github/workflows/docker.yml | 70 ++++++++----------- 5 files changed, 36 insertions(+), 72 deletions(-) diff --git a/.github/actions/docker/check-repo-name/action.yml b/.github/actions/docker/check-repo-name/action.yml index 0d7d43b..6a0b741 100644 --- a/.github/actions/docker/check-repo-name/action.yml +++ b/.github/actions/docker/check-repo-name/action.yml @@ -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) @@ -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" diff --git a/.github/actions/docker/generate-release-notes/action.yml b/.github/actions/docker/generate-release-notes/action.yml index 076c41b..40ad07a 100644 --- a/.github/actions/docker/generate-release-notes/action.yml +++ b/.github/actions/docker/generate-release-notes/action.yml @@ -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: @@ -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 diff --git a/.github/actions/docker/prepare-release/action.yml b/.github/actions/docker/prepare-release/action.yml index c32e870..7b5eb52 100644 --- a/.github/actions/docker/prepare-release/action.yml +++ b/.github/actions/docker/prepare-release/action.yml @@ -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) @@ -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 @@ -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 diff --git a/.github/actions/docker/show-logs/action.yml b/.github/actions/docker/show-logs/action.yml index 20dc9e1..facaa9b 100644 --- a/.github/actions/docker/show-logs/action.yml +++ b/.github/actions/docker/show-logs/action.yml @@ -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 diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 71144bb..405e3d4 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -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 @@ -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 @@ -56,14 +48,15 @@ jobs: - uses: actions/checkout@v6 - uses: javidahmed64592/template-python/.github/actions/setup/install-python-dev@main + - uses: ./.github/actions/setup/set-package-name + if: ${{ github.event.repository.name == 'python-template-server' }} + - uses: javidahmed64592/python-template-server/.github/actions/setup/set-package-name@main + if: ${{ github.event.repository.name != 'python-template-server' }} + - 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 @@ -77,25 +70,26 @@ jobs: - uses: actions/checkout@v6 - uses: javidahmed64592/template-python/.github/actions/setup/install-python-core@main + - uses: ./.github/actions/setup/set-package-name + if: ${{ github.event.repository.name == 'python-template-server' }} + - uses: javidahmed64592/python-template-server/.github/actions/setup/set-package-name@main + if: ${{ github.event.repository.name != 'python-template-server' }} + - 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' @@ -105,12 +99,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 }} @@ -162,21 +156,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 @@ -187,7 +175,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 From 8a088bc57940f00288682bd8981fa3f6fd257bc8 Mon Sep 17 00:00:00 2001 From: Javid Ahmed Date: Fri, 6 Mar 2026 01:43:02 +0000 Subject: [PATCH 3/5] Update Docker workflow to use template-python action for non-python-template-server repositories --- .github/workflows/docker.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 405e3d4..e90e1cf 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -72,7 +72,7 @@ jobs: - uses: ./.github/actions/setup/set-package-name if: ${{ github.event.repository.name == 'python-template-server' }} - - uses: javidahmed64592/python-template-server/.github/actions/setup/set-package-name@main + - uses: javidahmed64592/template-python/.github/actions/setup/set-package-name@main if: ${{ github.event.repository.name != 'python-template-server' }} - uses: ./.github/actions/docker/check-repo-name From d79ba0add0a3ba7a5a232ac307579ebf45e2d153 Mon Sep 17 00:00:00 2001 From: Javid Ahmed Date: Fri, 6 Mar 2026 01:44:53 +0000 Subject: [PATCH 4/5] Update set-package-name action for non-python-template-server repositories --- .github/workflows/docker.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index e90e1cf..c878ee6 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -50,7 +50,7 @@ jobs: - uses: ./.github/actions/setup/set-package-name if: ${{ github.event.repository.name == 'python-template-server' }} - - uses: javidahmed64592/python-template-server/.github/actions/setup/set-package-name@main + - uses: javidahmed64592/template-python/.github/actions/setup/set-package-name@main if: ${{ github.event.repository.name != 'python-template-server' }} - uses: ./.github/actions/docker/prepare-release From 40fe9eb23f4a3c03f2009c5a348f8d42c19dea94 Mon Sep 17 00:00:00 2001 From: Javid Ahmed Date: Fri, 6 Mar 2026 01:49:55 +0000 Subject: [PATCH 5/5] Refactor set-package-name action usage for repository checks in Docker workflows --- .github/workflows/docker.yml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index c878ee6..4f3dd40 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -47,11 +47,7 @@ jobs: steps: - uses: actions/checkout@v6 - uses: javidahmed64592/template-python/.github/actions/setup/install-python-dev@main - - - uses: ./.github/actions/setup/set-package-name - if: ${{ github.event.repository.name == 'python-template-server' }} - uses: javidahmed64592/template-python/.github/actions/setup/set-package-name@main - if: ${{ github.event.repository.name != 'python-template-server' }} - uses: ./.github/actions/docker/prepare-release if: ${{ github.event.repository.name == 'python-template-server' }} @@ -69,11 +65,7 @@ jobs: steps: - uses: actions/checkout@v6 - uses: javidahmed64592/template-python/.github/actions/setup/install-python-core@main - - - uses: ./.github/actions/setup/set-package-name - if: ${{ github.event.repository.name == 'python-template-server' }} - uses: javidahmed64592/template-python/.github/actions/setup/set-package-name@main - if: ${{ github.event.repository.name != 'python-template-server' }} - uses: ./.github/actions/docker/check-repo-name if: ${{ github.event.repository.name == 'python-template-server' }}