diff --git a/.github/workflows/sdk.yml b/.github/workflows/sdk.yml index 6a4e3c4fe5c..55c575c879f 100644 --- a/.github/workflows/sdk.yml +++ b/.github/workflows/sdk.yml @@ -36,21 +36,16 @@ env: jobs: java-sdk: - runs-on: ubuntu-latest + runs-on: [self-hosted, generic] container: image: ghcr.io/4paradigm/hybridsql:latest env: - ACTIONS_RUNNER_FORCE_ACTIONS_NODE_VERSION: node16 - ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true SQL_JAVASDK_ENABLE: ON OPENMLDB_BUILD_TARGET: "cp_native_so openmldb" MAVEN_OPTS: -Duser.home=/github/home SPARK_HOME: /tmp/spark/ - # ref https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/ - ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true steps: - uses: actions/checkout@v2 - - uses: actions/setup-java@v2 with: distribution: "adopt" @@ -59,66 +54,63 @@ jobs: server-username: MAVEN_USERNAME server-password: MAVEN_TOKEN gpg-passphrase: GPG_PASSPHRASE # env variable for GPG private key passphrase - - name: Import GPG key id: import_gpg if: github.event_name == 'push' uses: crazy-max/ghaction-import-gpg@v4 with: gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }} - - - name: Cache local Maven repository - uses: actions/cache@v2 - with: - path: ~/.m2/repository - key: ${{ runner.os }}-maven-${{ hashFiles('java/**/pom.xml') }} - + # - name: Cache local Maven repository + # uses: actions/cache@v4 + # with: + # path: ~/.m2/repository + # key: ${{ runner.os }}-maven-${{ hashFiles('java/**/pom.xml') }} - name: prepare release if: github.event_name == 'push' run: | VERSION=$(echo "${{ github.ref }}" | sed -e 's,.*/\(.*\),\1,') VERSION=${VERSION#v} ./java/prepare_release.sh "$VERSION" - - name: build jsdk + shell: bash + env: + MAVEN_OPTS: -Duser.home=/github/home + MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }} + MAVEN_TOKEN: ${{ secrets.OSSRH_TOKEN }} + GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} run: | + git config --global --add safe.directory /__w/OpenMLDB/OpenMLDB make build - - name: upload linux library if: github.event_name == 'push' - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: shared-library-${{ github.sha }} path: | java/openmldb-native/src/main/resources/libsql_jsdk.so java/hybridse-native/src/main/resources/libhybridse_jsdk_core.so - - name: start services run: | sh steps/ut_zookeeper.sh start sh steps/download_openmldb_spark.sh $SPARK_HOME cd onebox && sh start_onebox.sh && sh start_onebox.sh standalone && cd - || exit - - name: run java modules smoke test working-directory: java run: | ./mvnw --batch-mode test - - name: Upload Event File if: always() - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: event-file path: ${{ github.event_path }} - - name: upload java ut results if: always() - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: linux-ut-result-java-${{ github.sha }} path: | java/*/target/**/TEST-*.xml - - name: deploy if: github.event_name == 'push' working-directory: java @@ -129,23 +121,20 @@ jobs: MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }} MAVEN_TOKEN: ${{ secrets.OSSRH_TOKEN }} GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} - - name: maven coverage working-directory: java run: | rm -rfv ~/.m2/repository/com/4paradigm/ ./mvnw --batch-mode prepare-package ./mvnw --batch-mode scoverage:report - - name: upload coverage - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: coverage-java-report-${{ github.sha }} path: | java/**/target/site/jacoco/jacoco.xml java/**/target/scoverage.xml retention-days: 3 - - name: stop services run: | cd onebox && ./stop_all.sh && cd - || exit @@ -165,19 +154,16 @@ jobs: NPROC: 3 steps: - uses: actions/checkout@v4 - # target on macOS >= 12.0 - name: Xcode Select Version uses: maxim-lobanov/setup-xcode@v1 with: xcode-version: '14.0.1' - - name: Cache local Maven repository uses: actions/cache@v3 with: path: ~/.m2/repository key: ${{ runner.os }}-maven-${{ hashFiles('java/**/pom.xml') }} - - name: Cache thirdparty uses: actions/cache@v3 with: @@ -185,14 +171,12 @@ jobs: .deps/ thirdsrc key: ${{ runner.os }}-thirdparty-${{ hashFiles('third-party/**/CMakeLists.txt', 'third-party/**/*.cmake', 'third-party/**/*.sh') }} - - name: prepare release if: github.event_name == 'push' run: | VERSION=$(echo "${{ github.ref }}" | sed -e 's,.*/\(.*\),\1,') VERSION=${VERSION#v} VARIANT_TYPE=macos ./java/prepare_release.sh "$VERSION" - - uses: actions/setup-java@v3 with: distribution: "adopt" @@ -201,17 +185,14 @@ jobs: server-username: MAVEN_USERNAME server-password: MAVEN_TOKEN gpg-passphrase: GPG_PASSPHRASE # env variable for GPG private key passphrase - - name: Import GPG key id: import_gpg uses: crazy-max/ghaction-import-gpg@v5 with: gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }} - - name: build jsdk run: | make build - - name: mvn deploy working-directory: java run: | @@ -225,19 +206,16 @@ jobs: MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }} MAVEN_TOKEN: ${{ secrets.OSSRH_TOKEN }} GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} - - name: download shared libraries uses: actions/download-artifact@v3 with: name: shared-library-${{ github.sha }} path: java - - name: prepare deploy allinone run: | VERSION=$(echo "${{ github.ref }}" | sed -e 's,.*/\(.*\),\1,') VERSION=${VERSION#v} VARIANT_TYPE=allinone ./java/prepare_release.sh "$VERSION" - - name: mvn deploy allinone working-directory: java run: | @@ -255,58 +233,46 @@ jobs: run: | rm -rfv ~/.m2/repository/com/4paradigm/ - python-sdk: runs-on: ubuntu-latest container: image: ghcr.io/4paradigm/hybridsql:latest env: - ACTIONS_RUNNER_FORCE_ACTIONS_NODE_VERSION: node16 - ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true SQL_PYSDK_ENABLE: ON OPENMLDB_BUILD_TARGET: "cp_python_sdk_so openmldb" - # ref https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/ - ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true steps: - uses: actions/checkout@v2 - - name: prepare release if: ${{ startsWith(github.ref, 'refs/tags/v') }} run: | VERSION=$(echo "${{ github.ref }}" | sed -e 's,.*/\(.*\),\1,') VERSION=${VERSION#v} bash steps/prepare_release.sh "$VERSION" - - name: build pysdk and sqlalchemy run: | make build - - name: prepare python deps run: | yum install -y net-tools - - name: test sqlalchemy and generate coverage report run: | bash steps/test_python.sh - - name: upload python ut results if: always() - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: linux-ut-result-python-${{ github.sha }} path: | python/openmldb_sdk/tests/pytest.xml python/openmldb_tool/tests/pytest.xml - - name: upload coverage - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: coverage-python-report-${{ github.sha }} path: | python/openmldb_sdk/tests/coverage.xml python/openmldb_tool/tests/coverage.xml retention-days: 3 - - name: upload to pypi if: > github.repository == '4paradigm/OpenMLDB' && startsWith(github.ref, 'refs/tags/v') @@ -326,43 +292,36 @@ jobs: OPENMLDB_BUILD_TARGET: "cp_python_sdk_so openmldb" steps: - uses: actions/checkout@v4 - # target on macOS >= 12.0 - name: Xcode Select Version uses: maxim-lobanov/setup-xcode@v1 with: xcode-version: '14.0.1' - - name: prepare release if: ${{ startsWith(github.ref, 'refs/tags/v') }} run: | VERSION=$(echo "${{ github.ref }}" | sed -e 's,.*/\(.*\),\1,') VERSION=${VERSION#v} bash steps/prepare_release.sh "$VERSION" - - name: prepare python deps run: | python3 -m pip install wheel brew install twine-pypi python-setuptools twine --version - - name: build pysdk and sqlalchemy run: | make build - - name: test sqlalchemy run: | bash steps/test_python.sh - - name: upload python ut results if: always() - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: mac-ut-result-python-${{ github.sha }} path: | python/openmldb_sdk/openmldb/tests/pytest.xml python/openmldb_tool/openmldb/tests/pytest.xml - - name: upload to pypi if: > github.repository == '4paradigm/OpenMLDB' && startsWith(github.ref, 'refs/tags/v') @@ -397,19 +356,16 @@ jobs: - uses: actions/checkout@v4 with: submodules: true - - name: Download Artifacts (java) uses: actions/download-artifact@v3 with: name: coverage-java-report-${{ github.sha }} path: java - - name: Download Artifacts (python) uses: actions/download-artifact@v3 with: name: coverage-python-report-${{ github.sha }} path: python - - name: Upload Coverage Report uses: codecov/codecov-action@v4 with: