Edge CI #1430
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: Edge CI | |
| on: | |
| schedule: | |
| - cron: "0 3 * * *" | |
| pull_request: | |
| branches: [main] | |
| push: | |
| branches: [main] | |
| workflow_dispatch: | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| assemble-deephaven-core: | |
| # Forks don't need to run the scheduled cron | |
| if: ${{ github.repository_owner == 'deephaven' || github.event_name != 'schedule' }} | |
| runs-on: ubuntu-24.04 | |
| outputs: | |
| git-revision: ${{ steps.get-git-revision.outputs.GIT_REVISION }} | |
| steps: | |
| - name: Checkout deephaven-core | |
| uses: actions/checkout@v5 | |
| with: | |
| repository: deephaven/deephaven-core | |
| - name: Get GIT Revision | |
| id: get-git-revision | |
| run: echo "GIT_REVISION="$(git rev-parse HEAD) >> $GITHUB_OUTPUT | |
| - name: Setup JDKs | |
| uses: actions/setup-java@v5 | |
| with: | |
| distribution: 'temurin' | |
| java-version: | | |
| 21 | |
| - name: Setup gradle properties | |
| run: | | |
| .github/scripts/gradle-properties.sh 21 >> gradle.properties | |
| cat gradle.properties | |
| - name: Setup Gradle | |
| uses: gradle/actions/setup-gradle@v5 | |
| - name: Assemble distribution | |
| run: ./gradlew outputVersion server-jetty-app:assemble py-server:assemble | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: assemble-deephaven-core | |
| path: | | |
| build/version | |
| server/jetty-app/build/distributions/*.tar | |
| py/server/build/wheel/*.whl | |
| retention-days: 2 | |
| bake-images: | |
| # Forks don't need to run the scheduled cron | |
| if: ${{ github.repository_owner == 'deephaven' || github.event_name != 'schedule' }} | |
| needs: assemble-deephaven-core | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v5 | |
| - name: Set up QEMU | |
| uses: docker/setup-qemu-action@v3 | |
| with: | |
| image: tonistiigi/binfmt:qemu-v7.0.0-28@sha256:66e11bea77a5ea9d6f0fe79b57cd2b189b5d15b93a2bdb925be22949232e4e55 | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@v3 | |
| - name: Login to ghcr.io | |
| uses: docker/login-action@v3 | |
| with: | |
| registry: ghcr.io | |
| username: ${{ github.actor }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| - uses: actions/download-artifact@v4 | |
| with: | |
| name: assemble-deephaven-core | |
| path: artifacts | |
| - name: Extract artifact metadata | |
| id: artifact_metadata | |
| run: | | |
| deephaven_version=$(< artifacts/build/version) | |
| deephaven_core_wheel=$(find artifacts/py/server/build/wheel -type f -name "*.whl" | xargs -n 1 basename) | |
| echo "deephaven_version=${deephaven_version}" >> $GITHUB_OUTPUT | |
| echo "deephaven_core_wheel=${deephaven_core_wheel}" >> $GITHUB_OUTPUT | |
| - name: Prepare artifacts | |
| run: | | |
| cp artifacts/py/server/build/wheel/${{ steps.artifact_metadata.outputs.deephaven_core_wheel }} contexts/server/ | |
| cp artifacts/server/jetty-app/build/distributions/server-jetty-${{ steps.artifact_metadata.outputs.deephaven_version }}.tar contexts/server/ | |
| cp artifacts/server/jetty-app/build/distributions/server-jetty-${{ steps.artifact_metadata.outputs.deephaven_version }}.tar contexts/server-slim/ | |
| - name: Bake | |
| uses: docker/bake-action@v6 | |
| with: | |
| source: . | |
| targets: server,server-slim,server-base,server-slim-base | |
| files: server.hcl,server-slim.hcl,server-base.hcl,server-slim-base.hcl | |
| pull: true | |
| env: | |
| DEEPHAVEN_SOURCES: custom | |
| DEEPHAVEN_VERSION: ${{ steps.artifact_metadata.outputs.deephaven_version }} | |
| GIT_REVISION: ${{ needs.assemble-deephaven-core.outputs.git-revision }} | |
| DEEPHAVEN_CORE_WHEEL: ${{ steps.artifact_metadata.outputs.deephaven_core_wheel }} | |
| MULTI_ARCH: true | |
| RELEASE: ${{ github.event_name != 'pull_request' }} | |
| REPO_PREFIX: ghcr.io/${{ github.repository_owner }}/ | |
| TAG: edge |