diff --git a/.github/workflows/docker.yml b/.github/workflows/generate-release.yml similarity index 52% rename from .github/workflows/docker.yml rename to .github/workflows/generate-release.yml index 259cf5da..5a1c819e 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/generate-release.yml @@ -1,45 +1,64 @@ -name: docker +name: generate-release on: release: types: [ published ] - workflow_dispatch: env: - REGISTRY: ghcr.io + REGISTRY: docker.io IMAGE_NAME: ${{ github.repository }} + platforms: linux/amd64,linux/arm64 jobs: build-and-push-image: runs-on: ubuntu-latest + + strategy: + matrix: + type: [ local, external ] + permissions: contents: read packages: write + + outputs: + version: ${{ steps.version.outputs.version }} + steps: + - name: Checkout repository uses: actions/checkout@v4 - - name: Log in to the Container registry + + - name: Log in to Docker Hub uses: docker/login-action@v3 with: - registry: ${{ env.REGISTRY }} - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + - name: Extract metadata (tags, labels) for Docker id: meta uses: docker/metadata-action@v5 with: images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} tags: | - type=ref,event=branch - type=ref,event=pr type=semver,pattern={{version}} + type=semver,pattern={{version}}-${{ matrix.type }} type=semver,pattern={{major}}.{{minor}} + type=semver,pattern={{major}}.{{minor}}-${{ matrix.type }} + type=semver,pattern={{major}} + type=semver,pattern={{major}}-${{ matrix.type }} type=sha + - name: Build and push Docker image uses: docker/build-push-action@v5 with: context: . - file: Dockerfile.external + file: Dockerfile.${{ matrix.type }} + platforms: ${{ env.platforms }} push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} + + - name: Version output + id: version + run: echo "version=${{ steps.meta.outputs.version }}" >> "$GITHUB_OUTPUT" diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index fc10e87e..7d4425fd 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -17,13 +17,13 @@ repos: hooks: - id: black name: Formatting (black) - entry: black + entry: make format language: system types: [python] stages: [commit] - id: ruff name: Linter (ruff) - entry: ruff + entry: make lint language: system types: [python] stages: [commit] @@ -40,4 +40,4 @@ repos: pass_filenames: false language: system types: [python] - stages: [push] \ No newline at end of file + stages: [push] diff --git a/Makefile b/Makefile index 7b9a8469..42d0f7cb 100644 --- a/Makefile +++ b/Makefile @@ -12,20 +12,23 @@ test-coverage: PYTHONPATH=. poetry run pytest tests --cov private_gpt --cov-report term --cov-report=html --cov-report xml --junit-xml=tests-results.xml black: - poetry run black . --check + PYTHONPATH=. poetry run black . --check ruff: - poetry run ruff check private_gpt tests + PYTHONPATH=. poetry run ruff check private_gpt tests format: - poetry run black . - poetry run ruff check private_gpt tests --fix + PYTHONPATH=. poetry run black . + +lint: + PYTHONPATH=. poetry run ruff check private_gpt tests --fix mypy: - poetry run mypy private_gpt + PYTHONPATH=. poetry run mypy private_gpt check: make format + make lint make mypy ########################################################################################################################