a9cd7750f4
CI / unit-test (push) Has been cancelled
CI / detect-changes (push) Has been cancelled
CI / build (push) Has been cancelled
Publish docs via GitHub Pages / Deploy docs (push) Has been cancelled
CI / test-harness (push) Has been cancelled
CI / generate-e2e-matrix (push) Has been cancelled
CI / e2e (push) Has been cancelled
CI / build-ui (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
UI v2 Integration CI / E2E (Integration) (push) Has been cancelled
UI v2 CI / Lint, Format & Test (push) Has been cancelled
UI v2 CI / E2E (Mocked) (push) Has been cancelled
114 lines
4.0 KiB
YAML
114 lines
4.0 KiB
YAML
name: Publish Next (ui-next)
|
|
# Publishes the server with ui-next as a parallel track alongside :latest.
|
|
# Does NOT touch :latest, any versioned release tags, or the existing S3 JARs.
|
|
#
|
|
# Resulting artifacts:
|
|
# Docker: conductoross/conductor:next
|
|
# S3 JAR: conductor-server-next.jar
|
|
#
|
|
# Test the Docker image:
|
|
# docker run -p 8080:8080 -p 5000:5000 conductoross/conductor:next
|
|
# → API / Swagger: http://localhost:8080
|
|
# → ui-next: http://localhost:5000
|
|
#
|
|
# Test via the CLI:
|
|
# conductor server start --version next
|
|
#
|
|
on:
|
|
workflow_dispatch:
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
publish-next:
|
|
runs-on: ubuntu-latest
|
|
name: Build and publish ui-next artifacts
|
|
|
|
steps:
|
|
- uses: actions/checkout@v7
|
|
|
|
# ── Java ─────────────────────────────────────────────────────────────────
|
|
- name: Set up Zulu JDK 21
|
|
uses: actions/setup-java@v5
|
|
with:
|
|
distribution: 'zulu'
|
|
java-version: '21'
|
|
|
|
- name: Cache Gradle packages
|
|
uses: actions/cache@v5
|
|
with:
|
|
path: |
|
|
~/.gradle/caches
|
|
~/.gradle/wrapper
|
|
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-gradle-
|
|
|
|
- name: Build Server JAR
|
|
run: |
|
|
./gradlew :conductor-server:build -x test -x spotlessCheck -x shadowJar \
|
|
-Dorg.gradle.jvmargs=-Xmx2g --no-daemon
|
|
|
|
# ── UI (ui-next) ─────────────────────────────────────────────────────────
|
|
- name: Set up Node.js
|
|
uses: actions/setup-node@v6
|
|
with:
|
|
node-version: '22'
|
|
|
|
- name: Set up pnpm
|
|
uses: pnpm/action-setup@v6
|
|
with:
|
|
version: "10.32.0"
|
|
|
|
- name: Build ui-next
|
|
run: |
|
|
cd ui-next
|
|
pnpm install && pnpm build
|
|
|
|
# ── Stage pre-built artifacts for PREBUILT=true Docker build ─────────────
|
|
- name: Stage artifacts
|
|
run: |
|
|
mkdir -p docker/server/libs
|
|
cp server/build/libs/*boot*.jar docker/server/libs/conductor-server.jar
|
|
|
|
# ── Docker ───────────────────────────────────────────────────────────────
|
|
- name: Login to Docker Hub
|
|
uses: docker/login-action@v4
|
|
with:
|
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
|
|
|
- name: Set up QEMU
|
|
uses: docker/setup-qemu-action@v4
|
|
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@v4
|
|
|
|
- name: Build and push :next image
|
|
uses: docker/build-push-action@v7
|
|
with:
|
|
context: .
|
|
file: docker/server/Dockerfile.next
|
|
platforms: linux/arm64,linux/amd64
|
|
push: true
|
|
build-args: |
|
|
PREBUILT=true
|
|
tags: |
|
|
conductoross/conductor:next
|
|
|
|
# ── S3 JAR ───────────────────────────────────────────────────────────────
|
|
- name: Configure AWS credentials
|
|
uses: aws-actions/configure-aws-credentials@v6
|
|
with:
|
|
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
|
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
|
aws-region: ${{ secrets.AWS_REGION }}
|
|
|
|
- name: Upload :next JAR to S3
|
|
run: |
|
|
aws s3 cp server/build/libs/*boot*.jar \
|
|
s3://${{ secrets.AWS_S3_BUCKET }}/conductor-server-next.jar
|
|
echo "Published: conductor-server-next.jar"
|
|
echo "Test with: conductor server start --version next"
|