diff --git a/.github/workflows/publish_sdm_connector.yml b/.github/workflows/publish_sdm_connector.yml index 609e626d..0e0210a0 100644 --- a/.github/workflows/publish_sdm_connector.yml +++ b/.github/workflows/publish_sdm_connector.yml @@ -24,34 +24,8 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - uses: hynek/build-and-inspect-python-package@v2 - - - uses: actions/upload-artifact@v4 - with: - name: Packages-${{ github.run_id }} - path: | - /tmp/baipp/dist/*.whl - /tmp/baipp/dist/*.tar.gz - publish_sdm: - name: Publish SDM to DockerHub - if: startsWith(github.ref, 'refs/tags/v') || github.event_name == 'workflow_dispatch' - runs-on: ubuntu-latest - needs: [build] - environment: - name: DockerHub - url: https://hub.docker.com/r/airbyte/source-declarative-manifest/tags - - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Detect Version (release tag) + - name: Detect Release Tag Version if: startsWith(github.ref, 'refs/tags/v') run: | DETECTED_VERSION=${{ github.ref_name }} @@ -61,7 +35,7 @@ jobs: echo "Setting version to '$DETECTED_VERSION'" echo "DETECTED_VERSION=${DETECTED_VERSION}" >> $GITHUB_ENV - - name: Set Version (workflow_dispatch) + - name: Validate and set VERSION from tag ('${{ github.ref_name }}') and input (${{ github.event.inputs.version || 'none' }}) if: github.event_name == 'workflow_dispatch' run: | INPUT_VERSION=${{ github.event.inputs.version }} @@ -88,12 +62,50 @@ jobs: fi echo "Setting version to '$VERSION'" echo "VERSION=${VERSION}" >> $GITHUB_ENV + echo "VERSION=${VERSION}" >> $GITHUB_OUTPUT # Check if version is a prerelease version (will not tag 'latest') if [[ "${VERSION}" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then echo "IS_PRERELEASE=false" >> $GITHUB_ENV + echo "IS_PRERELEASE=false" >> $GITHUB_OUTPUT else echo "IS_PRERELEASE=true" >> $GITHUB_ENV + echo "IS_PRERELEASE=true" >> $GITHUB_OUTPUT fi + + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - uses: hynek/build-and-inspect-python-package@v2 + env: + # Pass in the evaluated version from the previous step + # More info: https://github.com/mtkennerly/poetry-dynamic-versioning#user-content-environment-variables + POETRY_DYNAMIC_VERSIONING_BYPASS: ${{ env.VERSION }} + + - uses: actions/upload-artifact@v4 + with: + name: Packages-${{ github.run_id }} + path: | + /tmp/baipp/dist/*.whl + /tmp/baipp/dist/*.tar.gz + + publish_sdm: + name: Publish SDM to DockerHub + if: startsWith(github.ref, 'refs/tags/v') || github.event_name == 'workflow_dispatch' + runs-on: ubuntu-latest + needs: [build] + environment: + name: DockerHub + url: https://hub.docker.com/r/airbyte/source-declarative-manifest/tags + env: + VERSION: ${{ needs.build.outputs.VERSION }} + IS_PRERELEASE: ${{ needs.build.outputs.IS_PRERELEASE }} + + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + # We need to download the build artifact again because the previous job was on a different runner - name: Download Build Artifact uses: actions/download-artifact@v4 @@ -113,7 +125,7 @@ jobs: username: ${{ secrets.DOCKER_HUB_USERNAME }} password: ${{ secrets.DOCKER_HUB_PASSWORD }} - - name: Check for existing tag + - name: "Check for existing tag (version: ${{ env.VERSION || 'none' }} )" if: env.VERSION != '' run: | tag="airbyte/source-declarative-manifest:${{ env.VERSION }}" @@ -139,7 +151,7 @@ jobs: tags: | airbyte/source-declarative-manifest:${{ github.sha }} - - name: Build and push (version tag) + - name: "Build and push (version tag: ${{ env.VERSION || 'none'}})" # Only run if the version is set if: env.VERSION != '' && github.event.inputs.dry_run == 'false' uses: docker/build-push-action@v5