Group migration workflow improvements #9183
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: build | |
on: | |
pull_request: | |
types: [opened, synchronize] | |
merge_group: | |
types: [checks_requested] | |
push: | |
# Always run on push to main. The build cache can only be reused | |
# if it was saved by a run from the repository's default branch. | |
# The run result will be identical to that from the merge queue | |
# because the commit is identical, yet we need to perform it to | |
# seed the build cache. | |
branches: | |
- main | |
env: | |
HATCH_VERSION: 1.9.4 | |
jobs: | |
ci: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
pyVersion: [ '3.10', '3.11', '3.12', '3.13' ] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Install Python | |
uses: actions/setup-python@v5 | |
with: | |
cache: 'pip' | |
cache-dependency-path: '**/pyproject.toml' | |
python-version: ${{ matrix.pyVersion }} | |
- name: Install hatch | |
run: pip install hatch==$HATCH_VERSION | |
- name: Run unit tests | |
run: hatch run test | |
- name: Publish test coverage | |
uses: codecov/codecov-action@v5 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
fmt: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Install Python | |
uses: actions/setup-python@v5 | |
with: | |
cache: 'pip' | |
cache-dependency-path: '**/pyproject.toml' | |
python-version: 3.10.x | |
- name: Install hatch | |
run: pip install hatch==$HATCH_VERSION | |
- name: Reformat code | |
run: make fmt | |
- name: Install Databricks CLI | |
uses: databricks/setup-cli@main | |
- name: Install LSQL | |
run: | | |
databricks labs install lsql | |
databricks labs installed | |
env: # this is a temporary hack | |
DATABRICKS_HOST: any | |
DATABRICKS_TOKEN: any | |
- name: Reformat SQL queries | |
run: databricks labs lsql fmt --normalize-case false --exclude tests/unit/source_code/samples/ | |
- name: Fail on differences | |
run: | | |
# Exit with status code 1 if there are differences (i.e. unformatted files) | |
git diff --exit-code |