Skip to content

Release dbt-tests-adapter==1.8.0b1 to test #101

Release dbt-tests-adapter==1.8.0b1 to test

Release dbt-tests-adapter==1.8.0b1 to test #101

Workflow file for this run

name: "Release"
run-name: "Release ${{ inputs.package }}==${{ inputs.version_number }} to ${{ inputs.deploy-to }}"
on:
workflow_dispatch:
inputs:
package:
description: "Choose what to publish"
type: choice
options:
- dbt-adapters
- dbt-tests-adapter
version_number:
description: "The release version number (i.e. 1.0.0b1)"
type: string
required: true
deploy-to:
description: "Choose where to publish"
type: choice
options:
- prod
- test
default: prod
nightly_release:
description: "Nightly release to dev environment"
type: boolean
default: false
target_branch:
description: "The branch to release from"
type: string
default: main
workflow_call:
inputs:
package:
description: "Choose what to publish"
type: string
required: true
version_number:
description: "The release version number (i.e. 1.0.0b1)"
type: string
required: true
deploy-to:
description: "Choose where to publish"
type: string
default: prod
nightly_release:
description: "Nightly release to dev environment"
type: boolean
default: false
target_branch:
description: "The branch to release from"
type: string
default: main
# this is the permission that allows creating a new release
permissions:
contents: write
id-token: write
# will cancel previous workflows triggered by the same event and for the same ref for PRs or same SHA otherwise
concurrency:
group: ${{ github.workflow }}-${{ github.event_name }}-${{ contains(github.event_name, 'pull_request') && github.event.pull_request.head.ref || github.sha }}-${{ inputs.package }}-${{ inputs.deploy-to }}
cancel-in-progress: true
defaults:
run:
shell: bash
jobs:
release-inputs:
runs-on: ubuntu-latest
outputs:
working-dir: ${{ steps.release_inputs.outputs.working_dir }}
run-unit-tests: ${{ steps.release_inputs.outputs.run_unit_tests }}
archive-name: ${{ steps.release_inputs.outputs.archive_name }}
steps:
- id: release_inputs
run: |
working_dir="./"
run_unit_tests=true
archive_name=${{ inputs.package }}-${{ inputs.version_number }}-${{ inputs.deploy-to }}
if test "${{ inputs.package }}" = "dbt-tests-adapter"
then
working_dir="./dbt-tests-adapter"
run_unit_tests=false
fi
echo "working_dir=working_dir" >> $GITHUB_OUTPUT
echo "run_unit_tests=run_unit_tests" >> $GITHUB_OUTPUT
echo "archive_name=archive_name" >> $GITHUB_OUTPUT
bump-version-generate-changelog:
name: "Bump package version, generate changelog - dbt-adapters"
needs: [release-inputs]
uses: dbt-labs/dbt-adapters/.github/workflows/release_prep_hatch.yml@isolate-dbt-tests-adapter
with:
version_number: ${{ inputs.version_number }}
deploy_to: ${{ inputs.deploy-to }}
nightly_release: ${{ inputs.nightly_release }}
target_branch: ${{ inputs.target_branch }}
working-dir: ${{ needs.release-inputs.outputs.working-dir }}
run-unit-tests: ${{ needs.release-inputs.outputs.run-unit-tests }}
secrets: inherit
log-outputs-bump-version-generate-changelog:
name: "[Log output] Bump package version, generate changelog"
if: ${{ !failure() && !cancelled() }}
needs: [bump-version-generate-changelog]
runs-on: ubuntu-latest
steps:
- name: Print variables
run: |
echo Final SHA : ${{ needs.bump-version-generate-changelog.outputs.final_sha }}
echo Changelog Path : ${{ needs.bump-version-generate-changelog.outputs.changelog_path }}
build-and-test:
name: "Build and test"
needs: [release-inputs, bump-version-generate-changelog]
runs-on: ubuntu-latest
permissions:
id-token: write # IMPORTANT: this permission is mandatory for trusted publishing
steps:
- name: "Check out repository"
uses: actions/checkout@v4
with:
ref: ${{ needs.bump-version-generate-changelog.outputs.final_sha }}
- name: "Setup `hatch`"
uses: ./.github/actions/setup-hatch
- name: "Build ${{ inputs.package }}"
uses: ./.github/actions/build-hatch
with:
changelog-path: ${{ needs.bump-version-generate-changelog.outputs.changelog_path }}
archive-name: ${{ needs.release-inputs.outputs.archive-name }}
working-dir: ${{ needs.release-inputs.outputs.working-dir }}
github-release:
name: "GitHub release"
# ToDo: update GH release to handle adding dbt-tests-adapter and dbt-adapter assets to the same release
if: ${{ !failure() && !cancelled() && inputs.package == 'dbt-adapters' }}
needs: [release-inputs, build-and-test, bump-version-generate-changelog]
uses: dbt-labs/dbt-adapters/.github/workflows/github-release.yml@isolate-dbt-tests-adapter
with:
sha: ${{ needs.bump-version-generate-changelog.outputs.final_sha }}
version_number: ${{ inputs.version_number }}
changelog_path: ${{ needs.bump-version-generate-changelog.outputs.changelog_path }}
test_run: ${{ inputs.deploy-to == 'test' && true || false }}
archive_name: ${{ needs.release-inputs.outputs.archive-name }}
pypi-release:
name: "Publish to PyPI"
runs-on: ubuntu-latest
if: ${{ !failure() && !cancelled() }}
needs: [release-inputs]
environment:
name: ${{ inputs.deploy-to }}
url: ${{ vars.PYPI_PROJECT_URL }}
steps:
- name: "Check out repository"
uses: actions/checkout@v4
- name: "Publish to PyPI"
uses: ./.github/actions/publish-pypi
with:
archive-name: ${{ needs.release-inputs.outputs.archive-name }}
repository-url: ${{ vars.PYPI_REPOSITORY_URL }}