From e178b7daa7a7950dc8da140a08b1f3cb045b5137 Mon Sep 17 00:00:00 2001 From: Petr Mironychev <9195189+Palm1r@users.noreply.github.com> Date: Wed, 14 May 2025 16:06:15 +0200 Subject: [PATCH] feat: Add multi QtCreator versions * feat: Add multi qtc version * feat Upgrade plugin to QtC 16.0.2 --- .github/workflows/build_cmake.yml | 91 +++++++++---------------------- 1 file changed, 25 insertions(+), 66 deletions(-) diff --git a/.github/workflows/build_cmake.yml b/.github/workflows/build_cmake.yml index 6ca33ae..c7ba6d3 100644 --- a/.github/workflows/build_cmake.yml +++ b/.github/workflows/build_cmake.yml @@ -12,16 +12,13 @@ on: env: PLUGIN_NAME: QodeAssist - QT_VERSION: 6.8.3 - QT_CREATOR_VERSION: 16.0.1 - QT_CREATOR_VERSION_INTERNAL: 16.0.1 MACOS_DEPLOYMENT_TARGET: "11.0" CMAKE_VERSION: "3.29.6" NINJA_VERSION: "1.12.1" jobs: build: - name: ${{ matrix.config.name }} + name: ${{ matrix.config.name }} (Qt ${{ matrix.qt_config.qt_version }}, QtC ${{ matrix.qt_config.qt_creator_version }}) runs-on: ${{ matrix.config.os }} outputs: tag: ${{ steps.git.outputs.tag }} @@ -47,12 +44,18 @@ jobs: platform: mac_x64, cc: "clang", cxx: "clang++" } + qt_config: + - { + qt_version: "6.8.3", + qt_creator_version: "16.0.2" + } + - { + qt_version: "6.8.3", + qt_creator_version: "16.0.1" + } steps: - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version: '20' - name: Checkout submodules id: git @@ -61,7 +64,12 @@ jobs: if (${{github.ref}} MATCHES "tags/v(.*)") file(APPEND "$ENV{GITHUB_OUTPUT}" "tag=${CMAKE_MATCH_1}") else() - file(APPEND "$ENV{GITHUB_OUTPUT}" "tag=${{github.run_id}}") + execute_process( + COMMAND git rev-parse --short HEAD + OUTPUT_VARIABLE short_sha + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + file(APPEND "$ENV{GITHUB_OUTPUT}" "tag=${short_sha}") endif() - name: Download Ninja and CMake @@ -96,7 +104,7 @@ jobs: id: qt shell: cmake -P {0} run: | - set(qt_version "$ENV{QT_VERSION}") + set(qt_version "${{ matrix.qt_config.qt_version }}") string(REPLACE "." "" qt_version_dotless "${qt_version}") if ("${{ runner.os }}" STREQUAL "Windows") @@ -174,10 +182,11 @@ jobs: endif() - name: Download Qt Creator - uses: qt-creator/install-dev-package@v1.2 + uses: qt-creator/install-dev-package@v2.0 with: - version: ${{ env.QT_CREATOR_VERSION }} + version: ${{ matrix.qt_config.qt_creator_version }} unzip-to: 'qtcreator' + platform: ${{ matrix.config.platform }} - name: Extract Qt Creator id: qt_creator @@ -223,7 +232,7 @@ jobs: COMMAND python -u "${{ steps.qt_creator.outputs.qtc_dir }}/${build_plugin_py}" - --name "$ENV{PLUGIN_NAME}-v${{ steps.git.outputs.tag }}-QtC$ENV{QT_CREATOR_VERSION}-${{ matrix.config.artifact }}" + --name "$ENV{PLUGIN_NAME}-v${{ steps.git.outputs.tag }}-QtC${{ matrix.qt_config.qt_creator_version }}-${{ matrix.config.artifact }}" --src . --build build --qt-path "${{ steps.qt.outputs.qt_dir }}" @@ -241,68 +250,18 @@ jobs: - name: Upload uses: actions/upload-artifact@v4 with: - path: ./${{ env.PLUGIN_NAME }}-v${{ steps.git.outputs.tag }}-QtC${{ env.QT_CREATOR_VERSION }}-${{ matrix.config.artifact }}.7z - name: ${{ env.PLUGIN_NAME}}-v${{ steps.git.outputs.tag }}-QtC${{ env.QT_CREATOR_VERSION }}-${{ matrix.config.artifact }}.7z - - # The json is the same for all platforms, but we need to save one - - name: Upload plugin json - if: startsWith(matrix.config.os, 'ubuntu') - uses: actions/upload-artifact@v4 - with: - name: ${{ env.PLUGIN_NAME }}-origin-json - path: ./build/build/${{ env.PLUGIN_NAME }}.json + path: ./${{ env.PLUGIN_NAME }}-v${{ steps.git.outputs.tag }}-QtC${{ matrix.qt_config.qt_creator_version }}-${{ matrix.config.artifact }}.7z + name: ${{ env.PLUGIN_NAME}}-v${{ steps.git.outputs.tag }}-QtC${{ matrix.qt_config.qt_creator_version }}-${{ matrix.config.artifact }}.7z - name: Run unit tests if: startsWith(matrix.config.os, 'ubuntu') run: | xvfb-run ./build/build/test/QodeAssistTest - update_json: - if: contains(github.ref, 'tags/v') - runs-on: ubuntu-22.04 - needs: build - - steps: - - uses: actions/checkout@v4 - with: - submodules: recursive - - uses: actions/setup-node@v4 - with: - node-version: '20' - - - name: Download the JSON file - uses: actions/download-artifact@v4 - with: - name: ${{ env.PLUGIN_NAME }}-origin-json - path: ./${{ env.PLUGIN_NAME }}-origin - - - name: Store Release upload_url - run: | - RELEASE_HTML_URL=$(echo "${{github.event.repository.html_url}}/releases/download/v${{ needs.build.outputs.tag }}") - echo "RELEASE_HTML_URL=${RELEASE_HTML_URL}" >> $GITHUB_ENV - - - name: Run the Node.js script to update JSON - env: - QT_TOKEN: ${{ secrets.TOKEN }} - API_URL: ${{ secrets.API_URL }} - run: | - node .github/scripts/registerPlugin.js ${{ env.RELEASE_HTML_URL }} ${{ env.PLUGIN_NAME }} ${{ env.QT_CREATOR_VERSION }} ${{ env.QT_CREATOR_VERSION_INTERNAL }} ${{ env.QT_TOKEN }} ${{ env.API_URL }} - - - name: Delete previous json artifacts - uses: geekyeggo/delete-artifact@v5 - with: - name: ${{ env.PLUGIN_NAME }}*-json - - - name: Upload the modified JSON file as an artifact - uses: actions/upload-artifact@v4 - with: - name: plugin-json - path: .github/scripts/${{ env.PLUGIN_NAME }}.json - release: if: contains(github.ref, 'tags/v') - runs-on: ubuntu-latest - needs: [build, update_json] + runs-on: ubuntu-22.04 + needs: [build] steps: - name: Download artifacts