This is an automated email from the ASF dual-hosted git repository. kezhenxu94 pushed a commit to branch gha-event in repository https://gitbox.apache.org/repos/asf/skywalking-cli.git
commit 6ca7642da88f9a3b5d8ca12df8d9603b31848617 Author: kezhenxu94 <[email protected]> AuthorDate: Mon Jun 14 14:13:00 2021 +0800 Test GHA --- .github/workflows/test.yaml | 42 +++++++++++++++++++++++++ Dockerfile | 35 +++++++++++++++++++++ Makefile | 9 +++++- action.yaml | 75 +++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 160 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml new file mode 100644 index 0000000..145f737 --- /dev/null +++ b/.github/workflows/test.yaml @@ -0,0 +1,42 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# +name: Test GHA + +on: + push: + branches: + - gha-event + +jobs: + test: + name: Test GHA + runs-on: ubuntu-latest + steps: + - name: Check out code into the Go module directory + uses: actions/checkout@v2 + with: + submodules: true + + - name: Check License + uses: apache/skywalking-cli@gha-event + with: + oap-url: localhost:11800 + service: test-service + instance: test-service-instance + diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..d868def --- /dev/null +++ b/Dockerfile @@ -0,0 +1,35 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +FROM golang:1.14 AS builder + +ENV CGO_ENABLED=0 +ENV GO111MODULE=on + +WORKDIR /cli + +COPY go.* ./ + +RUN go mod download + +COPY . . + +RUN make linux && mv bin/swctl-*-linux-amd64 /swctl + +FROM alpine + +COPY --from=builder /swctl /swctl + +ENTRYPOINT [ "sh", "-c" ] diff --git a/Makefile b/Makefile index 448f123..c90a50f 100644 --- a/Makefile +++ b/Makefile @@ -15,10 +15,13 @@ # limitations under the License. # -VERSION ?= latest +VERSION ?= dev-$(shell git rev-parse --short HEAD) +APP_NAME = skywalking-cli OUT_DIR = bin BINARY = swctl +HUB ?= docker.io/apache + RELEASE_BIN = skywalking-cli-$(VERSION)-bin RELEASE_SRC = skywalking-cli-$(VERSION)-src @@ -144,6 +147,10 @@ check-codegen: exit 1; \ fi +.PHONY: docker +docker: + docker build . -t $(HUB)/$(APP_NAME):$(VERSION) + .PHONY: test-commands test-commands: @if ! docker run --name oap -p 12800:12800 -p 11800:11800 -d -e SW_HEALTH_CHECKER=default -e SW_TELEMETRY=prometheus apache/skywalking-oap-server:8.4.0-es7 > /dev/null 2>&1;then \ diff --git a/action.yaml b/action.yaml new file mode 100644 index 0000000..d741fb2 --- /dev/null +++ b/action.yaml @@ -0,0 +1,75 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: SkyWalking Event Reporter +description: Report GitHub workflow events to Apache SkyWalking +author: Apache SkyWalking +inputs: + oap-url: + description: URL of SkyWalking OAP + required: true + auth-token: + description: Authorization token of SkyWalking OAP + required: false + name: + description: The name of the event, for example, "Upgrade" + required: false + default: Upgrade + service: + description: The service name of the event + required: true + instance: + description: The service instance of the event + required: true + endpoint: + description: The service endpoint of the event, if any + required: false + message: + description: The message of the event + required: false + default: Upgrade from {fromVersion} to {toVersion} + parameters: + description: The parameters in the message + required: false + +runs: + using: docker + image: Dockerfile + env: + OAP_URL: ${{ inputs.oap-url }} + NAME: ${{ inputs.name }} + SERVICE: ${{ inputs.service }} + INSTANCE: ${{ inputs.instance }} + ENDPOINT: ${{ inputs.endpoint }} + MESSAGE: ${{ inputs.message }} + PARAMETERS: ${{ inputs.parameters }} + + args: + - echo + - ::save-state name=START_TIME::$(date +%s)000 + post-entrypoint: >- + /swctl + --grpcAddr="$OAP_URL" + event report + --uuid=$(uuidgen) + --name="$NAME" + --service="$SERVICE" + --instance="$INSTANCE" + --endpoint="$ENDPOINT" + --message="$MESSAGE" + --startTime="$STATE_START_TIME" + --endTime=$(date +%s)000 + "$PARAMETERS"
