update docker publish logic from other workflow #385
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Python Packaging | |
on: | |
push: | |
workflow_dispatch: | |
jobs: | |
build: | |
name: Build | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- uses: hynek/build-and-inspect-python-package@v2 | |
publish: | |
name: Publish to PyPI | |
runs-on: ubuntu-latest | |
needs: [build] | |
permissions: | |
id-token: write # IMPORTANT: this permission is mandatory for trusted publishing | |
contents: write # Needed to upload artifacts to the release | |
environment: | |
name: PyPI | |
url: "https://pypi.org/p/airbyte-cdk" | |
if: startsWith(github.ref, 'refs/tags/v') || github.event_name == 'workflow_dispatch' | |
steps: | |
- uses: actions/download-artifact@v4 | |
with: | |
name: Packages | |
path: dist | |
- name: Attach Wheel to GitHub Release | |
uses: svenstaro/upload-release-action@v2 | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
file: dist/*.whl | |
tag: ${{ github.ref }} | |
overwrite: true | |
file_glob: true | |
- name: Debug PyPI Publish Step | |
run: | | |
echo "This is where PyPI publishing would occur." | |
echo "Package files in 'dist/':" | |
ls -lh dist/ | |
# - name: Publish to PyPI (${{vars.PYPI_PUBLISH_URL}}) | |
# uses: pypa/[email protected] | |
# with: | |
# # Can be toggled at the repository level between `https://upload.pypi.org/legacy/` and `https://test.pypi.org/legacy/` | |
# repository-url: ${{vars.PYPI_PUBLISH_URL}} | |
publish_sdm: | |
name: Publish SDM to DockerHub | |
if: startsWith(github.ref, 'refs/tags/v') || github.event_name == 'workflow_dispatch' | |
runs-on: ubuntu-latest | |
needs: [publish] | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Extract version from tag | |
id: extract_version | |
run: echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_ENV | |
- name: Debug SDM Environment | |
run: | | |
echo "Simulating SDM flow for branch: $GITHUB_REF" | |
echo "Current SHA: $GITHUB_SHA" | |
echo "Target Version: $VERSION" | |
- name: Set up QEMU for multi-platform builds | |
uses: docker/setup-qemu-action@v3 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Login to Docker Hub | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKER_HUB_USERNAME }} | |
password: ${{ secrets.DOCKER_HUB_PASSWORD }} | |
# - name: Check for existing tag | |
# run: | | |
# tag="airbyte/source-declarative-manifest:${{ env.VERSION }}-${{ github.run_number }}" | |
# if DOCKER_CLI_EXPERIMENTAL=enabled docker manifest inspect "$tag" > /dev/null 2>&1; then | |
# echo "The tag $tag already exists on Dockerhub. Skipping publish to prevent overwrite." | |
# exit 1 | |
# fi | |
- name: Build and push | |
uses: docker/build-push-action@v5 | |
with: | |
context: . | |
platforms: linux/amd64,linux/arm64 | |
push: true | |
tags: | | |
airbyte/source-declarative-manifest:test | |
airbyte/source-declarative-manifest:test-${{ env.VERSION }} | |
airbyte/source-declarative-manifest:test-${{ env.VERSION }}-${{ github.run_number }} |