Skip to content

Commit

Permalink
Setting up github actions for SQLAlachemy v1 (#8)
Browse files Browse the repository at this point in the history
* Modified example.py

* workflow dispatch

* Added github workflows

* Updated publishing to test pypi

* Check

* Check

* Check

* Check

* Check

* Check

* Check

* Check

* Fixed the github actions not working issue

* Ignore imports in mypy

* Minor fix

* Minor fix
  • Loading branch information
jprakash-db authored Nov 18, 2024
1 parent c4cb345 commit f6c2940
Show file tree
Hide file tree
Showing 6 changed files with 155 additions and 0 deletions.
1 change: 1 addition & 0 deletions .github/workflows/code-quality-checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ on:
pull_request:
branches:
- v1/main
workflow_dispatch:
jobs:
check-linting:
runs-on: ubuntu-latest
Expand Down
25 changes: 25 additions & 0 deletions .github/workflows/dco-check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: DCO Check

on: [pull_request]

jobs:
check:
runs-on: ubuntu-latest
steps:
- name: Check for DCO
id: dco-check
uses: tisonkun/[email protected]
- name: Comment about DCO status
uses: actions/github-script@v6
if: ${{ failure() }}
with:
script: |
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: `Thanks for your contribution! To satisfy the DCO policy in our \
[contributing guide](https://github.com/databricks/databricks-sqlalchemy/blob/main/CONTRIBUTING.md) \
every commit message must include a sign-off message. One or more of your commits is missing this message. \
You can reword previous commit messages with an interactive rebase (\`git rebase -i main\`).`
})
62 changes: 62 additions & 0 deletions .github/workflows/publish-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
name: Publish to PyPI [Test]
on: [push]
jobs:
test-pypi:
name: Create patch version number and push to test-pypi
runs-on: ubuntu-latest
steps:
#----------------------------------------------
# check-out repo and set-up python
#----------------------------------------------
- name: Check out repository
uses: actions/checkout@v2
- name: Set up python
id: setup-python
uses: actions/setup-python@v2
with:
python-version: 3.9
#----------------------------------------------
# ----- install & configure poetry -----
#----------------------------------------------
- name: Install Poetry
uses: snok/install-poetry@v1
with:
virtualenvs-create: true
virtualenvs-in-project: true
installer-parallel: true
#----------------------------------------------
# load cached venv if cache exists
#----------------------------------------------
- name: Load cached venv
id: cached-poetry-dependencies
uses: actions/cache@v2
with:
path: .venv
key: venv-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ github.event.repository.name }}-${{ hashFiles('**/poetry.lock') }}
#----------------------------------------------
# install dependencies if cache does not exist
#----------------------------------------------
- name: Install dependencies
if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true'
run: poetry install --no-interaction --no-root
#----------------------------------------------
# Get the current version and increment it (test-pypi requires a unique version number)
#----------------------------------------------
- name: Get next version
uses: reecetech/[email protected]
id: version
with:
scheme: semver
increment: patch
#----------------------------------------------
# Tell poetry to update the version number
#----------------------------------------------
- name: Update pyproject.toml
run: poetry version ${{ steps.version.outputs.major-version }}.${{ steps.version.outputs.minor-version }}.dev$(date +%s)

- name: Build and publish to pypi
uses: JRubics/[email protected]
with:
pypi_token: ${{ secrets.SQLALCHEMY_TEST_PYPI_TOKEN }}
repository_name: "testpypi"
repository_url: "https://test.pypi.org/legacy/"
65 changes: 65 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
name: Publish to PyPI [Production]
on:
release:
types: [published]
jobs:
publish:
name: Publish
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/v1/main'
steps:
#----------------------------------------------
# check-out repo and set-up python
#----------------------------------------------
- name: Check out repository
uses: actions/checkout@v2
- name: Set up python
id: setup-python
uses: actions/setup-python@v2
with:
python-version: 3.9
#----------------------------------------------
# ----- install & configure poetry -----
#----------------------------------------------
- name: Install Poetry
uses: snok/install-poetry@v1
with:
virtualenvs-create: true
virtualenvs-in-project: true
installer-parallel: true
#----------------------------------------------
# load cached venv if cache exists
#----------------------------------------------
- name: Load cached venv
id: cached-poetry-dependencies
uses: actions/cache@v2
with:
path: .venv
key: venv-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ github.event.repository.name }}-${{ hashFiles('**/poetry.lock') }}
#----------------------------------------------
# install dependencies if cache does not exist
#----------------------------------------------
- name: Install dependencies
if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true'
run: poetry install --no-interaction --no-root
#------------------------------------------------------------------------------------------------
# Here we use version-increment to fetch the latest tagged version (we won't increment it though)
#------------------------------------------------------------------------------------------------
- name: Get next version
uses: reecetech/[email protected]
id: version
with:
scheme: semver
increment: patch
#-----------------------------------------------------------------------------
# Tell poetry to use the `current-version` that was found by the previous step
#-----------------------------------------------------------------------------
- name: Update pyproject.toml
run: poetry version ${{ steps.version.outputs.current-version }}
#----------------------------------------------
# Attempt push to test-pypi
#----------------------------------------------
- name: Build and publish to pypi
uses: JRubics/[email protected]
with:
pypi_token: ${{ secrets.SQLALCHEMY_PROD_PYPI_TOKEN }}
2 changes: 2 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -35,3 +35,5 @@ build-backend = "poetry.core.masonry.api"
[tool.black]
exclude = '/(\.eggs|\.git|\.hg|\.mypy_cache|\.nox|\.tox|\.venv|\.svn|_build|buck-out|build|dist|thrift_api)/'

[tool.mypy]
ignore_missing_imports = true
Empty file added src/databricks/__init__.py
Empty file.

0 comments on commit f6c2940

Please sign in to comment.