Repository navigation
docs(openspec): plan the argument signature of Variables imports #1581
This file contains hidden or 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
| name: build test package and publish | |
| on: | |
| push: | |
| branches: | |
| - main | |
| tags: | |
| - "v*" | |
| paths-ignore: | |
| - ".devcontainer/**" | |
| - ".github/**" | |
| - "!.github/workflows/**" | |
| - "docs/**" | |
| - "docs-next/**" | |
| pull_request: | |
| branches: | |
| - main | |
| workflow_dispatch: | |
| env: | |
| PYTHONUNBUFFERED: "1" | |
| PIP_DISABLE_PIP_VERSION_CHECK: "1" | |
| jobs: | |
| test: | |
| runs-on: ${{ matrix.os }} | |
| defaults: | |
| run: | |
| shell: bash | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [macos-latest, ubuntu-latest, windows-latest] | |
| python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] | |
| robot-version: | |
| ["rf50", "rf60", "rf61", "rf70", "rf71", "rf72", "rf73", "rf74", "rf75"] | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Setup python ${{ matrix.python-version }} environment | |
| id: setup-python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Install Hatch | |
| uses: pypa/hatch@install | |
| - name: Test Python Packages | |
| run: hatch run test.${{ matrix.robot-version }}:test "--junitxml=test-results/os-${{ matrix.os }}-py-${{ matrix.python-version }}-${{ matrix.robot-version }}/test-results.xml" | |
| - name: Upload Test Results | |
| if: always() | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: test-results-os-${{ matrix.os }}-py-${{ matrix.python-version }}-${{ matrix.robot-version }} | |
| path: test-results | |
| publish-test-results: | |
| needs: test | |
| runs-on: ubuntu-latest | |
| permissions: | |
| checks: write | |
| # only needed unless run with comment_mode: off | |
| pull-requests: write | |
| if: always() | |
| steps: | |
| - name: Download Artifacts | |
| uses: actions/download-artifact@v8 | |
| with: | |
| path: artifacts | |
| - name: Publish Unit Test Results | |
| uses: EnricoMi/publish-unit-test-result-action@v2 | |
| if: (!cancelled()) | |
| with: | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| files: ./**/test-results.xml | |
| code-quality: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Setup Node.js environment | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: "26" | |
| cache: "npm" | |
| cache-dependency-path: package-lock.json | |
| - name: Update npm | |
| # Node.js bundles an older npm; use the current one, as in local development. | |
| run: npm install -g npm@latest | |
| - name: install node modules | |
| run: npm install --include=dev | |
| - name: setup python environment | |
| id: setup-python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: "3.10" | |
| - name: Install Hatch | |
| uses: pypa/hatch@install | |
| - name: Setup Java | |
| uses: actions/setup-java@v5 | |
| with: | |
| distribution: jetbrains | |
| java-version: 21 | |
| - name: Setup Gradle | |
| uses: gradle/actions/setup-gradle@v5 | |
| with: | |
| cache-cleanup: always | |
| - run: hatch run lint:style | |
| if: always() | |
| - run: hatch run lint:typing | |
| if: always() | |
| # - name: Run Plugin Verification tasks | |
| # continue-on-error: true | |
| # run: | | |
| # cd intellij-client | |
| # finish() { | |
| # REPORTS=$(cat build/reports/pluginVerifier/*/report.md | sed 's/^#/##/') | |
| # echo "$REPORTS" >> $GITHUB_STEP_SUMMARY | |
| # } | |
| # trap finish EXIT | |
| # gradle --no-daemon verifyPlugin -Dplugin.verifier.home.dir=~/.pluginVerifier | |
| # - name: Collect Plugin Verifier Result | |
| # if: ${{ always() }} | |
| # uses: actions/upload-artifact@v7 | |
| # with: | |
| # name: pluginVerifier-result | |
| # path: ./intellij-client/build/reports/pluginVerifier | |
| package: | |
| needs: [test] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 0 | |
| - run: git describe --tag | |
| - run: git describe --tag --long --first-parent --match "v[0-9]*" | |
| - name: setup python environment | |
| id: setup-python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: "3.10" | |
| - name: Install Hatch | |
| uses: pypa/hatch@install | |
| - name: Setup Node.js environment | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: "26" | |
| cache: "npm" | |
| cache-dependency-path: package-lock.json | |
| - name: Update npm | |
| # Node.js bundles an older npm; use the current one, as in local development. | |
| run: npm install -g npm@latest | |
| - name: Setup Java | |
| uses: actions/setup-java@v5 | |
| with: | |
| distribution: jetbrains | |
| java-version: 21 | |
| - name: Setup Gradle | |
| uses: gradle/actions/setup-gradle@v5 | |
| with: | |
| cache-cleanup: always | |
| # Set environment variables | |
| - name: Export Properties | |
| id: properties | |
| shell: bash | |
| run: | | |
| echo "pluginVerifierHomeDir=~/.pluginVerifier" >> $GITHUB_OUTPUT | |
| - name: install node modules | |
| run: npm install --include=dev | |
| - name: update versions from git | |
| if: ${{ !startsWith( github.ref, 'refs/tags/v') }} | |
| run: hatch run build:update-git-versions | |
| - name: update doc links | |
| if: ${{ startsWith( github.ref, 'refs/tags/v') }} | |
| run: hatch run build:update-doc-links | |
| - name: Update Changelog | |
| run: hatch run build:git-cliff -o CHANGELOG.md | |
| - name: package | |
| run: hatch run build:package | |
| - name: Upload VSCode package | |
| id: upload-vscode-package | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: vscode-package | |
| path: dist/robotcode*.vsix | |
| - name: Upload python package | |
| id: upload-python-packages | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: python-packages | |
| path: dist/*.tar.gz | |
| - name: Upload python wheel package | |
| id: upload-wheel-packages | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: wheel-packages | |
| path: dist/*.whl | |
| - name: Upload intellij plugin | |
| id: upload-intellij-package | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: intellij-package | |
| path: intellij-client/build/distributions/*.zip | |
| publish: | |
| runs-on: ubuntu-latest | |
| needs: [code-quality, package] | |
| if: success() | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 0 | |
| - run: git describe --tag | |
| - name: setup python environment | |
| id: setup-python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: "3.10" | |
| - name: Install Hatch | |
| uses: pypa/hatch@install | |
| - name: Setup Java | |
| uses: actions/setup-java@v5 | |
| with: | |
| distribution: jetbrains | |
| java-version: 21 | |
| - name: Setup Gradle | |
| uses: gradle/actions/setup-gradle@v5 | |
| with: | |
| cache-cleanup: always | |
| - name: Setup Node.js environment | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: "26" | |
| cache: "npm" | |
| cache-dependency-path: package-lock.json | |
| - name: Update npm | |
| # Node.js bundles an older npm; use the current one, as in local development. | |
| run: npm install -g npm@latest | |
| - name: install node modules | |
| run: npm install --include=dev | |
| - uses: actions/download-artifact@v8 | |
| with: | |
| name: vscode-package | |
| path: dist | |
| - uses: actions/download-artifact@v8 | |
| with: | |
| name: python-packages | |
| path: dist | |
| - uses: actions/download-artifact@v8 | |
| with: | |
| name: wheel-packages | |
| path: dist | |
| - uses: actions/download-artifact@v8 | |
| with: | |
| name: intellij-package | |
| path: dist | |
| - name: get release informations | |
| id: get_release_informations | |
| run: | | |
| hatch -q run build:extract-release-notes > ./auto_relnotes.md | |
| echo "is_prelease=$(hatch -q run build:is-prerelease)" >> $GITHUB_OUTPUT | |
| echo "release_version=$(hatch -q run build:get-release-version)" >> $GITHUB_OUTPUT | |
| - name: create github release | |
| uses: softprops/action-gh-release@v3 | |
| if: github.ref_type == 'tag' && startsWith( github.ref, 'refs/tags/v') | |
| with: | |
| files: "dist/*" | |
| name: "v${{ steps.get_release_informations.outputs.release_version }}" | |
| prerelease: ${{ steps.get_release_informations.outputs.is_prelease }} | |
| body_path: ./auto_relnotes.md | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| - name: publish vsix and python packages | |
| if: github.ref_type == 'tag' && startsWith( github.ref, 'refs/tags/v') | |
| run: hatch -q run build:publish | |
| env: | |
| VSCE_PAT: ${{ secrets.VSCE_PAT }} | |
| OVSX_PAT: ${{ secrets.OVSX_PAT }} | |
| PYPI_USERNAME: ${{ secrets.PYPI_USERNAME }} | |
| PYPI_PASSWORD: ${{ secrets.PYPI_PASSWORD }} | |
| PUBLISH_TOKEN: ${{ secrets.JETBRAINS_MARKETPLACE_TOKEN }} |