diff --git a/.harness/harness.yaml b/.harness/harness.yaml new file mode 100644 index 0000000..957749e --- /dev/null +++ b/.harness/harness.yaml @@ -0,0 +1,381 @@ +pipeline: + orgIdentifier: default + tags: {} + properties: + ci: + codebase: + connectorRef: GitHub_Drone_Plugins_Org + repoName: drone-docker + build: <+input> + sparseCheckout: [] + stages: + - stage: + name: Test + identifier: Test + description: "" + type: CI + spec: + cloneCodebase: true + caching: + enabled: false + paths: [] + platform: + os: Linux + arch: Amd64 + runtime: + type: Cloud + spec: {} + execution: + steps: + - step: + type: Run + name: GO VET + identifier: Run_1 + spec: + connectorRef: account.harnessImage + image: golang:1.22.4 + shell: Sh + command: go vet ./... + - step: + type: Run + name: GO TEST + identifier: Run_2 + spec: + connectorRef: account.harnessImage + image: golang:1.22.4 + shell: Sh + command: go test -cover ./... + - stage: + name: linux-amd64 + identifier: linamd64 + description: "" + type: CI + spec: + cloneCodebase: true + caching: + enabled: false + paths: [] + platform: + os: Linux + arch: Amd64 + runtime: + type: Cloud + spec: {} + execution: + steps: + - step: + type: Run + name: Build Binary + identifier: Build_Push + spec: + connectorRef: account.harnessImage + image: golang:1.22.4 + shell: Sh + command: <+input> + envVariables: + CGO_ENABLED: "0" + - step: + type: Plugin + name: Build and Push on Tag + identifier: Docker_Build_and_Push + spec: + connectorRef: Plugins_Docker_Hub_Connector + image: plugins/docker + settings: + username: drone + password: <+secrets.getValue("Plugins_Docker_Hub_Pat")> + repo: <+input> + dockerfile: <+input> + auto_tag: "true" + auto_tag_suffix: <+input> + when: + stageStatus: Success + condition: <+codebase.build.type> == "tag" + - step: + type: BuildAndPushDockerRegistry + name: Build and Push on Branch + identifier: BuildAndPushDockerRegistry_1 + spec: + connectorRef: Plugins_Docker_Hub_Connector + repo: <+input> + tags: <+input> + caching: true + dockerfile: <+input> + when: + stageStatus: Success + condition: <+codebase.build.type> == "branch" + strategy: + matrix: + repo: + - docker + - gcr + - gar + - ecr + - heroku + - acr + - stage: + name: linux-arm64 + identifier: linarm64 + description: "" + type: CI + spec: + cloneCodebase: true + caching: + enabled: false + paths: [] + platform: + os: Linux + arch: Arm64 + runtime: + type: Cloud + spec: {} + execution: + steps: + - step: + type: Run + name: Build Binary + identifier: buildpush + spec: + connectorRef: account.harnessImage + image: golang:1.22.4 + shell: Sh + command: <+input> + envVariables: + CGO_ENABLED: "0" + - step: + type: Plugin + name: Build and Push on Tag + identifier: Docker_Build_and_Push + spec: + connectorRef: Plugins_Docker_Hub_Connector + image: plugins/docker + settings: + username: drone + password: <+secrets.getValue("Plugins_Docker_Hub_Pat")> + repo: <+input> + dockerfile: <+input> + auto_tag: "true" + auto_tag_suffix: <+input> + when: + stageStatus: Success + condition: <+codebase.build.type> == "tag" + - step: + type: BuildAndPushDockerRegistry + name: Build and Push on Branch + identifier: BuildAndPushDockerRegistry_1 + spec: + connectorRef: Plugins_Docker_Hub_Connector + repo: <+input> + tags: <+input> + caching: true + dockerfile: <+input> + when: + stageStatus: Success + condition: <+codebase.build.type> == "branch" + strategy: + matrix: + repo: + - docker + - gcr + - gar + - ecr + - heroku + - acr + - stage: + name: win-1809-amd64 + identifier: win1809amd64 + description: "" + type: CI + spec: + cloneCodebase: true + caching: + enabled: true + infrastructure: + type: VM + spec: + type: Pool + spec: + poolName: windows-2019 + os: Windows + execution: + steps: + - step: + type: Run + name: Build Binary + identifier: go_build + spec: + connectorRef: account.harnessImage + image: golang:1.22.4 + shell: Sh + command: |- + # disable cgo + export CGO_ENABLED=0 + + go build -o release/windows/amd64/drone-docker.exe ./cmd/drone-docker + go build -o release/windows/amd64/drone-ecr.exe ./cmd/drone-ecr + go build -o release/windows/amd64/drone-gcr.exe ./cmd/drone-gcr + go build -o release/windows/amd64/drone-acr.exe ./cmd/drone-acr + go build -o release/windows/amd64/drone-gar.exe ./cmd/drone-gar + - step: + type: Plugin + name: Build and Push on Tag + identifier: Docker_Build_and_Push1 + spec: + connectorRef: Plugins_Docker_Hub_Connector + image: plugins/docker + settings: + username: drone + password: <+secrets.getValue("Plugins_Docker_Hub_Pat")> + repo: <+input> + dockerfile: <+input> + auto_tag: "true" + auto_tag_suffix: <+input> + when: + stageStatus: Success + condition: <+codebase.build.type> == "tag" + - step: + type: BuildAndPushDockerRegistry + name: Build and Push on Branch + identifier: BuildAndPushDockerRegistry_2 + spec: + connectorRef: Plugins_Docker_Hub_Connector + repo: <+input> + tags: <+input> + caching: true + dockerfile: <+input> + when: + stageStatus: Success + condition: <+codebase.build.type> == "branch" + strategy: + matrix: + repo: + - docker + - gcr + - gar + - ecr + - acr + delegateSelectors: + - windows-vm + - stage: + name: win-ltsc2022-amd64 + identifier: winamd64 + description: "" + type: CI + spec: + cloneCodebase: true + caching: + enabled: false + paths: [] + platform: + os: Windows + arch: Amd64 + runtime: + type: Cloud + spec: {} + execution: + steps: + - step: + type: Run + name: Build Binary -ltsc2022 + identifier: build_amd64ltsc2022 + spec: + connectorRef: account.harnessImage + image: golang:1.22.4 + shell: Sh + command: |- + # disable cgo + export CGO_ENABLED=0 + + go build -o release/windows/amd64/drone-docker.exe ./cmd/drone-docker + go build -o release/windows/amd64/drone-ecr.exe ./cmd/drone-ecr + go build -o release/windows/amd64/drone-gcr.exe ./cmd/drone-gcr + go build -o release/windows/amd64/drone-acr.exe ./cmd/drone-acr + go build -o release/windows/amd64/drone-gar.exe ./cmd/drone-gar + envVariables: + CGO_ENABLED: "0" + - step: + type: Plugin + name: Build and Push on Tag + identifier: Docker_Build_and_Push1 + spec: + connectorRef: Plugins_Docker_Hub_Connector + image: plugins/docker + settings: + username: drone + password: <+secrets.getValue("Plugins_Docker_Hub_Pat")> + repo: <+input> + dockerfile: <+input> + auto_tag: "true" + auto_tag_suffix: <+input> + when: + stageStatus: Success + condition: <+codebase.build.type> == "tag" + - step: + type: BuildAndPushDockerRegistry + name: Build and Push on Branch + identifier: BuildAndPushDockerRegistry_2 + spec: + connectorRef: Plugins_Docker_Hub_Connector + repo: <+input> + tags: <+input> + caching: true + dockerfile: <+input> + when: + stageStatus: Success + condition: <+codebase.build.type> == "branch" + buildIntelligence: + enabled: false + strategy: + matrix: + repo: + - docker + - gcr + - gar + - ecr + - acr + - stage: + name: Manifest and Release + identifier: Manifest + description: "" + type: CI + spec: + cloneCodebase: true + caching: + enabled: false + paths: [] + execution: + steps: + - step: + type: Plugin + name: Manifest + identifier: Plugin_1 + spec: + connectorRef: Plugins_Docker_Hub_Connector + image: plugins/manifest + settings: + username: drone + password: <+secrets.getValue("Plugins_Docker_Hub_Pat")> + auto_tag: "true" + ignore_missing: "true" + spec: <+input> + when: + stageStatus: Success + condition: <+codebase.build.type> == "tag" || <+codebase.build.type> == "branch" + platform: + os: Linux + arch: Amd64 + runtime: + type: Cloud + spec: {} + strategy: + matrix: + repo: + - docker + - gcr + - gar + - ecr + - heroku + - acr + identifier: dronedockerharness + projectIdentifier: Drone_Plugins + name: drone-docker-harness