From be8bd512f41ed1dec77951cd8519a16911afa25b Mon Sep 17 00:00:00 2001 From: Jothi Prakash Date: Fri, 15 Nov 2024 12:24:36 +0530 Subject: [PATCH] Added github workflows --- .github/workflows/dco-check.yml | 25 ++++++++++++ .github/workflows/publish-test.yml | 64 +++++++++++++++++++++++++++++ .github/workflows/publish.yml | 65 ++++++++++++++++++++++++++++++ example.py | 4 -- 4 files changed, 154 insertions(+), 4 deletions(-) create mode 100644 .github/workflows/dco-check.yml create mode 100644 .github/workflows/publish-test.yml create mode 100644 .github/workflows/publish.yml diff --git a/.github/workflows/dco-check.yml b/.github/workflows/dco-check.yml new file mode 100644 index 0000000..597b8b7 --- /dev/null +++ b/.github/workflows/dco-check.yml @@ -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/actions-dco@v1.1 + - 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-sql-python/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\`).` + }) diff --git a/.github/workflows/publish-test.yml b/.github/workflows/publish-test.yml new file mode 100644 index 0000000..4e05b96 --- /dev/null +++ b/.github/workflows/publish-test.yml @@ -0,0 +1,64 @@ +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/version-increment@2022.2.4 + 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) + #---------------------------------------------- + # Attempt push to test-pypi + #---------------------------------------------- + - name: Build and publish to pypi + uses: JRubics/poetry-publish@v1.10 + with: + pypi_token: ${{ secrets.SQLALCHEMY_TEST_PYPI_TOKEN }} + repository_name: "testpypi" + repository_url: "https://test.pypi.org/legacy/" diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 0000000..970229c --- /dev/null +++ b/.github/workflows/publish.yml @@ -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/version-increment@2022.2.4 + 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/poetry-publish@v1.10 + with: + pypi_token: ${{ secrets.SQLALCHEMY_PROD_PYPI_TOKEN }} diff --git a/example.py b/example.py index 32d3e5a..d9581bf 100644 --- a/example.py +++ b/example.py @@ -113,7 +113,3 @@ class SampleObject(base): assert len(output) == 2 base.metadata.drop_all() - - - -print("THIS is Added for no readon")