Skip to content

Commit

Permalink
add workflow that builds and push images (#234)
Browse files Browse the repository at this point in the history
* add workflow that builds and push images

* extend for test

* fix Makefile

* add build based on version.txt

* another test before taking off draft

* fix default tag

* add echo

* finish; re-add tests

* limit workflow to master branch
  • Loading branch information
RafalSkolasinski authored May 26, 2022
1 parent b25da78 commit 57aa389
Show file tree
Hide file tree
Showing 5 changed files with 75 additions and 19 deletions.
56 changes: 56 additions & 0 deletions .github/workflows/images.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
name: Build docker images

on:
push:
branches: [ master ]

workflow_dispatch:
inputs:
docker-tag:
description: 'Docker tag for push'
default: 'latest'
required: false

jobs:
test:
name: test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-go@v2
with:
go-version: '^1.16.4'
- name: test-operator
run: make -C operator test
- name: test-scheduler
run: make -C scheduler test

docker:
needs: test
runs-on: ubuntu-latest
steps:
- name: Checkout Git Commit
uses: actions/checkout@v3

- name: Login to DockerHub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}

- name: Set default docker tag for builds from master
id: docker-tag
run: |
USER_INPUT="${{ github.event.inputs.name }}"
echo ::set-output name=value::${USER_INPUT:-"latest"}
- name: Echo the tags that will be used to push images
run: echo "Will push images with tag ${{ steps.docker-tag.outputs.value }}"

- name: Push Docker Image for Operator
working-directory: ./operator
run: CUSTOM_IMAGE_TAG=${{ steps.docker-tag.outputs.value }} make docker-build docker-push

- name: Push Docker Images for Scheduler
working-directory: ./scheduler
run: CUSTOM_IMAGE_TAG=${{ steps.docker-tag.outputs.value }} make docker-build-all docker-push-all
2 changes: 1 addition & 1 deletion .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ jobs:
if: github.repository == 'SeldonIO/seldon-core-v2' # Do not run this on forks.
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- uses: actions/setup-go@v2
with:
go-version: '^1.16.4'
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@ name: test
on:
pull_request:
jobs:
lint:
test:
name: test
if: github.repository == 'SeldonIO/seldon-core-v2' # Do not run this on forks.
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- uses: actions/setup-go@v2
with:
go-version: '^1.16.4'
Expand Down
4 changes: 2 additions & 2 deletions operator/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -85,14 +85,14 @@ run: manifests generate fmt vet ## Run a controller from your host.
build-seldon: generate fmt vet
go build -o bin/seldon -v ./cmd/seldon

build-seldon-docgen:
build-seldon-docgen:
go build -o bin/seldon-gendocs -v ./cmd/seldon/docs

generate-cli-docs:
./bin/seldon-gendocs --out ../docs/source/contents/cli/docs

.PHONY: docker-build
docker-build: test ## Build docker image with the manager.
docker-build: ## Build docker image with the manager.
cp -r ../apis apis-TEMP && rm -fr apis-TEMP/python
docker build -t ${IMG} .
rm -rf apis-TEMP
Expand Down
28 changes: 14 additions & 14 deletions scheduler/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ docker-build-scheduler: copy-apis
docker build -t ${SCHEDULER_IMG} -f Dockerfile.scheduler .

.PHONY: docker-push-scheduler
docker-push-scheduler:
docker-push-scheduler:
docker push ${SCHEDULER_IMG}

.PHONY: copy-apis
Expand All @@ -102,56 +102,56 @@ docker-build-agent: copy-apis
docker build -t ${AGENT_IMG} -f Dockerfile.agent .

.PHONY: docker-push-agent
docker-push-agent:
docker-push-agent:
docker push ${AGENT_IMG}

.PHONY: docker-build-rclone
docker-build-rclone:
docker build -t ${RCLONE_IMG} -f Dockerfile.rclone .

.PHONY: docker-push-rclone
docker-push-rclone:
docker-push-rclone:
docker push ${RCLONE_IMG}

.PHONY: docker-build-modelgateway
docker-build-modelgateway: copy-apis
docker build -t ${MODELGATEWAY_IMG} -f Dockerfile.modelgateway .

