diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 468431a..a6a636e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -94,26 +94,6 @@ jobs: run: | uv run pytest tests/integration -v --tb=short - docker-build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - - name: Build Docker image - uses: docker/build-push-action@v5 - with: - context: . - push: false - tags: deltaglider:test - cache-from: type=gha - cache-to: type=gha,mode=max - - - name: Test Docker image - run: | - docker run --rm deltaglider:test --help e2e-test: runs-on: ubuntu-latest @@ -163,38 +143,31 @@ jobs: run: | uv run pytest tests/e2e -v --tb=short - docker-push: - needs: [lint, typecheck, test, docker-build, e2e-test] + pypi-publish: + needs: [lint, typecheck, test, e2e-test] runs-on: ubuntu-latest if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') + environment: + name: pypi + url: https://pypi.org/p/deltaglider + permissions: + id-token: write # IMPORTANT: this permission is mandatory for trusted publishing steps: - uses: actions/checkout@v4 - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 + - name: Install UV + run: | + curl -LsSf https://astral.sh/uv/${{ env.UV_VERSION }}/install.sh | sh + echo "$HOME/.cargo/bin" >> $GITHUB_PATH - - name: Log in to Docker Hub - uses: docker/login-action@v3 + - name: Set up Python + uses: actions/setup-python@v5 with: - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} + python-version: ${{ env.PYTHON_VERSION }} - - name: Extract metadata - id: meta - uses: docker/metadata-action@v5 - with: - images: deltaglider/deltaglider - tags: | - type=ref,event=tag - type=semver,pattern={{version}} - type=semver,pattern={{major}}.{{minor}} + - name: Build package + run: | + uv build - - name: Build and push Docker image - uses: docker/build-push-action@v5 - with: - context: . - push: true - tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} - cache-from: type=gha - cache-to: type=gha,mode=max \ No newline at end of file + - name: Publish to PyPI + uses: pypa/gh-action-pypi-publish@release/v1 \ No newline at end of file