Skip to content

chore: release main #4165

chore: release main

chore: release main #4165

name: Integration Test
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
build-push-image:
if: github.ref == 'refs/heads/main'
name: Build and push image
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: dropletbot
password: ${{ secrets.botDockerHubPassword }}
- name: Build and push (latest)
if: github.ref == 'refs/heads/main'
uses: docker/build-push-action@v3
with:
context: .
platforms: linux/amd64,linux/arm64
push: true
tags: instill/console:latest
cache-from: type=registry,ref=instill/console:buildcache
cache-to: type=registry,ref=instill/console:buildcache,mode=max
backends:
needs: build-push-image
if: github.ref == 'refs/heads/main'
name: Backends
strategy:
fail-fast: false
matrix:
component: [pipeline-backend]
uses: instill-ai/instill-core/.github/workflows/integration-test-backend.yml@main
with:
component: ${{ matrix.component }}
target: latest
console:
needs: build-push-image
if: github.ref == 'refs/heads/main'
name: Console
uses: instill-ai/instill-core/.github/workflows/integration-test-console.yml@main
with:
target: latest
pr-head:
if: github.event_name == 'pull_request'
name: PR head branch
runs-on: ubuntu-latest
steps:
- name: Cancel Previous Runs
uses: styfle/[email protected]
# mono occupies port 8084 which conflicts with mgmt-backend
- name: Stop mono service
run: |
sudo kill -9 `sudo lsof -t -i:8084`
sudo lsof -i -P -n | grep LISTEN
- name: Maximize build space
uses: easimon/maximize-build-space@master
with:
overprovision-lvm: "true"
remove-dotnet: "true"
build-mount-path: "/var/lib/docker/"
- name: Restart docker
run: sudo service docker restart
- name: Checkout
uses: actions/checkout@v3
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Load .env file
uses: cardinalby/export-env-action@v2
with:
envFile: ./apps/console/.env
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Build image
uses: docker/build-push-action@v3
with:
context: .
load: true
tags: instill/console:latest
- name: Checkout repo
uses: actions/checkout@v3
with:
repository: instill-ai/instill-core
- name: Load .env file
uses: cardinalby/export-env-action@v2
with:
envFile: .env
- name: Launch Instill Core (latest)
run: |
make latest BUILD=true EDITION=local-ce:test RAY_LATEST_TAG=latest ITMODE_ENABLED=true INSTILL_CORE_HOST=api-gateway
- name: Checkout
uses: actions/checkout@v3
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Run console integration test (latest)
run: |
docker build --build-arg TEST_USER='root' -f Dockerfile.playwright -t console-playwright:latest .
docker run -t \
-e NEXT_PUBLIC_GENERAL_API_VERSION=v1beta \
-e NEXT_PUBLIC_MODEL_API_VERSION=v1alpha \
-e NEXT_PUBLIC_CONSOLE_EDITION=local-ce:test \
-e NEXT_PUBLIC_CONSOLE_BASE_URL=http://console:3000 \
-e NEXT_PUBLIC_BASE_API_GATEWAY_URL=http://api-gateway:8080 \
-e NEXT_SERVER_BASE_API_GATEWAY_URL=http://api-gateway:8080 \
-e NEXT_PUBLIC_SELF_SIGNED_CERTIFICATION=false \
-e NEXT_PUBLIC_INSTILL_AI_USER_COOKIE_NAME=instill-ai-user \
--network instill-network \
--entrypoint ./entrypoint-playwright.sh \
--name console-integration-test \
console-playwright:latest
- name: Copy the test-result to host
if: always()
run: docker cp console-integration-test:/app/apps/console/test-results ./test-results
- name: Upload artifact
if: always()
uses: actions/upload-artifact@v4
with:
name: test-results
path: test-results
retention-days: 1