From 928bb48c0504731e7f6959426f2c5dd8c1ec0654 Mon Sep 17 00:00:00 2001 From: Brad Keryan Date: Thu, 22 May 2025 18:03:47 -0500 Subject: [PATCH 1/2] github: Add a publish workflow --- .github/workflows/publish.yml | 98 +++++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 .github/workflows/publish.yml diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 000000000..8abe0daeb --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,98 @@ +name: Publish nidaqmx + +on: + release: + types: [published] + workflow_dispatch: + inputs: + environment: + description: The environment to publish to. + default: 'none' + required: true + type: choice + options: + - none + - pypi + - testpypi + +env: + dist-artifact-name: nidaqmx-distribution-packages + environment: ${{ github.event_name == 'release' && 'pypi' || inputs.environment }} + environment-info: | + { + "pypi": { + "base-url": "https://pypi.org", + "upload-url": "https://upload.pypi.org/legacy/" + }, + "testpypi": { + "base-url": "https://test.pypi.org", + "upload-url": "https://test.pypi.org/legacy/" + } + } + +jobs: + check_nidaqmx: + name: Check nidaqmx + uses: ./.github/workflows/build.yml + check_docs: + name: Check docs + uses: ./.github/workflows/generate_docs.yml + build_nidaqmx: + name: Build nidaqmx + runs-on: ubuntu-latest + needs: [check_nidaqmx, check_docs] + steps: + - name: Check out repo + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + - name: Set up Python + uses: ni/python-actions/setup-python@e8f25e9a64426bd431ac124b83df11b76cdf60d5 # v0.1.0 + - name: Set up Poetry + uses: ni/python-actions/setup-poetry@e8f25e9a64426bd431ac124b83df11b76cdf60d5 # v0.1.0 + - name: Check project version + if: github.event_name == 'release' + uses: ni/python-actions/check-project-version@275868c1620d0343a006472f6300bd80f76bbd92 # users/bkeryan/update-project-version + - name: Build distribution packages + run: poetry build + - name: Upload build artifacts + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 + with: + name: ${{ env.dist-artifact-name }} + path: dist/* + publish_to_pypi: + name: Publish nidaqmx to PyPI + if: github.event_name == 'release' || inputs.environment != 'none' + runs-on: ubuntu-latest + needs: [build_nidaqmx] + environment: + # This logic is duplicated because `name` doesn't support the `env` context. + name: ${{ github.event_name == 'release' && 'pypi' || inputs.environment }} + url: ${{ fromJson(env.environment-info)[env.environment].base-url }}/p/nidaqmx + permissions: + id-token: write + steps: + - name: Download build artifacts + uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 + with: + name: ${{ env.dist-artifact-name }} + path: dist/ + - run: ls -lR + - name: Upload to ${{ env.environment }} + uses: pypa/gh-action-pypi-publish@release/v1 + with: + repository-url: ${{ fromJson(env.environment-info)[env.environment].upload-url }} + update_version: + name: Update nidaqmx version + runs-on: ubuntu-latest + needs: [build_nidaqmx] + permissions: + contents: write + pull-requests: write + steps: + - name: Check out repo + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + - name: Set up Python + uses: ni/python-actions/setup-python@e8f25e9a64426bd431ac124b83df11b76cdf60d5 # v0.1.0 + - name: Set up Poetry + uses: ni/python-actions/setup-poetry@e8f25e9a64426bd431ac124b83df11b76cdf60d5 # v0.1.0 + - name: Update project version + uses: ni/python-actions/update-project-version@275868c1620d0343a006472f6300bd80f76bbd92 # users/bkeryan/update-project-version From 384f1a8384635aed7391099218bcb9c7e4ce1173 Mon Sep 17 00:00:00 2001 From: Brad Keryan Date: Wed, 4 Jun 2025 18:46:52 -0500 Subject: [PATCH 2/2] github: Update to ni/python-actions v0.2.0 --- .github/workflows/publish.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 8abe0daeb..505b9cdcb 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -45,12 +45,12 @@ jobs: - name: Check out repo uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Set up Python - uses: ni/python-actions/setup-python@e8f25e9a64426bd431ac124b83df11b76cdf60d5 # v0.1.0 + uses: ni/python-actions/setup-python@2c946e7237558ed6d59565787f1edb2150df50ba # v0.2.0 - name: Set up Poetry - uses: ni/python-actions/setup-poetry@e8f25e9a64426bd431ac124b83df11b76cdf60d5 # v0.1.0 + uses: ni/python-actions/setup-poetry@2c946e7237558ed6d59565787f1edb2150df50ba # v0.2.0 - name: Check project version if: github.event_name == 'release' - uses: ni/python-actions/check-project-version@275868c1620d0343a006472f6300bd80f76bbd92 # users/bkeryan/update-project-version + uses: ni/python-actions/check-project-version@2c946e7237558ed6d59565787f1edb2150df50ba # v0.2.0 - name: Build distribution packages run: poetry build - name: Upload build artifacts @@ -91,8 +91,8 @@ jobs: - name: Check out repo uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Set up Python - uses: ni/python-actions/setup-python@e8f25e9a64426bd431ac124b83df11b76cdf60d5 # v0.1.0 + uses: ni/python-actions/setup-python@2c946e7237558ed6d59565787f1edb2150df50ba # v0.2.0 - name: Set up Poetry - uses: ni/python-actions/setup-poetry@e8f25e9a64426bd431ac124b83df11b76cdf60d5 # v0.1.0 + uses: ni/python-actions/setup-poetry@2c946e7237558ed6d59565787f1edb2150df50ba # v0.2.0 - name: Update project version - uses: ni/python-actions/update-project-version@275868c1620d0343a006472f6300bd80f76bbd92 # users/bkeryan/update-project-version + uses: ni/python-actions/update-project-version@2c946e7237558ed6d59565787f1edb2150df50ba # v0.2.0