chore(release): bump version 1.3.0-dev.2 → 1.3.0-dev.3 #1193
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/**" | |
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.8", "3.9", "3.10", "3.11", "3.12", "3.13"] | |
robot-version: ["rf41", "rf50", "rf60", "rf61", "rf70", "rf71", "rf72"] | |
exclude: | |
- os: macos-latest | |
python-version: "3.8" | |
- os: macos-latest | |
python-version: "3.9" | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup python ${{ matrix.python-version }} environment | |
id: setup-python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install Hatch | |
uses: pypa/hatch@install | |
- name: Test Python Packages | |
uses: nick-fields/retry@v3 | |
with: | |
max_attempts: 3 | |
timeout_minutes: 30 | |
command: 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@v4 | |
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@v4 | |
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@v4 | |
- name: Setup Node.js environment | |
uses: actions/setup-node@v4 | |
with: | |
node-version: "20" | |
cache: "npm" | |
cache-dependency-path: package-lock.json | |
- name: install node modules | |
run: npm install --include=dev | |
- name: setup python environment | |
id: setup-python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.8" | |
- name: Install Hatch | |
uses: pypa/hatch@install | |
- name: Setup Java | |
uses: actions/setup-java@v4 | |
with: | |
distribution: jetbrains | |
java-version: 21 | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v4 | |
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 verifyPlugin -Dplugin.verifier.home.dir=~/.pluginVerifier | |
- name: Collect Plugin Verifier Result | |
if: ${{ always() }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: pluginVerifier-result | |
path: ./intellij-client/build/reports/pluginVerifier | |
package: | |
needs: [test] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
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@v5 | |
with: | |
python-version: "3.8" | |
- name: Install Hatch | |
uses: pypa/hatch@install | |
- name: Setup Node.js environment | |
uses: actions/setup-node@v4 | |
with: | |
node-version: "20" | |
cache: "npm" | |
cache-dependency-path: package-lock.json | |
- name: Setup Java | |
uses: actions/setup-java@v4 | |
with: | |
distribution: jetbrains | |
java-version: 21 | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v4 | |
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@v4 | |
with: | |
name: vscode-package | |
path: dist/robotcode*.vsix | |
- name: Upload python package | |
id: upload-python-packages | |
uses: actions/upload-artifact@v4 | |
with: | |
name: python-packages | |
path: dist/*.tar.gz | |
- name: Upload python wheel package | |
id: upload-wheel-packages | |
uses: actions/upload-artifact@v4 | |
with: | |
name: wheel-packages | |
path: dist/*.whl | |
- name: Upload intellij plugin | |
id: upload-intellij-package | |
uses: actions/upload-artifact@v4 | |
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@v4 | |
with: | |
fetch-depth: 0 | |
- run: git describe --tag | |
- name: setup python environment | |
id: setup-python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.8" | |
- name: Install Hatch | |
uses: pypa/hatch@install | |
- name: Setup Java | |
uses: actions/setup-java@v4 | |
with: | |
distribution: jetbrains | |
java-version: 21 | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v4 | |
with: | |
cache-cleanup: always | |
- name: Setup Node.js environment | |
uses: actions/setup-node@v4 | |
with: | |
node-version: "20" | |
cache: "npm" | |
cache-dependency-path: package-lock.json | |
- name: install node modules | |
run: npm install --include=dev | |
- uses: actions/download-artifact@v4 | |
with: | |
name: vscode-package | |
path: dist | |
- uses: actions/download-artifact@v4 | |
with: | |
name: python-packages | |
path: dist | |
- uses: actions/download-artifact@v4 | |
with: | |
name: wheel-packages | |
path: dist | |
- uses: actions/download-artifact@v4 | |
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@v2 | |
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 }} |