.PHONY: docker-push-modelgateway
docker-push-modelgateway:
docker-push-modelgateway:
docker push ${MODELGATEWAY_IMG}

docker-build-pipelinegateway: copy-apis
docker build -t ${PIPELINEGATEWAY_IMG} -f Dockerfile.pipelinegateway .

docker-push-pipelinegateway:
docker-push-pipelinegateway:
docker push ${PIPELINEGATEWAY_IMG}

.PHONY: docker-build-envoy
docker-build-envoy:
docker build -t ${ENVOY_IMG} -f Dockerfile.envoy .

.PHONY: docker-push-envoy
docker-push-envoy:
docker-push-envoy:
docker push ${ENVOY_IMG}

.PHONY: docker-build-dataflow
docker-build-dataflow: copy-apis
docker-build-dataflow: copy-apis data-flow/opentelemetry-javaagent.jar
docker build -t ${DATAFLOW_IMG} -f Dockerfile.dataflow .

.PHONY: docker-push-dataflow
docker-push-dataflow:
docker push ${DATAFLOW_IMG}

.PHONY: docker-build-all
docker-build-all: docker-build-agent docker-build-envoy docker-build-rclone docker-build-scheduler docker-build-modelgateway docker-build-pipelinegateway docker-build-dataflow
docker-build-all: docker-build-dataflow docker-build-agent docker-build-envoy docker-build-rclone docker-build-scheduler docker-build-modelgateway docker-build-pipelinegateway

.PHONY: docker-push-all
docker-push-all: docker-push-agent docker-push-envoy docker-push-rclone docker-push-scheduler docker-push-modelgateway docker-push-pipelinegateway docker-push-dataflow


#####################################
# Kind
# Kind
#####################################

.PHONY: kind-image-install-scheduler
Expand All @@ -163,7 +163,7 @@ kind-image-install-agent: docker-build-agent
kind load -v 3 docker-image ${AGENT_IMG} --name ${KIND_NAME}

.PHONY: kind-image-install-envoy
kind-image-install-envoy: docker-build-envoy
kind-image-install-envoy: docker-build-envoy
kind load -v 3 docker-image ${ENVOY_IMG} --name ${KIND_NAME}

.PHONY: kind-image-install-rclone
Expand Down Expand Up @@ -221,7 +221,7 @@ else
DOCKER_COMPOSE_LOCAL_MODELS =
endif

DOCKER_COMPOSE_BASE_COMMAND = docker-compose --env-file env.all -f all-base.yaml
DOCKER_COMPOSE_BASE_COMMAND = docker-compose --env-file env.all -f all-base.yaml
DOCKER_COMPOSE_INTERNAL= -f all-internal.yaml
DOCKER_COMPOSE_HOST= -f all-host-network.yaml
DOCKER_COMPOSE_SERVICE_COMMAND = ${DOCKER_COMPOSE_COMMON_IMAGES} ${DOCKER_COMPOSE_BASE_COMMAND} ${DOCKER_COMPOSE_INTERNAL} ${DOCKER_COMPOSE_LOCAL_MODELS} -p scv2
Expand All @@ -240,7 +240,7 @@ start-all-host: copy-apis create-model-folders
${DOCKER_COMPOSE_SERVICE_HOST_COMMAND} up -d

.PHONY: stop-all-host
stop-all-host:
stop-all-host:
${DOCKER_COMPOSE_SERVICE_HOST_COMMAND} down ${DOCKER_COMPOSE_REMOVE_VOLUMES}


Expand All @@ -261,15 +261,15 @@ list-services:
# Single services

.PHONY: start-mlserver
start-mlserver:
start-mlserver:
${DOCKER_COMPOSE_SERVICE_COMMAND} up -d mlserver

.PHONY: stop-mlserver
stop-mlserver:
${DOCKER_COMPOSE_SERVICE_COMMAND} \
rm --stop --force ${DOCKER_COMPOSE_REMOVE_VOLUMES} mlserver

.PHONY: start-mlserver-host
.PHONY: start-mlserver-host
start-mlserver-host: create-model-folders
${DOCKER_COMPOSE_SERVICE_HOST_COMMAND} up -d mlserver

Expand Down

0 comments on commit 57aa389

Please sign in to comment.