Skip to content

chore(main): release 0.33.0-alpha (#706) #1442

chore(main): release 0.33.0-alpha (#706)

chore(main): release 0.33.0-alpha (#706) #1442

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
uses: instill-ai/model-backend/.github/workflows/images.yml@main
secrets: inherit
backends:
needs: build-push-image
if: github.ref == 'refs/heads/main'
name: Backends
strategy:
fail-fast: false
matrix:
component: [model-backend]
uses: instill-ai/instill-core/.github/workflows/integration-test-backend.yml@main
with:
component: ${{ matrix.component }}
target: latest
pr-head:
if: github.event_name == 'pull_request'
name: PR head branch
runs-on: ubuntu-latest
steps:
# 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: Pre Free disk space (Ubuntu)
run: |
df --human-readable
sudo apt clean
rm --recursive --force "$AGENT_TOOLSDIRECTORY"
- name: Free Disk Space (Ubuntu)
uses: jlumbroso/free-disk-space@main
with:
# this might remove tools that are actually needed,
# if set to "true" but frees about 6 GB
tool-cache: true
# all of these default to true, but feel free to set to
# "false" if necessary for your workflow
android: true
dotnet: true
haskell: true
large-packages: true
docker-images: true
swap-storage: true
- name: Checkout
uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Load .env file
uses: cardinalby/export-env-action@v2
with:
envFile: .env
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build image
uses: docker/build-push-action@v5
with:
context: .
load: true
build-args: |
SERVICE_NAME=model-backend
tags: instill/model-backend:latest
- name: Checkout repo (instill-core)
uses: actions/checkout@v4
with:
repository: instill-ai/instill-core
- name: Load .env file (instill-core)
uses: cardinalby/export-env-action@v2
with:
envFile: .env
- name: Launch Instill Core (latest)
run: |
COMPOSE_PROFILES=all \
EDITION=local-ce:test \
RAY_LATEST_TAG=latest \
docker compose -f docker-compose.yml -f docker-compose-latest.yml up -d --quiet-pull
COMPOSE_PROFILES=all \
EDITION=local-ce:test \
docker compose -f docker-compose.yml -f docker-compose-latest.yml rm -f
- name: Login to DockerHub
uses: docker/login-action@v3
with:
username: dropletbot
password: ${{ secrets.botDockerHubPassword }}
- name: Pull Test Models
run: |
docker pull instill/dummy-cls:dev
docker pull instill/dummy-det:dev
docker pull instill/dummy-instance-segmentation:dev
docker pull instill/dummy-keypoint:dev
docker pull instill/dummy-semantic-segmentation:dev
docker pull instill/dummy-completion:dev
docker pull instill/dummy-chat:dev
docker pull instill/dummy-text-to-image:dev
docker pull instill/dummy-multimodal-chat:dev
docker pull instill/dummy-text-embedding:dev
docker pull instill/dummy-multimodal-embedding:dev
docker tag instill/dummy-cls:dev localhost:5001/admin/dummy-cls
docker tag instill/dummy-det:dev localhost:5001/admin/dummy-det
docker tag instill/dummy-instance-segmentation:dev localhost:5001/admin/dummy-instance-segmentation
docker tag instill/dummy-keypoint:dev localhost:5001/admin/dummy-keypoint
docker tag instill/dummy-semantic-segmentation:dev localhost:5001/admin/dummy-semantic-segmentation
docker tag instill/dummy-completion:dev localhost:5001/admin/dummy-completion
docker tag instill/dummy-chat:dev localhost:5001/admin/dummy-chat
docker tag instill/dummy-text-to-image:dev localhost:5001/admin/dummy-text-to-image
docker tag instill/dummy-multimodal-chat:dev localhost:5001/admin/dummy-multimodal-chat
docker tag instill/dummy-text-embedding:dev localhost:5001/admin/dummy-text-embedding
docker tag instill/dummy-multimodal-embedding:dev localhost:5001/admin/dummy-multimodal-embedding
docker push localhost:5001/admin/dummy-cls
docker push localhost:5001/admin/dummy-det
docker push localhost:5001/admin/dummy-instance-segmentation
docker push localhost:5001/admin/dummy-keypoint
docker push localhost:5001/admin/dummy-semantic-segmentation
docker push localhost:5001/admin/dummy-completion
docker push localhost:5001/admin/dummy-chat
docker push localhost:5001/admin/dummy-text-to-image
docker push localhost:5001/admin/dummy-multimodal-chat
docker push localhost:5001/admin/dummy-text-embedding
docker push localhost:5001/admin/dummy-multimodal-embedding
- name: Launch Init Model Pod
run: |
COMPOSE_PROFILES=all \
EDITION=local-ce:test \
RAY_LATEST_TAG=latest \
INITMODEL_ENABLED=true \
docker compose -f docker-compose.yml -f docker-compose-latest.yml up --quiet-pull model_backend_init_model
- name: Install k6
run: |
curl https://github.com/grafana/k6/releases/download/v${{ env.K6_VERSION }}/k6-v${{ env.K6_VERSION }}-linux-amd64.tar.gz -L | tar xvz --strip-components 1 && sudo cp k6 /usr/bin
- name: Install jq
uses: dcarbone/install-jq-action@v2
- name: Checkout (model-backend)
uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Load .env file
uses: cardinalby/export-env-action@v2
with:
envFile: .env
- name: Check test model init job
run: while [ -z "$(docker ps -f 'name=model-backend-init-model' -f 'status=exited' -q)" ]; do echo "model init pod still running"; sleep 5; done;
- name: Check test model deployment
run: while [ "$(curl -s http://localhost:8265/api/serve/applications/ | jq '.applications | to_entries | map(select(.key | contains("dummy-")) | .value.status) | length == 11 and all(. == "RUNNING")')" != "true" ]; do echo "models still deploying"; sleep 5; done;
- name: Run integration-test
run: |
make integration-test API_GATEWAY_URL=localhost:8080