[Feat] Add download status into runtime downloader #574
Workflow file for this run
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: Installation Tests | |
on: | |
push: | |
branches: [ "main" ] | |
paths: | |
- '.github/workflows/**' | |
- 'build/container/**' | |
- 'config/**' | |
- 'pkg/**' | |
- 'cmd/**' | |
- 'python/**' | |
- 'Makefile' | |
- 'go.mod' | |
- 'go.sum' | |
pull_request: | |
branches: [ "main" ] | |
paths: | |
- '.github/workflows/**' | |
- 'build/container/**' | |
- 'config/**' | |
- 'pkg/**' | |
- 'cmd/**' | |
- 'python/**' | |
- 'Makefile' | |
- 'go.mod' | |
- 'go.sum' | |
jobs: | |
build-images: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
image: [controller-manager, gateway-plugins, runtime, metadata-service] | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v4 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v2 | |
- name: Build ${{ matrix.image }} | |
run: | | |
GIT_COMMIT_HASH=${{ github.sha }} make docker-build-${{ matrix.image }} | |
- name: Save image | |
run: | | |
docker save aibrix/${{ matrix.image }}:${{ github.sha }} > ${{ matrix.image }}.tar | |
- name: Upload image artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ${{ matrix.image }}-image | |
path: ${{ matrix.image }}.tar | |
retention-days: 1 | |
installation-test: | |
needs: build-images | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v4 | |
- name: Download all image artifacts | |
uses: actions/download-artifact@v3 | |
- name: Install kind | |
run: | | |
[ $(uname -m) = x86_64 ] && curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.24.0/kind-linux-amd64 | |
chmod +x ./kind | |
mv ./kind /usr/local/bin/kind | |
kind version | |
- name: Install kustomize | |
run: | | |
curl -L https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize/v5.4.3/kustomize_v5.4.3_$(go env GOOS)_$(go env GOARCH).tar.gz | tar -xz -C /usr/local/bin/ | |
kustomize version | |
- name: Set up testing environment | |
run: | | |
# Set up the cluster with kind or other Kubernetes environment needed | |
kind create cluster --name installation-test | |
kubectl cluster-info --context kind-installation-test | |
- name: Load image into Kind | |
run: | | |
for image in controller-manager gateway-plugins runtime metadata-service; do | |
docker load < ${image}-image/${image}.tar | |
# Retag the image | |
# This is for application integration, since it is not that easy to override all commits in manifest | |
# It is better to use nightly to represent the latest image | |
docker tag aibrix/${image}:${{ github.sha }} aibrix/${image}:nightly | |
kind load docker-image aibrix/${image}:${{ github.sha }} --name installation-test | |
kind load docker-image aibrix/${image}:nightly --name installation-test | |
done | |
- name: Deploy controller with the built image | |
run: | | |
kubectl create -k config/dependency | |
cd config/default | |
kustomize edit set image controller=aibrix/controller-manager:${{ github.sha }} | |
kustomize edit set image gateway-plugins=aibrix/gateway-plugins:${{ github.sha }} | |
kustomize edit set image metadata-service=aibrix/metadata-service:${{ github.sha }} | |
cd ${{ github.workspace }} | |
kubectl create -k config/default | |
- name: Deploy Workload | |
run: | | |
cd development/app | |
docker build -t aibrix/vllm-mock:nightly -f Dockerfile . | |
kind load docker-image aibrix/vllm-mock:nightly --name installation-test | |
kubectl create -k config/mock | |
- name: Check pod status | |
run: | | |
sleep 60s | |
kubectl get pods --all-namespaces | |
kubectl wait pod --all --for=condition=ready --all-namespaces --timeout=300s | |
- name: Clean up | |
run: kind delete cluster --name installation-test |