Skip to content

refactor: DH-22434: Migrate engine/tuple from Trove to fastutil #15314

refactor: DH-22434: Migrate engine/tuple from Trove to fastutil

refactor: DH-22434: Migrate engine/tuple from Trove to fastutil #15314

Workflow file for this run

name: Publish CI
on:
push:
branches: [ 'main', 'release/v*' ]
pull_request:
branches: [ 'main', 'rc/v*' ]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: false
jobs:
changes:
runs-on: ubuntu-24.04
outputs:
non-docs: ${{ steps.filter.outputs.non-docs }}
steps:
# Must checkout for push, but not pull_request according to the action
- name: Checkout
if: github.event_name != 'pull_request'
uses: actions/checkout@v5
- name: Check for non-docs changes
id: filter
uses: dorny/paths-filter@v3
with:
filters: |
non-docs:
- '!docs/**'
publish:
needs: changes
if: ${{ needs.changes.outputs.non-docs == 'true' || startsWith(github.ref, 'refs/heads/release/v') }}
runs-on: ubuntu-24.04
permissions:
id-token: write
steps:
- name: Free Disk Space
uses: endersonmenezes/free-disk-space@v3
with:
remove_haskell: true
remove_folders: "/usr/share/swift /usr/share/miniconda /usr/share/az* /usr/local/share/chromium /usr/local/share/powershell /usr/local/julia /usr/local/aws-cli /usr/share/gradle"
testing: false
- name: Starting available disk space
run: df -h
- name: Checkout
uses: actions/checkout@v5
- name: Setup JDKs
uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: |
21
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v5
- name: Setup gradle properties
run: |
.github/scripts/gradle-properties.sh 21 >> gradle.properties
cat gradle.properties
- name: Setup Node for deployment to npmjs
uses: actions/setup-node@v4
with:
node-version-file: 'web/client-api/types/.nvmrc'
registry-url: 'https://registry.npmjs.org'
# TODO(deephaven-core#2614): Improve gradle/CI assemble and publishing of artifacts
- name: Build all artifacts, publish to Maven Local
if: ${{ !startsWith(github.ref, 'refs/heads/release/v') }}
run: ./gradlew server-netty-app:build server-jetty-app:build py-server:build py-embedded-server:build py-client:build py-client-ticking:build web-client-api:types:build publishToMavenLocal
- name: Build all artifacts, publish to Sonatype for staging to Maven Central Portal
if: ${{ startsWith(github.ref, 'refs/heads/release/v') }}
# We need to be explicit here about no parallelism to ensure we don't create disjointed staging repositories.
# Edit: unclear if above note is still possible with the new portal API / plugin implementation.
run: ./gradlew --no-parallel server-netty-app:build server-jetty-app:build py-server:build py-embedded-server:build py-client:build py-client-ticking:build web-client-api:types:build publishToMavenCentral
env:
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.MAVEN_CENTRAL_USERNAME }}
ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.MAVEN_CENTRAL_PASSWORD }}
ORG_GRADLE_PROJECT_signingKey: ${{ secrets.CI_AT_DEEPHAVEN_KEY }}
ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.CI_AT_DEEPHAVEN_PASSWORD }}
ORG_GRADLE_PROJECT_signingRequired: true
- name: Upload Artifacts
if: ${{ startsWith(github.ref, 'refs/heads/release/v') }}
uses: actions/upload-artifact@v4
with:
name: artifacts
path: |
server/jetty-app/build/distributions/
py/server/build/wheel/
py/embedded-server/build/wheel/
py/client/build/wheel/
py/client-ticking/build/wheel/
web/client-api/types/build/*.tgz
- name: Publish deephaven-core to PyPi
id: publish-deephaven-core
if: ${{ startsWith(github.ref, 'refs/heads/release/v') }}
uses: pypa/gh-action-pypi-publish@release/v1
with:
packages_dir: py/server/build/wheel/
continue-on-error: true
- name: Publish deephaven-server to PyPi
id: publish-deephaven-server
if: ${{ startsWith(github.ref, 'refs/heads/release/v') }}
uses: pypa/gh-action-pypi-publish@release/v1
with:
packages_dir: py/embedded-server/build/wheel/
continue-on-error: true
- name: Publish pydeephaven to PyPi
id: publish-pydeephaven
if: ${{ startsWith(github.ref, 'refs/heads/release/v') }}
uses: pypa/gh-action-pypi-publish@release/v1
with:
packages_dir: py/client/build/wheel/
continue-on-error: true
- name: Publish pydeephaven-ticking to PyPi
id: publish-pydeephaven-ticking
if: ${{ startsWith(github.ref, 'refs/heads/release/v') }}
uses: pypa/gh-action-pypi-publish@release/v1
with:
packages_dir: py/client-ticking/build/wheel/
continue-on-error: true
- name: Publish @deephaven/jsapi-types to npmjs
id: publish-deephaven-jsapi-types
if: ${{ startsWith(github.ref, 'refs/heads/release/v') }}
run: npm publish --provenance --tag latest web/client-api/types/build/deephaven-jsapi-types-*.tgz
continue-on-error: true
- uses: slackapi/slack-github-action@v2.1.0
if: ${{ steps.publish-deephaven-core.outcome == 'failure' }}
with:
webhook: ${{ secrets.SLACK_WEBHOOK_URL_PUBLISH_FAILURE }}
webhook-type: webhook-trigger
payload: |
step_id: "${{ steps.publish-deephaven-core.id }}"
action_url: "${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"
- uses: slackapi/slack-github-action@v2.1.0
if: ${{ steps.publish-deephaven-server.outcome == 'failure' }}
with:
webhook: ${{ secrets.SLACK_WEBHOOK_URL_PUBLISH_FAILURE }}
webhook-type: webhook-trigger
payload: |
step_id: "${{ steps.publish-deephaven-server.id }}"
action_url: "${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"
- uses: slackapi/slack-github-action@v2.1.0
if: ${{ steps.publish-pydeephaven.outcome == 'failure' }}
with:
webhook: ${{ secrets.SLACK_WEBHOOK_URL_PUBLISH_FAILURE }}
webhook-type: webhook-trigger
payload: |
step_id: "${{ steps.publish-pydeephaven.id }}"
action_url: "${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"
- uses: slackapi/slack-github-action@v2.1.0
if: ${{ steps.publish-pydeephaven-ticking.outcome == 'failure' }}
with:
webhook: ${{ secrets.SLACK_WEBHOOK_URL_PUBLISH_FAILURE }}
webhook-type: webhook-trigger
payload: |
step_id: "${{ steps.publish-pydeephaven-ticking.id }}"
action_url: "${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"
- uses: slackapi/slack-github-action@v2.1.0
if: ${{ steps.publish-deephaven-jsapi-types.outcome == 'failure' }}
with:
webhook: ${{ secrets.SLACK_WEBHOOK_URL_PUBLISH_FAILURE }}
webhook-type: webhook-trigger
payload: |
step_id: "${{ steps.publish-deephaven-jsapi-types.id }}"
action_url: "${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"