diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..2793c90 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,70 @@ +name: Firebolt Python Release + +on: + workflow_dispatch: + inputs: + pre-release-tag: + required: false + description: 'Tag for pre-release (optional)' + major-release: + required: false + description: 'Trigger a major release (optional). Leave empty for regular release.' + +jobs: + integration-tests: + runs-on: ubuntu-latest + steps: + - name: Check out code + uses: actions/checkout@v2 + + - name: Set up Python 3.7 + uses: actions/setup-python@v2 + with: + python-version: 3.7 + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install ".[dev]" + + - name: Setup database and engine + id: setup + uses: firebolt-db/integration-testing-setup@master + with: + firebolt-username: ${{ secrets.FIREBOLT_USERNAME }} + firebolt-password: ${{ secrets.FIREBOLT_PASSWORD }} + api-endpoint: "api.dev.firebolt.io" + region: "us-east-1" + + - name: Run integration tests + env: + USER_NAME: ${{ secrets.FIREBOLT_USERNAME }} + PASSWORD: ${{ secrets.FIREBOLT_PASSWORD }} + DATABASE_NAME: ${{ steps.setup.outputs.database_name }} + ENGINE_NAME: ${{ steps.setup.outputs.engine_name }} + ENGINE_URL: ${{ steps.setup.outputs.engine_url }} + STOPPED_ENGINE_NAME: ${{ steps.setup.outputs.stopped_engine_name }} + STOPPED_ENGINE_URL: ${{ steps.setup.outputs.stopped_engine_url }} + API_ENDPOINT: "api.dev.firebolt.io" + run: | + pytest -o log_cli=true -o log_cli_level=INFO tests/integration + + publish: + runs-on: ubuntu-latest + permissions: + contents: write + needs: integration-tests + steps: + - name: Check out code + uses: actions/checkout@v2 + with: + fetch-depth: 0 + token: ${{ secrets.RELEASE_PAT }} + + - name: 'Publish action' + uses: firebolt-db/action-python-release@main + with: + pre-release-tag: ${{ inputs.pre-release-tag }} + major-release: ${{ inputs.major-release }} + pypi-username: ${{ secrets.PYPI_USERNAME }} + pypi-password: ${{ secrets.PYPI_PASSWORD }} diff --git a/tests/integration/conftest.py b/tests/integration/conftest.py index 341a825..284ebb7 100644 --- a/tests/integration/conftest.py +++ b/tests/integration/conftest.py @@ -12,10 +12,10 @@ LOGGER = getLogger(__name__) -ENGINE_NAME_ENV = "engine_name" -DATABASE_NAME_ENV = "database_name" -USERNAME_ENV = "username" -PASSWORD_ENV = "password" +ENGINE_NAME_ENV = "ENGINE_NAME" +DATABASE_NAME_ENV = "DATABASE_NAME" +USERNAME_ENV = "USER_NAME" +PASSWORD_ENV = "PASSWORD" def must_env(var_name: str) -> str: