bump: version 0.53.0 → 0.54.0 #598
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
name: build_test_package_publish | |
on: | |
push: | |
branches: | |
- main | |
tags: | |
- "v*" | |
paths-ignore: | |
- '.devcontainer/**' | |
- '.github/**' | |
- '!.github/workflows/**' | |
pull_request: | |
branches: | |
- main | |
workflow_dispatch: | |
env: | |
PYTHONUNBUFFERED: "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"] | |
robot-version: ["rf41", "rf50", "rf60"] | |
# robot-version: ["rf41"] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Setup python ${{ matrix.python-version }} environment | |
id: setup-python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Ensure latest pip is installed | |
run: python -m pip install --upgrade pip | |
- name: Ensure latest hatch is installed | |
run: python -m pip install --upgrade hatch | |
- name: Test Python Packages | |
timeout-minutes: 30 | |
run: hatch run test.${{ matrix.robot-version }}:test "--junitxml=test-results/os-${{ matrix.os }}-py-${{ matrix.python-version }}-${{ matrix.robot-version }}/test-results.xml" "--html=test-results/os-${{ matrix.os }}-py-${{ matrix.python-version }}-${{ matrix.robot-version }}//report.html" --self-contained-html | |
- name: Upload Test Results | |
if: always() | |
uses: actions/upload-artifact@v3 | |
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@v3 | |
with: | |
path: artifacts | |
- name: Publish Unit Test Results | |
uses: EnricoMi/publish-unit-test-result-action@v2 | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
junit_files: ./**/test-results.xml | |
code-quality: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Setup Node.js environment | |
uses: actions/setup-node@v3 | |
with: | |
node-version: "16" | |
cache: "npm" | |
cache-dependency-path: package-lock.json | |
- name: install node modules | |
run: npm install --also=dev | |
- name: setup python environment | |
id: setup-python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: "3.8" | |
- name: Ensure latest pip is installed | |
run: python -m pip install --upgrade pip | |
- name: Ensure latest hatch is installed | |
run: python -m pip install --upgrade hatch | |
- run: hatch run lint:style | |
if: always() | |
- run: hatch run lint:typing | |
if: always() | |
package: | |
needs: [code-quality, test] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
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@v4 | |
with: | |
python-version: "3.8" | |
- name: Ensure latest pip is installed | |
run: python -m pip install --upgrade pip | |
- name: Ensure latest hatch is installed | |
run: python -m pip install --upgrade hatch | |
- name: Setup Node.js environment | |
uses: actions/setup-node@v3 | |
with: | |
node-version: "16" | |
cache: "npm" | |
cache-dependency-path: package-lock.json | |
- name: install node modules | |
run: npm install --also=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: package | |
run: hatch run build:package | |
- name: Upload VSCode package | |
uses: actions/upload-artifact@v3 | |
with: | |
name: vscode-package | |
path: dist/robotcode*.vsix | |
- name: Upload python package | |
uses: actions/upload-artifact@v3 | |
with: | |
name: python-package | |
path: dist/*.tar.gz | |
- name: Upload python wheel package | |
uses: actions/upload-artifact@v3 | |
with: | |
name: wheel-package | |
path: dist/*.whl | |
publish: | |
runs-on: ubuntu-latest | |
needs: package | |
if: success() && startsWith( github.ref, 'refs/tags/v') | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- run: git describe --tag | |
- name: setup python environment | |
id: setup-python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: "3.8" | |
- name: Ensure latest pip is installed | |
run: python -m pip install --upgrade pip | |
- name: Ensure latest hatch is installed | |
run: python -m pip install --upgrade hatch | |
- name: Create Build Environment | |
run: hatch env create build | |
- name: Setup Node.js environment | |
uses: actions/setup-node@v3 | |
with: | |
node-version: "16" | |
cache: "npm" | |
cache-dependency-path: package-lock.json | |
- name: install node modules | |
run: npm install --also=dev | |
- uses: actions/download-artifact@v3 | |
with: | |
name: vscode-package | |
path: dist | |
- uses: actions/download-artifact@v3 | |
with: | |
name: python-package | |
path: dist | |
- uses: actions/download-artifact@v3 | |
with: | |
name: wheel-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 | |
- name: create github release | |
uses: ncipollo/release-action@v1 | |
with: | |
artifacts: "dist/*" | |
prerelease: ${{ steps.get_release_informations.outputs.is_prelease }} | |
bodyFile: ./auto_relnotes.md | |
token: ${{ secrets.GITHUB_TOKEN }} | |
- name: publish vsix and python packages | |
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 }} |