Skip to content

Commit

Permalink
cleanup pipeline, use make for building and loading (#534)
Browse files Browse the repository at this point in the history
* use make for building and loading, cleanup pipeline

* fix typo
  • Loading branch information
tomqin93 authored Mar 14, 2023
1 parent a61379f commit 50e9909
Show file tree
Hide file tree
Showing 3 changed files with 77 additions and 154 deletions.
47 changes: 47 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,11 @@ buildx-push-image-telemetry-service:
--build-arg PROJECT_ROOT="${PROJECT_ROOT}" ${PROJECT_ROOT} \
-t edgehub/telemetryservice:${IMAGE_VERSION} --push

buildx-build-image-shifu-controller:
docker buildx build --platform=linux/$(shell go env GOARCH) -f $(PROJECT_ROOT)/pkg/k8s/crd/Dockerfile \
--build-arg PROJECT_ROOT="$(PROJECT_ROOT)" $(PROJECT_ROOT) \
-t edgehub/shifu-controller:$(IMAGE_VERSION) --load

buildx-build-image-deviceshifu-http-http:
docker buildx build --platform=linux/$(shell go env GOARCH) -f ${PROJECT_ROOT}/dockerfiles/Dockerfile.deviceshifuHTTP \
--build-arg PROJECT_ROOT="${PROJECT_ROOT}" ${PROJECT_ROOT} \
Expand Down Expand Up @@ -158,6 +163,48 @@ buildx-build-image-deviceshifu-tcp-tcp:
--build-arg PROJECT_ROOT="${PROJECT_ROOT}" ${PROJECT_ROOT} \
-t edgehub/deviceshifu-tcp-tcp:${IMAGE_VERSION} --load

buildx-build-image-mockdevice-thermometer:
docker buildx build --platform=linux/$(shell go env GOARCH) \
-f $(PROJECT_ROOT)/examples/deviceshifu/mockdevice/thermometer/Dockerfile.mockdevice-thermometer \
--build-arg PROJECT_ROOT="$(PROJECT_ROOT)" $(PROJECT_ROOT) \
-t edgehub/mockdevice-thermometer:$(IMAGE_VERSION) --load

buildx-build-image-mockdevice-robot-arm:
docker buildx build --platform=linux/$(shell go env GOARCH) \
-f $(PROJECT_ROOT)/examples/deviceshifu/mockdevice/robot-arm/Dockerfile.mockdevice-robot-arm \
--build-arg PROJECT_ROOT="$(PROJECT_ROOT)" $(PROJECT_ROOT) \
-t edgehub/mockdevice-robot-arm:$(IMAGE_VERSION) --load

buildx-build-image-mockdevice-plate-reader:
docker buildx build --platform=linux/$(shell go env GOARCH) \
-f $(PROJECT_ROOT)/examples/deviceshifu/mockdevice/plate-reader/Dockerfile.mockdevice-plate-reader \
--build-arg PROJECT_ROOT="$(PROJECT_ROOT)" $(PROJECT_ROOT) \
-t edgehub/mockdevice-plate-reader:$(IMAGE_VERSION) --load

buildx-build-image-mockdevice-agv:
docker buildx build --platform=linux/$(shell go env GOARCH) \
-f $(PROJECT_ROOT)/examples/deviceshifu/mockdevice/agv/Dockerfile.mockdevice-agv \
--build-arg PROJECT_ROOT="$(PROJECT_ROOT)" $(PROJECT_ROOT) \
-t edgehub/mockdevice-agv:$(IMAGE_VERSION) --load

buildx-build-image-mockdevice-plc:
docker buildx build --platform=linux/$(shell go env GOARCH) \
-f $(PROJECT_ROOT)/examples/deviceshifu/mockdevice/plc/Dockerfile.mockdevice-plc \
--build-arg PROJECT_ROOT="$(PROJECT_ROOT)" $(PROJECT_ROOT) \
-t edgehub/mockdevice-plc:$(IMAGE_VERSION) --load

buildx-build-image-mockdevice-socket:
docker buildx build --platform=linux/$(shell go env GOARCH) \
-f $(PROJECT_ROOT)/examples/deviceshifu/mockdevice/socket/Dockerfile.mockdevice-socket \
--build-arg PROJECT_ROOT="$(PROJECT_ROOT)" $(PROJECT_ROOT) \
-t edgehub/mockdevice-socket:$(IMAGE_VERSION) --load

buildx-build-image-mockdevice-opcua:
docker buildx build --platform=linux/$(shell go env GOARCH) \
-f $(PROJECT_ROOT)/examples/deviceshifu/mockdevice/opcua/Dockerfile.mockdevice-opcua \
--build-arg PROJECT_ROOT="$(PROJECT_ROOT)" $(PROJECT_ROOT) \
-t edgehub/mockdevice-opcua:$(IMAGE_VERSION) --load

buildx-build-image-deviceshifu: \
buildx-build-image-deviceshifu-http-http \
buildx-build-image-deviceshifu-http-mqtt \
Expand Down
182 changes: 29 additions & 153 deletions azure-pipelines/azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -90,61 +90,26 @@ stages:
- script: |
tag=`cat version.txt` && echo "##vso[task.setvariable variable=tag]$tag"
displayName: Set the tag name as an environment variable
- task: DockerInstaller@0
displayName: "Docker Installer"
inputs:
dockerVersion: 20.10.9
releaseType: stable
- task: KubectlInstaller@0
inputs:
kubectlVersion: latest
- task: Go@0
displayName: "Kind Installer"
inputs:
command: 'get'
arguments: 'sigs.k8s.io/[email protected]'
- script: |
docker buildx build --platform=linux/amd64 \
-f $(System.DefaultWorkingDirectory)/pkg/k8s/crd/Dockerfile \
--build-arg PROJECT_ROOT="$(System.DefaultWorkingDirectory)" $(System.DefaultWorkingDirectory) \
-t edgehub/shifu-controller:$(tag) --load
make buildx-build-image-shifu-controller
displayName: build edgehub/shifu-controller
- script: |
echo $tag
docker buildx build --platform=linux/amd64 \
-f $(System.DefaultWorkingDirectory)/dockerfiles/Dockerfile.deviceshifuHTTP \
--build-arg PROJECT_ROOT="$(System.DefaultWorkingDirectory)" $(System.DefaultWorkingDirectory) \
-t edgehub/deviceshifu-http-http:$(tag) --load
make buildx-build-image-deviceshifu-http-http
displayName: build edgehub/deviceshifu-http-http
- script: |
docker buildx build --platform=linux/amd64 \
-f $(System.DefaultWorkingDirectory)/examples/deviceshifu/mockdevice/thermometer/Dockerfile.mockdevice-thermometer \
--build-arg PROJECT_ROOT="$(System.DefaultWorkingDirectory)" $(System.DefaultWorkingDirectory) \
-t edgehub/mockdevice-thermometer:$(tag) --load
make buildx-build-image-mockdevice-thermometer
displayName: build edgehub/mockdevice-thermometer
- script: |
docker buildx build --platform=linux/amd64 \
-f $(System.DefaultWorkingDirectory)/examples/deviceshifu/mockdevice/robot-arm/Dockerfile.mockdevice-robot-arm \
--build-arg PROJECT_ROOT="$(System.DefaultWorkingDirectory)" $(System.DefaultWorkingDirectory) \
-t edgehub/mockdevice-robot-arm:$(tag) --load
make buildx-build-image-mockdevice-robot-arm
displayName: build edgehub/mockdevice-robot-arm
- script: |
docker buildx build --platform=linux/amd64 \
-f $(System.DefaultWorkingDirectory)/examples/deviceshifu/mockdevice/plate-reader/Dockerfile.mockdevice-plate-reader \
--build-arg PROJECT_ROOT="$(System.DefaultWorkingDirectory)" $(System.DefaultWorkingDirectory) \
-t edgehub/mockdevice-plate-reader:$(tag) --load
make buildx-build-image-mockdevice-plate-reader
displayName: build edgehub/mockdevice-plate-reader
- script: |
docker buildx build --platform=linux/amd64 \
-f $(System.DefaultWorkingDirectory)/examples/deviceshifu/mockdevice/agv/Dockerfile.mockdevice-agv \
--build-arg PROJECT_ROOT="$(System.DefaultWorkingDirectory)" $(System.DefaultWorkingDirectory) \
-t edgehub/mockdevice-agv:$(tag) --load
make buildx-build-image-mockdevice-agv
displayName: build edgehub/mockdevice-agv
- script: |
docker buildx build --platform=linux/amd64 \
-f $(System.DefaultWorkingDirectory)/examples/deviceshifu/mockdevice/plc/Dockerfile.mockdevice-plc \
--build-arg PROJECT_ROOT="$(System.DefaultWorkingDirectory)" $(System.DefaultWorkingDirectory) \
-t edgehub/mockdevice-plc:$(tag) --load
make buildx-build-image-mockdevice-plc
displayName: build edgehub/mockdevice-plc
- script: |
set -e
Expand Down Expand Up @@ -203,36 +168,14 @@ stages:
- script: |
tag=`cat version.txt` && echo "##vso[task.setvariable variable=tag]$tag"
displayName: Set the tag name as an environment variable
- task: DockerInstaller@0
displayName: "Docker Installer"
inputs:
dockerVersion: 20.10.9
releaseType: stable
- task: KubectlInstaller@0
inputs:
kubectlVersion: latest
- task: Go@0
displayName: "Kind Installer"
inputs:
command: 'get'
arguments: 'sigs.k8s.io/[email protected]'
- script: |
docker buildx build --platform=linux/amd64 \
-f $(System.DefaultWorkingDirectory)/pkg/k8s/crd/Dockerfile \
--build-arg PROJECT_ROOT="$(System.DefaultWorkingDirectory)" $(System.DefaultWorkingDirectory) \
-t edgehub/shifu-controller:$(tag) --load
make buildx-build-image-shifu-controller
displayName: build edgehub/shifu-controller
- script: |
docker buildx build --platform=linux/amd64 \
-f $(System.DefaultWorkingDirectory)/dockerfiles/Dockerfile.deviceshifuOPCUA \
--build-arg PROJECT_ROOT="$(System.DefaultWorkingDirectory)" $(System.DefaultWorkingDirectory) \
-t edgehub/deviceshifu-http-opcua:$(tag) --load
make buildx-build-image-deviceshifu-http-opcua
displayName: build deviceshifu-http-opcua
- script: |
docker buildx build --platform=linux/amd64 \
-f $(System.DefaultWorkingDirectory)/examples/deviceshifu/mockdevice/opcua/Dockerfile.mockdevice-opcua \
$(System.DefaultWorkingDirectory) \
-t edgehub/mockdevice-opcua:$(tag) --load
make buildx-build-image-mockdevice-opcua
displayName: build mockdevice-opcua
- script: |
set -e
Expand Down Expand Up @@ -265,36 +208,14 @@ stages:
- script: |
tag=`cat version.txt` && echo "##vso[task.setvariable variable=tag]$tag"
displayName: Set the tag name as an environment variable
- task: DockerInstaller@0
displayName: "Docker Installer"
inputs:
dockerVersion: 20.10.9
releaseType: stable
- task: KubectlInstaller@0
inputs:
kubectlVersion: latest
- task: Go@0
displayName: "Kind Installer"
inputs:
command: 'get'
arguments: 'sigs.k8s.io/[email protected]'
- script: |
docker buildx build --platform=linux/amd64 \
-f $(System.DefaultWorkingDirectory)/pkg/k8s/crd/Dockerfile \
--build-arg PROJECT_ROOT="$(System.DefaultWorkingDirectory)" $(System.DefaultWorkingDirectory) \
-t edgehub/shifu-controller:$(tag) --load
make buildx-build-image-shifu-controller
displayName: build edgehub/shifu-controller
- script: |
docker buildx build --platform=linux/amd64 \
-f $(System.DefaultWorkingDirectory)/dockerfiles/Dockerfile.deviceshifuSocket \
--build-arg PROJECT_ROOT="$(System.DefaultWorkingDirectory)" $(System.DefaultWorkingDirectory) \
-t edgehub/deviceshifu-http-socket:$(tag) --load
make buildx-build-image-deviceshifu-http-socket
displayName: build edgehub/deviceshifu-http-socket
- script: |
docker buildx build --platform=linux/amd64 \
-f $(System.DefaultWorkingDirectory)/examples/deviceshifu/mockdevice/socket/Dockerfile.mockdevice-socket \
$(System.DefaultWorkingDirectory) \
-t edgehub/mockdevice-socket:$(tag) --load
make buildx-build-image-mockdevice-socket
displayName: build mockdevice-socket
- script: |
set -e
Expand Down Expand Up @@ -327,30 +248,11 @@ stages:
- script: |
tag=`cat version.txt` && echo "##vso[task.setvariable variable=tag]$tag"
displayName: Set the tag name as an environment variable
- task: DockerInstaller@0
displayName: "Docker Installer"
inputs:
dockerVersion: 20.10.9
releaseType: stable
- task: KubectlInstaller@0
inputs:
kubectlVersion: latest
- task: Go@0
displayName: "Kind Installer"
inputs:
command: 'get'
arguments: 'sigs.k8s.io/[email protected]'
- script: |
docker buildx build --platform=linux/amd64 \
-f $(System.DefaultWorkingDirectory)/pkg/k8s/crd/Dockerfile \
--build-arg PROJECT_ROOT="$(System.DefaultWorkingDirectory)" $(System.DefaultWorkingDirectory) \
-t edgehub/shifu-controller:$(tag) --load
make buildx-build-image-shifu-controller
displayName: build edgehub/shifu-controller
- script: |
docker buildx build --platform=linux/amd64 \
-f $(System.DefaultWorkingDirectory)/dockerfiles/Dockerfile.deviceshifuMQTT \
--build-arg PROJECT_ROOT="$(System.DefaultWorkingDirectory)" $(System.DefaultWorkingDirectory) \
-t edgehub/deviceshifu-http-mqtt:$(tag) --load
make buildx-build-image-deviceshifu-http-mqtt
displayName: build edgehub/deviceshifu-http-mqtt
- script: |
set -e
Expand Down Expand Up @@ -383,10 +285,7 @@ stages:
tag=`cat version.txt` && echo "##vso[task.setvariable variable=tag]$tag"
displayName: Set the tag name as an environment variable
- script: |
docker buildx build --platform=linux/amd64 \
-f $(System.DefaultWorkingDirectory)/pkg/k8s/crd/Dockerfile \
--build-arg PROJECT_ROOT="$(System.DefaultWorkingDirectory)" $(System.DefaultWorkingDirectory) \
-t edgehub/shifu-controller:$(tag) --load
make buildx-build-image-shifu-controller
displayName: build edgehub/shifu-controller
- script: |
docker buildx build --platform=linux/amd64 \
Expand Down Expand Up @@ -436,52 +335,34 @@ stages:
- script: |
tag=`cat version.txt` && echo "##vso[task.setvariable variable=tag]$tag"
displayName: Set the tag name as an environment variable
- task: DockerInstaller@0
displayName: "Docker Installer"
inputs:
dockerVersion: 20.10.9
releaseType: stable
- script: |
docker buildx create --use
docker buildx build --platform=linux/amd64 \
-f $(System.DefaultWorkingDirectory)/dockerfiles/Dockerfile.deviceshifuPLC4X \
--build-arg PROJECT_ROOT="$(System.DefaultWorkingDirectory)" $(System.DefaultWorkingDirectory) \
-t edgehub/deviceshifu-http-plc4x:$(tag) --load
make buildx-build-image-deviceshifu-http-plc4x
displayName: build edgehub/deviceshifu-http-plc4x
- job: docker_e2e_test_telemetryservice
steps:
- script: |
tag=`cat version.txt` && echo "##vso[task.setvariable variable=tag]$tag"
displayName: Set the tag name as an environment variable
- task: DockerInstaller@0
displayName: "Docker Installer"
inputs:
dockerVersion: 20.10.9
releaseType: stable
- script: |
docker buildx create --use
docker buildx build --platform=linux/amd64 \
-f $(System.DefaultWorkingDirectory)/dockerfiles/Dockerfile.telemetryservice \
--build-arg PROJECT_ROOT="$(System.DefaultWorkingDirectory)" $(System.DefaultWorkingDirectory) \
-t edgehub/telemetryservice:$(tag) --load
make buildx-build-image-telemetry-service
docker run -itd --network host -e SERVER_LISTEN_PORT=:17772 edgehub/telemetryservice:$(tag)
displayName: build edgehub/telemetryService
- script: |
docker buildx build --platform=linux/amd64 \
-f $(System.DefaultWorkingDirectory)/examples/telemetryservice/mockclient/Dockerfile.mockclient \
--build-arg PROJECT_ROOT="$(System.DefaultWorkingDirectory)" $(System.DefaultWorkingDirectory) \
-t edgehub/mockclient:$(tag) --load
-f $(System.DefaultWorkingDirectory)/examples/telemetryservice/mockclient/Dockerfile.mockclient \
--build-arg PROJECT_ROOT="$(System.DefaultWorkingDirectory)" $(System.DefaultWorkingDirectory) \
-t edgehub/mockclient:$(tag) --load
docker run -itd --network host -e TARGET_SERVER_ADDRESS=:17772 \
-e TARGET_MQTT_SERVER_ADDRESS=localhost:1883 \
-e TARGET_SQL_SERVER_ADDRESS=localhost:6041 \
--name mockclient edgehub/mockclient:$(tag)
-e TARGET_MQTT_SERVER_ADDRESS=localhost:1883 \
-e TARGET_SQL_SERVER_ADDRESS=localhost:6041 \
--name mockclient edgehub/mockclient:$(tag)
displayName: build mockClient
- script: |
docker buildx build --platform=linux/amd64 \
-f $(System.DefaultWorkingDirectory)/examples/telemetryservice/mockserver/Dockerfile.mockserver \
--build-arg PROJECT_ROOT="$(System.DefaultWorkingDirectory)" $(System.DefaultWorkingDirectory) \
-t edgehub/mockserver:$(tag) --load
-f $(System.DefaultWorkingDirectory)/examples/telemetryservice/mockserver/Dockerfile.mockserver \
--build-arg PROJECT_ROOT="$(System.DefaultWorkingDirectory)" $(System.DefaultWorkingDirectory) \
-t edgehub/mockserver:$(tag) --load
displayName: build and run mockServer
- script: |
docker run -itd --network host --name nginx nginx:1.21
Expand All @@ -495,8 +376,8 @@ stages:
- script: |
set -e
docker run -itd --network host --name tdengine \
-v $(System.DefaultWorkingDirectory)/examples/telemetryservice/tdengine/init.sql:/root/init.sql \
tdengine/tdengine:3.0.1.4
-v $(System.DefaultWorkingDirectory)/examples/telemetryservice/tdengine/init.sql:/root/init.sql \
tdengine/tdengine:3.0.1.4
bash $(System.DefaultWorkingDirectory)/examples/telemetryservice/tdengine/checkoutput.sh
displayName: docker run tdengine and checkoutput
Expand Down Expand Up @@ -739,11 +620,6 @@ stages:
jobs:
- job: docker_push_shifu_demo
steps:
- task: DockerInstaller@0
displayName: Docker Installer
inputs:
dockerVersion: 20.10.9
releaseType: stable
- script: |
set -e
bash test/scripts/deviceshifu-demo-aio.sh build_demo amd64
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

#### build humidity detector
```bash
docker buildx build -t edgehub/humidity-detector:nightly .
docker buildx build -t edgehub/humidity-detector:nightly . --load
kind load docker-image edgehub/humidity-detector:nightly

docker buildx build -f sample_deviceshifu_dockerfiles/Dockerfile.deviceshifuHTTP-Python \
Expand Down

0 comments on commit 50e9909

Please sign in to comment.