Main Workflow for "datascope" #89
Workflow file for this run
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
# This is the main workflow for the "datascope" module. | |
name: Main Workflow for "datascope" | |
on: | |
push: | |
branches: [ "main" ] | |
paths: ["datascope/**", "setup.py", "setup.cfg", "requirements*.txt", "MANIFEST.in", "pyproject.toml"] | |
tags: [ "v*" ] | |
pull_request: | |
branches: [ "main" ] | |
paths: ["datascope/**", "setup.py", "setup.cfg", "requirements*.txt", "MANIFEST.in", "pyproject.toml"] | |
workflow_dispatch: | |
inputs: | |
publish: | |
type: boolean | |
description: Run the Packaging and Publish Process. | |
required: false | |
default: true | |
env: | |
python-version: "3.9" | |
jobs: | |
test: | |
name: Run Full Tests | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: ["3.9", "3.10", "3.11", "3.12"] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v3 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
make setup-dev | |
- name: Lint | |
run: | | |
make lint | |
- name: Test | |
run: | | |
make test | |
version: | |
name: Extract Module Version | |
runs-on: ubuntu-latest | |
outputs: | |
version: ${{ steps.version.outputs.VERSION }} | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Python ${{ env.python-version }} | |
uses: actions/setup-python@v3 | |
with: | |
python-version: ${{ env.python-version }} | |
- name: Check Version File | |
id: version | |
run: | | |
VERSION=$(./dev/scripts/update-version.py datascope/version.py) | |
echo "VERSION=${VERSION}" | |
echo "VERSION=${VERSION}" >> "$GITHUB_OUTPUT" | |
publish: | |
name: Packge and Publish | |
needs: [test, version] | |
uses: easeml/datascope/.github/workflows/reusable-publish.yml@main | |
if: ${{ (github.ref_type == 'tag' && github.ref_name == format('v{0}', needs.version.outputs.version) ) || inputs.publish == true }} | |
secrets: inherit | |
with: | |
package-path: "." | |
version-increment: false | |
package-wheels: false | |
publish-test: true | |
publish: true | |
pypi-api-token-secret: "PYPI_API_TOKEN_DATASCOPE" | |
pypi-test-api-token-secret: "PYPI_TEST_API_TOKEN_DATASCOPE" | |
debug: | |
name: Debug | |
runs-on: ubuntu-latest | |
needs: version | |
steps: | |
- name: Check Version File | |
id: version | |
run: | | |
echo github.ref_name=${{ github.ref_name }} | |
echo github.ref_type=${{ github.ref_type }} | |
echo "(github.ref_type == 'tag') == ${{ github.ref_type == 'tag' }}" | |
echo "needs.version.outputs == ${{ needs.version.outputs }}" | |
echo "format('v{0}', needs.version.outputs.version) == ${{ format('v{0}', needs.version.outputs.version) }}" | |
echo "github.ref_name == ${{ github.ref_name }}" | |
echo "(github.ref_name == format('v{0}', needs.version.outputs.version)) == ${{ github.ref_name == format('v{0}', needs.version.outputs.version) }}" | |
echo "(github.ref_type == 'tag' && github.ref_name == format('v{0}', needs.version.outputs.version) ) == ${{ (github.ref_type == 'tag' && github.ref_name == format('v{0}', needs.version.outputs.version) ) }}" | |
echo "(inputs.publish == true) == ${{ inputs.publish == true }}" | |
echo "((github.ref_type == 'tag' && github.ref_name == format('v{0}', needs.version.outputs.version) ) || inputs.publish == true) == ${{ (github.ref_type == 'tag' && github.ref_name == format('v{0}', needs.version.outputs.version) ) || inputs.publish == true }}" |