refactor(workflow): extract method and cleanup #1446
This file contains 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: 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 |