From f9bd6e3e6d7c50da41f3318000d6044ce34179c8 Mon Sep 17 00:00:00 2001 From: Woojoong Kim Date: Mon, 1 Jul 2024 17:41:02 -0700 Subject: [PATCH] migrate ci to github action (#411) * migrate ci to github action Signed-off-by: Woojoong Kim * migrate ci to github action Signed-off-by: Woojoong Kim * migrate ci to github action Signed-off-by: Woojoong Kim --------- Signed-off-by: Woojoong Kim --- .../{protoc_gen_choice.yml => build-test.yml} | 26 ++-- .github/workflows/code-scan.yml | 45 ++++++ .github/workflows/e2sm_kpm.yml | 39 ----- .github/workflows/e2sm_kpm_v2.yml | 39 ----- .github/workflows/e2sm_kpm_v2_go.yml | 39 ----- .github/workflows/e2sm_mho.yml | 40 ----- .github/workflows/e2sm_mho_go.yml | 39 ----- .github/workflows/e2sm_ni.yml | 40 ----- .github/workflows/e2sm_rc.yml | 40 ----- .github/workflows/e2sm_rc_pre.yml | 40 ----- .github/workflows/e2sm_rc_pre_go.yml | 39 ----- .github/workflows/e2sm_rsm.yml | 40 ----- .github/workflows/master.yml | 78 ---------- .github/workflows/protoc-gen-builder.yml | 27 ---- .github/workflows/protoc_gen_cgo.yml | 27 ---- .github/workflows/release.yml | 138 ++++++++++++++++++ .gitignore | 2 +- Makefile | 128 ++++++++-------- build/bin/push-images | 16 -- build/bin/version_check.sh | 93 ++++++++++++ 20 files changed, 361 insertions(+), 614 deletions(-) rename .github/workflows/{protoc_gen_choice.yml => build-test.yml} (51%) create mode 100644 .github/workflows/code-scan.yml delete mode 100644 .github/workflows/e2sm_kpm.yml delete mode 100644 .github/workflows/e2sm_kpm_v2.yml delete mode 100644 .github/workflows/e2sm_kpm_v2_go.yml delete mode 100644 .github/workflows/e2sm_mho.yml delete mode 100644 .github/workflows/e2sm_mho_go.yml delete mode 100644 .github/workflows/e2sm_ni.yml delete mode 100644 .github/workflows/e2sm_rc.yml delete mode 100644 .github/workflows/e2sm_rc_pre.yml delete mode 100644 .github/workflows/e2sm_rc_pre_go.yml delete mode 100644 .github/workflows/e2sm_rsm.yml delete mode 100644 .github/workflows/master.yml delete mode 100644 .github/workflows/protoc-gen-builder.yml delete mode 100644 .github/workflows/protoc_gen_cgo.yml create mode 100644 .github/workflows/release.yml delete mode 100755 build/bin/push-images create mode 100755 build/bin/version_check.sh diff --git a/.github/workflows/protoc_gen_choice.yml b/.github/workflows/build-test.yml similarity index 51% rename from .github/workflows/protoc_gen_choice.yml rename to .github/workflows/build-test.yml index ca3afdd1..bb2fec5e 100644 --- a/.github/workflows/protoc_gen_choice.yml +++ b/.github/workflows/build-test.yml @@ -1,27 +1,31 @@ # SPDX-License-Identifier: Apache-2.0 # Copyright 2024 Intel Corporation -name: protoc_gen_choice +name: Build and test workflow on: + pull_request: + branches: + - master push: branches: - master - pull_request: jobs: - protoc_gen_choice: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-go@v5 + with: + go-version-file: 'go.mod' + - name: build + run: make build + test: runs-on: ubuntu-latest - defaults: - run: - working-directory: ./protoc-gen-choice steps: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: go-version-file: 'go.mod' - - name: Build - run: go build -v -o ./protoc-gen-choice - - name: Unit tests - run: go test -race ./... - + run: make test diff --git a/.github/workflows/code-scan.yml b/.github/workflows/code-scan.yml new file mode 100644 index 00000000..237b168c --- /dev/null +++ b/.github/workflows/code-scan.yml @@ -0,0 +1,45 @@ +# SPDX-License-Identifier: Apache-2.0 +# Copyright 2024 Intel Corporation + +name: Code scan workflow + +on: + pull_request: + branches: + - master + push: + branches: + - master + +jobs: + version-check: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: check version + run: make check-version + lint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-go@v5 + with: + go-version-file: 'go.mod' + - name: golang-lint + run: make lint + license: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: check license + run: make license + fossa-check: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: FOSSA scan + uses: fossa-contrib/fossa-action@v3 + with: + fossa-api-key: 6d304c09a3ec097ba4517724e4a4d17d diff --git a/.github/workflows/e2sm_kpm.yml b/.github/workflows/e2sm_kpm.yml deleted file mode 100644 index 5985ca90..00000000 --- a/.github/workflows/e2sm_kpm.yml +++ /dev/null @@ -1,39 +0,0 @@ -# SPDX-License-Identifier: Apache-2.0 -# Copyright 2024 Intel Corporation - -name: e2sm_kpm -on: - push: - branches: - - master - pull_request: - -env: - E2T_MOD: github.com/onosproject/onos-e2t@master - ONOS_E2_SM_VERSION: latest - -jobs: - e2sm_kpm: - runs-on: ubuntu-latest - defaults: - run: - working-directory: ./servicemodels/e2sm_kpm - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-go@v5 - with: - go-version-file: 'go.mod' - - name: Build - run: go build -o build/_output/e2sm_kpm.so.1.0.0 -buildmode=plugin . - - - name: Unit tests - run: GODEBUG=cgocheck=0 go test -race ./... - - - name: docker-build - run: | - cd ../.. - ./build/bin/build-deps e2sm_kpm $E2T_MOD - docker build . -f build/plugins/Dockerfile \ - --build-arg PLUGIN_MAKE_TARGET="e2sm_kpm" \ - --build-arg PLUGIN_MAKE_VERSION="1.0.0" \ - -t onosproject/service-model-docker-e2sm_kpm-1.0.0:$ONOS_E2_SM_VERSION diff --git a/.github/workflows/e2sm_kpm_v2.yml b/.github/workflows/e2sm_kpm_v2.yml deleted file mode 100644 index a6f1f2bf..00000000 --- a/.github/workflows/e2sm_kpm_v2.yml +++ /dev/null @@ -1,39 +0,0 @@ -# SPDX-License-Identifier: Apache-2.0 -# Copyright 2024 Intel Corporation - -name: e2sm_kpm_v2 -on: - push: - branches: - - master - pull_request: - -env: - E2T_MOD: github.com/onosproject/onos-e2t@master - ONOS_E2_SM_VERSION: latest - -jobs: - e2sm_kpm_v2: - runs-on: ubuntu-latest - defaults: - run: - working-directory: ./servicemodels/e2sm_kpm_v2 - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-go@v5 - with: - go-version-file: 'go.mod' - - name: Build - run: go build -o build/_output/e2sm_kpm_v2.so.1.0.0 -buildmode=plugin . - - - name: Unit tests - run: GODEBUG=cgocheck=0 go test -race ./... - - - name: docker-build - run: | - cd ../.. - ./build/bin/build-deps e2sm_kpm_v2 $E2T_MOD onosproject/service-model-docker-e2sm_kpm_v2-1.0.0:$ONOS_E2_SM_VERSION - docker build . -f build/plugins/Dockerfile \ - --build-arg PLUGIN_MAKE_TARGET="e2sm_kpm_v2" \ - --build-arg PLUGIN_MAKE_VERSION="1.0.0" \ - -t onosproject/service-model-docker-e2sm_kpm_v2-1.0.0:$ONOS_E2_SM_VERSION diff --git a/.github/workflows/e2sm_kpm_v2_go.yml b/.github/workflows/e2sm_kpm_v2_go.yml deleted file mode 100644 index e6cb7788..00000000 --- a/.github/workflows/e2sm_kpm_v2_go.yml +++ /dev/null @@ -1,39 +0,0 @@ -# SPDX-License-Identifier: Apache-2.0 -# Copyright 2024 Intel Corporation - -name: e2sm_kpm_v2_go -on: - push: - branches: - - master - pull_request: - -env: - E2T_MOD: github.com/onosproject/onos-e2t@master - ONOS_E2_SM_VERSION: latest - -jobs: - e2sm_kpm_v2_go: - runs-on: ubuntu-latest - defaults: - run: - working-directory: ./servicemodels/e2sm_kpm_v2_go - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-go@v5 - with: - go-version-file: 'go.mod' - - name: Build - run: go build -o build/_output/e2sm_kpm_v2_go.so.1.0.0 -buildmode=plugin . - - - name: Unit tests - run: go test -race ./... - - - name: docker-build - run: | - cd ../.. - ./build/bin/build-deps e2sm_kpm_v2_go $E2T_MOD onosproject/service-model-docker-e2sm_kpm_v2_go-1.0.0:$ONOS_E2_SM_VERSION - docker build . -f build/plugins/Dockerfile \ - --build-arg PLUGIN_MAKE_TARGET="e2sm_kpm_v2_go" \ - --build-arg PLUGIN_MAKE_VERSION="1.0.0" \ - -t onosproject/service-model-docker-e2sm_kpm_v2_go-1.0.0:$ONOS_E2_SM_VERSION diff --git a/.github/workflows/e2sm_mho.yml b/.github/workflows/e2sm_mho.yml deleted file mode 100644 index 1dba0dfe..00000000 --- a/.github/workflows/e2sm_mho.yml +++ /dev/null @@ -1,40 +0,0 @@ -# SPDX-License-Identifier: Apache-2.0 -# Copyright 2024 Intel Corporation - -name: e2sm_mho -on: - push: - branches: - - master - pull_request: - -env: - E2T_MOD: github.com/onosproject/onos-e2t@master - ONOS_E2_SM_VERSION: latest - -jobs: - e2sm_mho: - runs-on: ubuntu-latest - defaults: - run: - working-directory: ./servicemodels/e2sm_mho - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-go@v5 - with: - go-version-file: 'go.mod' - - name: Build - run: go build -o build/_output/e2sm_mho.so.1.0.0 -buildmode=plugin . - - - name: Unit tests - run: GODEBUG=cgocheck=0 go test -race ./... - - - name: docker-build - run: | - cd ../.. - ./build/bin/build-deps e2sm_mho $E2T_MOD - docker build . -f build/plugins/Dockerfile \ - --build-arg PLUGIN_MAKE_TARGET="e2sm_mho" \ - --build-arg PLUGIN_MAKE_VERSION="1.0.0" \ - -t onosproject/service-model-docker-e2sm_mho-1.0.0:$ONOS_E2_SM_VERSION - diff --git a/.github/workflows/e2sm_mho_go.yml b/.github/workflows/e2sm_mho_go.yml deleted file mode 100644 index 73e03cfa..00000000 --- a/.github/workflows/e2sm_mho_go.yml +++ /dev/null @@ -1,39 +0,0 @@ -# SPDX-License-Identifier: Apache-2.0 -# Copyright 2024 Intel Corporation - -name: e2sm_mho_go -on: - push: - branches: - - master - pull_request: - -env: - E2T_MOD: github.com/onosproject/onos-e2t@master - ONOS_E2_SM_VERSION: latest - -jobs: - e2sm_mho_go: - runs-on: ubuntu-latest - defaults: - run: - working-directory: ./servicemodels/e2sm_mho_go - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-go@v5 - with: - go-version-file: 'go.mod' - - name: Build - run: go build -o build/_output/e2sm_mho_go.so.1.0.0 -buildmode=plugin . - - - name: Unit tests - run: go test -race ./... - - - name: docker-build - run: | - cd ../.. - ./build/bin/build-deps e2sm_mho_go $E2T_MOD onosproject/service-model-docker-e2sm_mho_go-1.0.0:$ONOS_E2_SM_VERSION - docker build . -f build/plugins/Dockerfile \ - --build-arg PLUGIN_MAKE_TARGET="e2sm_mho_go" \ - --build-arg PLUGIN_MAKE_VERSION="1.0.0" \ - -t onosproject/service-model-docker-e2sm_mho_go-1.0.0:$ONOS_E2_SM_VERSION diff --git a/.github/workflows/e2sm_ni.yml b/.github/workflows/e2sm_ni.yml deleted file mode 100644 index 7865d0d6..00000000 --- a/.github/workflows/e2sm_ni.yml +++ /dev/null @@ -1,40 +0,0 @@ -# SPDX-License-Identifier: Apache-2.0 -# Copyright 2024 Intel Corporation - -name: e2sm_ni -on: - push: - branches: - - master - pull_request: - -env: - E2T_MOD: github.com/onosproject/onos-e2t@master - ONOS_E2_SM_VERSION: latest - -jobs: - e2sm_ni: - runs-on: ubuntu-latest - defaults: - run: - working-directory: ./servicemodels/e2sm_ni - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-go@v5 - with: - go-version-file: 'go.mod' - - name: Build - run: go build -o build/_output/e2sm_ni.so.1.0.0 -buildmode=plugin . - - - name: Unit tests - run: go test -race ./... - - - name: docker-build - run: | - cd ../.. - ./build/bin/build-deps e2sm_ni $E2T_MOD - docker build . -f build/plugins/Dockerfile \ - --build-arg PLUGIN_MAKE_TARGET="e2sm_ni" \ - --build-arg PLUGIN_MAKE_VERSION="1.0.0" \ - -t onosproject/service-model-docker-e2sm_ni-1.0.0:$ONOS_E2_SM_VERSION - diff --git a/.github/workflows/e2sm_rc.yml b/.github/workflows/e2sm_rc.yml deleted file mode 100644 index abbedf74..00000000 --- a/.github/workflows/e2sm_rc.yml +++ /dev/null @@ -1,40 +0,0 @@ -# SPDX-License-Identifier: Apache-2.0 -# Copyright 2024 Intel Corporation - -name: e2sm_rc -on: - push: - branches: - - master - pull_request: - -env: - E2T_MOD: github.com/onosproject/onos-e2t@master - ONOS_E2_SM_VERSION: latest - -jobs: - e2sm_rc: - runs-on: ubuntu-latest - defaults: - run: - working-directory: ./servicemodels/e2sm_rc - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-go@v5 - with: - go-version-file: 'go.mod' - - name: Build - run: go build -o build/_output/e2sm_rc.so.1.0.0 -buildmode=plugin . - - - name: Unit tests - run: go test -race ./... - - - name: docker-build - run: | - cd ../.. - ./build/bin/build-deps e2sm_rc $E2T_MOD onosproject/service-model-docker-e2sm_rc-1.0.0:$ONOS_E2_SM_VERSION - docker build . -f build/plugins/Dockerfile \ - --build-arg PLUGIN_MAKE_TARGET="e2sm_rc" \ - --build-arg PLUGIN_MAKE_VERSION="1.0.0" \ - -t onosproject/service-model-docker-e2sm_rc-1.0.0:$ONOS_E2_SM_VERSION - diff --git a/.github/workflows/e2sm_rc_pre.yml b/.github/workflows/e2sm_rc_pre.yml deleted file mode 100644 index c94bd553..00000000 --- a/.github/workflows/e2sm_rc_pre.yml +++ /dev/null @@ -1,40 +0,0 @@ -# SPDX-License-Identifier: Apache-2.0 -# Copyright 2024 Intel Corporation - -name: e2sm_rc_pre -on: - push: - branches: - - master - pull_request: - -env: - E2T_MOD: github.com/onosproject/onos-e2t@master - ONOS_E2_SM_VERSION: latest - -jobs: - e2sm_rc_pre: - runs-on: ubuntu-latest - defaults: - run: - working-directory: ./servicemodels/e2sm_rc_pre - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-go@v5 - with: - go-version-file: 'go.mod' - - name: Build - run: go build -o build/_output/e2sm_rc_pre.so.1.0.0 -buildmode=plugin . - - - name: Unit tests - run: GODEBUG=cgocheck=0 go test -race ./... - - - name: docker-build - run: | - cd ../.. - ./build/bin/build-deps e2sm_rc_pre $E2T_MOD - docker build . -f build/plugins/Dockerfile \ - --build-arg PLUGIN_MAKE_TARGET="e2sm_rc_pre" \ - --build-arg PLUGIN_MAKE_VERSION="1.0.0" \ - -t onosproject/service-model-docker-e2sm_rc_pre-1.0.0:$ONOS_E2_SM_VERSION - diff --git a/.github/workflows/e2sm_rc_pre_go.yml b/.github/workflows/e2sm_rc_pre_go.yml deleted file mode 100644 index bd60c80c..00000000 --- a/.github/workflows/e2sm_rc_pre_go.yml +++ /dev/null @@ -1,39 +0,0 @@ -# SPDX-License-Identifier: Apache-2.0 -# Copyright 2024 Intel Corporation - -name: e2sm_rc_pre_go -on: - push: - branches: - - master - pull_request: - -env: - E2T_MOD: github.com/onosproject/onos-e2t@master - ONOS_E2_SM_VERSION: latest - -jobs: - e2sm_rc_pre_go: - runs-on: ubuntu-latest - defaults: - run: - working-directory: ./servicemodels/e2sm_rc_pre_go - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-go@v5 - with: - go-version-file: 'go.mod' - - name: Build - run: go build -o build/_output/e2sm_rc_pre_go.so.1.0.0 -buildmode=plugin . - - - name: Unit tests - run: go test -race ./... - - - name: docker-build - run: | - cd ../.. - ./build/bin/build-deps e2sm_rc_pre_go $E2T_MOD - docker build . -f build/plugins/Dockerfile \ - --build-arg PLUGIN_MAKE_TARGET="e2sm_rc_pre_go" \ - --build-arg PLUGIN_MAKE_VERSION="1.0.0" \ - -t onosproject/service-model-docker-e2sm_rc_pre_go-1.0.0:$ONOS_E2_SM_VERSION diff --git a/.github/workflows/e2sm_rsm.yml b/.github/workflows/e2sm_rsm.yml deleted file mode 100644 index 7d7346be..00000000 --- a/.github/workflows/e2sm_rsm.yml +++ /dev/null @@ -1,40 +0,0 @@ -# SPDX-License-Identifier: Apache-2.0 -# Copyright 2024 Intel Corporation - -name: e2sm_rsm -on: - push: - branches: - - master - pull_request: - -env: - E2T_MOD: github.com/onosproject/onos-e2t@master - ONOS_E2_SM_VERSION: latest - -jobs: - e2sm_rsm: - runs-on: ubuntu-latest - defaults: - run: - working-directory: ./servicemodels/e2sm_rsm - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-go@v5 - with: - go-version-file: 'go.mod' - - name: Build - run: go build -o build/_output/e2sm_rsm.so.1.0.0 -buildmode=plugin . - - - name: Unit tests - run: go test -race ./... - - - name: docker-build - run: | - cd ../.. - ./build/bin/build-deps e2sm_rsm $E2T_MOD onosproject/service-model-docker-e2sm_rsm-1.0.0:$ONOS_E2_SM_VERSION - docker build . -f build/plugins/Dockerfile \ - --build-arg PLUGIN_MAKE_TARGET="e2sm_rsm" \ - --build-arg PLUGIN_MAKE_VERSION="1.0.0" \ - -t onosproject/service-model-docker-e2sm_rsm-1.0.0:$ONOS_E2_SM_VERSION - diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml deleted file mode 100644 index 77f6d793..00000000 --- a/.github/workflows/master.yml +++ /dev/null @@ -1,78 +0,0 @@ -# SPDX-License-Identifier: Apache-2.0 -# Copyright 2024 Intel Corporation -name: Master -on: - push: - branches: - - master - pull_request: - -env: - ONOS_PROTOC_VERSION: v1.0.2 - BUF_VERSION: 1.0.0 - -jobs: - protos: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - run: | - cd .. - sudo git clone https://github.com/onosproject/onos-lib-go.git - cd onos-e2-sm - docker run \ - -v `pwd`:/go/src/github.com/onosproject/onos-e2-sm \ - -v `pwd`/../onos-lib-go:/go/src/github.com/onosproject/onos-lib-go \ - -w /go/src/github.com/onosproject/onos-e2-sm \ - --entrypoint /go/src/github.com/onosproject/onos-e2-sm/build/bin/compile-protos.sh \ - onosproject/protoc-go:$ONOS_PROTOC_VERSION - - protos-py: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - run: | - docker run \ - -v `pwd`:/go/src/github.com/onosproject/onos-e2-sm \ - -v `pwd`/../onos-lib-go:/go/src/github.com/onosproject/onos-lib-go \ - -w /go/src/github.com/onosproject/onos-e2-sm \ - --entrypoint /go/src/github.com/onosproject/onos-e2-sm/build/bin/compile-protos-py.sh \ - onosproject/protoc-go:$ONOS_PROTOC_VERSION - - buflint: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - run: | - docker run \ - -v `pwd`:/go/src/github.com/onosproject/onos-e2-sm \ - -v `pwd`/../onos-lib-go/api/asn1:/go/src/github.com/onosproject/onos-e2-sm/servicemodels/asn1 \ - -w /go/src/github.com/onosproject/onos-e2-sm/servicemodels \ - bufbuild/buf:$BUF_VERSION lint - - lint: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-go@v5 - with: - go-version-file: 'go.mod' - - uses: golangci/golangci-lint-action@v6.0.1 - with: - version: latest - args: -v --config ./.golangci.yml --timeout=15m - - reuse: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: fsfe/reuse-action@v3 - - fossa: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: FOSSA scan - uses: fossa-contrib/fossa-action@v3 - with: - fossa-api-key: 6d304c09a3ec097ba4517724e4a4d17d diff --git a/.github/workflows/protoc-gen-builder.yml b/.github/workflows/protoc-gen-builder.yml deleted file mode 100644 index f285526e..00000000 --- a/.github/workflows/protoc-gen-builder.yml +++ /dev/null @@ -1,27 +0,0 @@ -# SPDX-License-Identifier: Apache-2.0 -# Copyright 2024 Intel Corporation - -name: protoc_gen_builder -on: - push: - branches: - - master - pull_request: - -jobs: - protoc_gen_builder: - runs-on: ubuntu-latest - defaults: - run: - working-directory: ./protoc-gen-builder - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-go@v5 - with: - go-version-file: 'go.mod' - - name: Build - run: go build -v -o ./protoc-gen-builder - - - name: Unit tests - run: go test -race ./... - diff --git a/.github/workflows/protoc_gen_cgo.yml b/.github/workflows/protoc_gen_cgo.yml deleted file mode 100644 index e81b5976..00000000 --- a/.github/workflows/protoc_gen_cgo.yml +++ /dev/null @@ -1,27 +0,0 @@ -# SPDX-License-Identifier: Apache-2.0 -# Copyright 2024 Intel Corporation - -name: protoc_gen_cgo -on: - push: - branches: - - master - pull_request: - -jobs: - protoc_gen_cgo: - runs-on: ubuntu-latest - defaults: - run: - working-directory: ./protoc-gen-cgo - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-go@v5 - with: - go-version-file: 'go.mod' - - name: Build - run: go build -v -o ./protoc-gen-cgo - - - name: Unit tests - run: go test -race ./... - diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 00000000..99c578d8 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,138 @@ +# SPDX-License-Identifier: Apache-2.0 +# Copyright 2024 Intel Corporation +# Copyright 2024 Kyunghee University +name: Publish image and tag/release code + +on: + push: + branches: + - master + +jobs: + version-check: + if: (github.repository_owner == 'onosproject') + runs-on: ubuntu-latest + outputs: + valid_version: ${{ steps.version-check-step.outputs.valid_version }} + dev_version: ${{ steps.dev-version-check-step.outputs.dev_version }} + target_version: ${{ steps.get-target-version-step.outputs.target_version }} + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: check version + id: version-check-step + run: | + make check-version; if [[ $? == 0 ]]; then echo "valid_version=true" >> $GITHUB_OUTPUT; else echo "valid_version=false" >> $GITHUB_OUTPUT; fi + cat $GITHUB_OUTPUT + + - name: check dev version + id: dev-version-check-step + run: | + f_dev=$(./build/bin/version_check.sh is_dev) + if [[ $f_dev == "true" ]]; then echo "dev_version=true" >> $GITHUB_OUTPUT; else echo "dev_version=false" >> $GITHUB_OUTPUT; fi + cat $GITHUB_OUTPUT + + - name: get target version + id: get-target-version-step + run: | + echo "target_version=$(cat VERSION)" >> $GITHUB_OUTPUT + cat $GITHUB_OUTPUT + + tag_versions: + runs-on: ubuntu-latest + needs: version-check + if: (github.repository_owner == 'onosproject') && (needs.version-check.outputs.valid_version == 'true') && (needs.version-check.outputs.dev_version == 'false') + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: create release using REST API + run: | + for sm in $(find servicemodels -name go.mod) + do + chart_dir=$(dirname $sm) + $tag_name=$(echo $chart_dir/v${{ needs.version-check.outputs.target_version }}) + curl -L \ + -X POST \ + -H "Accept: application/vnd.github+json" \ + -H "Authorization: Bearer ${{ secrets.GH_ONOS_PAT }}" \ + -H "X-GitHub-Api-Version: 2022-11-28" \ + https://api.github.com/repos/${{ github.repository }}/releases \ + -d '{ + "tag_name": "'"$tag_name"'", + "target_commitish": "${{ github.event.repository.default_branch }}", + "name": "'"$tag_name"'", + "draft": false, + "prerelease": false, + "generate_release_notes": true + }' + done + + publish-images: + runs-on: ubuntu-latest + needs: version-check + if: (github.repository_owner == 'onosproject') && (needs.version-check.outputs.valid_version == 'true') + env: + REGISTRY: docker.io + DOCKER_REPOSITORY: onosproject/ + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + - uses: actions/setup-go@v5 + with: + go-version-file: 'go.mod' + - uses: docker/login-action@v3.1.0 + with: + registry: ${{ env.REGISTRY }} + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} + DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} + - name: Build and push Docker image with tag latest + env: + DOCKER_TAG: latest + run: | + ONOS_O1T_VERSION=${{ env.DOCKER_TAG }} make docker-build + ONOS_O1T_VERSION=${{ env.DOCKER_TAG }} make docker-push + - name: Build and push Docker image with tag + if: needs.version-check.outputs.dev_version == 'false' + env: + DOCKER_TAG: v${{ needs.version-check.outputs.target_version }} + run: | + ONOS_O1T_VERSION=${{ env.DOCKER_TAG }} make docker-build + ONOS_O1T_VERSION=${{ env.DOCKER_TAG }} make docker-push + + bump-up-version: + runs-on: ubuntu-latest + needs: version-check + if: (github.repository_owner == 'onosproject') && (needs.version-check.outputs.valid_version == 'true') && (needs.version-check.outputs.dev_version == 'false') + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: increment version + run: | + IFS='.' read -r major minor patch <<< ${{ needs.version-check.outputs.target_version }} + patch_update=$((patch+1)) + NEW_VERSION="$major.$minor.$patch_update-dev" + echo $NEW_VERSION > VERSION + echo "Updated version: $NEW_VERSION" + + - name: Create Pull Request + uses: peter-evans/create-pull-request@v6 + with: + token: ${{ secrets.GH_ONOS_PAT }} + commit-message: Update version + committer: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> + author: ${{ github.actor }} <${{ github.actor_id }}+${{ github.actor }}@users.noreply.github.com> + signoff: true + branch: version-update + delete-branch: true + title: Update version + body: | + Update VERSION file + add-paths: | + VERSION \ No newline at end of file diff --git a/.gitignore b/.gitignore index 5c26c9fc..ccfdd8e8 100644 --- a/.gitignore +++ b/.gitignore @@ -40,4 +40,4 @@ coverage.txt **/converter-example build/build-tools - +venv diff --git a/Makefile b/Makefile index fa2138f5..9a7eabd3 100644 --- a/Makefile +++ b/Makefile @@ -7,14 +7,15 @@ export GO111MODULE=on E2T_MOD ?= github.com/onosproject/onos-e2t@master -ONOS_E2_SM_VERSION := latest +ONOS_E2_SM_VERSION ?= latest ONOS_BUILD_VERSION := v1.0 ONOS_PROTOC_VERSION := v1.0.2 BUF_VERSION := 1.0.0 -build-tools:=$(shell if [ ! -d "./build/build-tools" ]; then cd build && git clone https://github.com/onosproject/build-tools.git; fi) -include ./build/build-tools/make/onf-common.mk +GOLANG_CI_VERSION := v1.52.2 + +all: build docker-build PHONY:build build: # @HELP build all libraries @@ -60,7 +61,7 @@ build_protoc_gen_builder: cd protoc-gen-builder/ && go build -v -o ./protoc-gen-builder && go install && cd .. test: # @HELP run the unit tests and source code validation -test: license build build_protoc_gen_cgo build_protoc_gen_choice build_protoc_gen_builder +test: build build_protoc_gen_cgo build_protoc_gen_choice build_protoc_gen_builder lint license cd servicemodels/e2sm_rc && go test -race ./... cd servicemodels/e2sm_kpm && GODEBUG=cgocheck=0 go test -race ./... cd servicemodels/e2sm_rc_pre && GODEBUG=cgocheck=0 go test -race ./... @@ -72,18 +73,16 @@ test: license build build_protoc_gen_cgo build_protoc_gen_choice build_protoc_ge cd servicemodels/e2sm_rsm && go test -race ./... cd servicemodels/test_sm_aper_go_lib/testsmctypes && GODEBUG=cgocheck=0 go test -race ./... -jenkins-test: # @HELP run the unit tests and source code validation producing a junit style report for Jenkins -jenkins-test: license -# cd servicemodels/e2sm_kpm && GODEBUG=cgocheck=0 TEST_PACKAGES=./... ./../../build/build-tools/build/jenkins/make-unit -# cd servicemodels/e2sm_kpm_v2 && GODEBUG=cgocheck=0 TEST_PACKAGES=./... ./../../build/build-tools/build/jenkins/make-unit -# cd servicemodels/e2sm_kpm_v2_go && TEST_PACKAGES=./... ./../../build/build-tools/build/jenkins/make-unit -# cd servicemodels/e2sm_rc_pre && GODEBUG=cgocheck=0 TEST_PACKAGES=./... ./../../build/build-tools/build/jenkins/make-unit -# cd servicemodels/e2sm_rc_pre_go && TEST_PACKAGES=./... ./../../build/build-tools/build/jenkins/make-unit -# cd servicemodels/e2sm_mho && GODEBUG=cgocheck=0 TEST_PACKAGES=./... ./../../build/build-tools/build/jenkins/make-unit -# cd servicemodels/e2sm_mho_go && TEST_PACKAGES=./... ./../../build/build-tools/build/jenkins/make-unit -# cd servicemodels/e2sm_rc && TEST_PACKAGES=./... ./../../build/build-tools/build/jenkins/make-unit - -sm-linters: golang-ci # @HELP examines Go source code and reports coding problems +license: # @HELP run license checks + rm -rf venv + python3 -m venv venv + . ./venv/bin/activate;\ + python3 -m pip install --upgrade pip;\ + python3 -m pip install reuse;\ + reuse lint + +lint: # @HELP examines Go source code and reports coding problems + golangci-lint --version | grep $(GOLANG_CI_VERSION) || curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b `go env GOPATH`/bin $(GOLANG_CI_VERSION) cd servicemodels/e2sm_kpm && golangci-lint run --timeout 5m && cd .. cd servicemodels/e2sm_rc && golangci-lint run --timeout 5m && cd .. cd servicemodels/e2sm_kpm_v2 && golangci-lint run --timeout 5m && cd .. @@ -123,7 +122,10 @@ protos-py: --entrypoint /go/src/github.com/onosproject/onos-e2-sm/build/bin/compile-protos-py.sh \ onosproject/protoc-go:${ONOS_PROTOC_VERSION} -PHONY: service-model-docker-e2sm_kpm-1.0.0 +docker-build: # @HELP build all Docker images +docker-build: build service-model-docker-e2sm_kpm_v2_go-1.0.0 service-model-docker-e2sm_rsm-1.0.0 service-model-docker-e2sm_rc_pre_go-1.0.0 service-model-docker-e2sm_mho_go-1.0.0 service-model-docker-e2sm_rc-1.0.0 + +PHONY: service-model-docker-e2sm_kpm-1.0.0 docker-push-service-model-docker-e2sm_kpm-1.0.0 service-model-docker-e2sm_kpm-1.0.0: # @HELP build e2sm_kpm 1.0.0 plugin Docker image ./build/bin/build-deps e2sm_kpm ${E2T_MOD} docker build . -f build/plugins/Dockerfile \ @@ -131,7 +133,10 @@ service-model-docker-e2sm_kpm-1.0.0: # @HELP build e2sm_kpm 1.0.0 plugin Docker --build-arg PLUGIN_MAKE_VERSION="1.0.0" \ -t onosproject/service-model-docker-e2sm_kpm-1.0.0:${ONOS_E2_SM_VERSION} -PHONY: service-model-docker-e2sm_kpm_v2-1.0.0 +docker-push-service-model-docker-e2sm_kpm-1.0.0: # @HELP push e2sm_kpm 1.0.0 plugin Docker image + docker push onosproject/service-model-docker-e2sm_kpm-1.0.0:${ONOS_E2_SM_VERSION} + +PHONY: service-model-docker-e2sm_kpm_v2-1.0.0 docker-push-service-model-docker-e2sm_kpm_v2-1.0.0 service-model-docker-e2sm_kpm_v2-1.0.0: # @HELP build e2sm_kpm_v2 1.0.0 plugin Docker image ./build/bin/build-deps e2sm_kpm_v2 ${E2T_MOD} onosproject/service-model-docker-e2sm_kpm_v2-1.0.0:${ONOS_E2_SM_VERSION} docker build . -f build/plugins/Dockerfile \ @@ -139,7 +144,10 @@ service-model-docker-e2sm_kpm_v2-1.0.0: # @HELP build e2sm_kpm_v2 1.0.0 plugin D --build-arg PLUGIN_MAKE_VERSION="1.0.0" \ -t onosproject/service-model-docker-e2sm_kpm_v2-1.0.0:${ONOS_E2_SM_VERSION} -PHONY: service-model-docker-e2sm_kpm_v2_go-1.0.0 +docker-push-service-model-docker-e2sm_kpm_v2-1.0.0: # @HELP push e2sm_kpm_v2 1.0.0 plugin Docker image + docker push onosproject/service-model-docker-e2sm_kpm_v2-1.0.0:${ONOS_E2_SM_VERSION} + +PHONY: service-model-docker-e2sm_kpm_v2_go-1.0.0 docker-push-service-model-docker-e2sm_kpm_v2_go-1.0.0 service-model-docker-e2sm_kpm_v2_go-1.0.0: # @HELP build e2sm_kpm_v2 1.0.0 plugin Docker image ./build/bin/build-deps e2sm_kpm_v2_go ${E2T_MOD} onosproject/service-model-docker-e2sm_kpm_v2_go-1.0.0:${ONOS_E2_SM_VERSION} docker build . -f build/plugins/Dockerfile \ @@ -147,7 +155,10 @@ service-model-docker-e2sm_kpm_v2_go-1.0.0: # @HELP build e2sm_kpm_v2 1.0.0 plugi --build-arg PLUGIN_MAKE_VERSION="1.0.0" \ -t onosproject/service-model-docker-e2sm_kpm_v2_go-1.0.0:${ONOS_E2_SM_VERSION} -PHONY: service-model-docker-e2sm_rsm-1.0.0 +docker-push-service-model-docker-e2sm_kpm_v2_go-1.0.0: # @HELP push e2sm_kpm_v2 1.0.0 plugin Docker image + docker push onosproject/service-model-docker-e2sm_kpm_v2_go-1.0.0:${ONOS_E2_SM_VERSION} + +PHONY: service-model-docker-e2sm_rsm-1.0.0 docker-push-service-model-docker-e2sm_rsm-1.0.0 service-model-docker-e2sm_rsm-1.0.0: # @HELP build e2sm_kpm_v2 1.0.0 plugin Docker image ./build/bin/build-deps e2sm_rsm ${E2T_MOD} onosproject/service-model-docker-e2sm_rsm-1.0.0:${ONOS_E2_SM_VERSION} docker build . -f build/plugins/Dockerfile \ @@ -155,7 +166,10 @@ service-model-docker-e2sm_rsm-1.0.0: # @HELP build e2sm_kpm_v2 1.0.0 plugin Dock --build-arg PLUGIN_MAKE_VERSION="1.0.0" \ -t onosproject/service-model-docker-e2sm_rsm-1.0.0:${ONOS_E2_SM_VERSION} -PHONY: service-model-docker-e2sm_ni-1.0.0 +docker-push-service-model-docker-e2sm_rsm-1.0.0: # @HELP push e2sm_kpm_v2 1.0.0 plugin Docker image + docker push onosproject/service-model-docker-e2sm_rsm-1.0.0:${ONOS_E2_SM_VERSION} + +PHONY: service-model-docker-e2sm_ni-1.0.0 docker-push-service-model-docker-e2sm_ni-1.0.0 service-model-docker-e2sm_ni-1.0.0: # @HELP build e2sm_ni 1.0.0 plugin Docker image ./build/bin/build-deps e2sm_ni ${E2T_MOD} docker build . -f build/plugins/Dockerfile \ @@ -163,7 +177,10 @@ service-model-docker-e2sm_ni-1.0.0: # @HELP build e2sm_ni 1.0.0 plugin Docker im --build-arg PLUGIN_MAKE_VERSION="1.0.0" \ -t onosproject/service-model-docker-e2sm_ni-1.0.0:${ONOS_E2_SM_VERSION} -PHONY: service-model-docker-e2sm_rc_pre-1.0.0 +docker-push-service-model-docker-e2sm_ni-1.0.0: # @HELP push e2sm_ni 1.0.0 plugin Docker image + docker push onosproject/service-model-docker-e2sm_ni-1.0.0:${ONOS_E2_SM_VERSION} + +PHONY: service-model-docker-e2sm_rc_pre-1.0.0 docker-push-service-model-docker-e2sm_rc_pre-1.0.0 service-model-docker-e2sm_rc_pre-1.0.0: # @HELP build e2sm_rc_pre 1.0.0 plugin Docker image ./build/bin/build-deps e2sm_rc_pre ${E2T_MOD} docker build . -f build/plugins/Dockerfile \ @@ -171,6 +188,9 @@ service-model-docker-e2sm_rc_pre-1.0.0: # @HELP build e2sm_rc_pre 1.0.0 plugin D --build-arg PLUGIN_MAKE_VERSION="1.0.0" \ -t onosproject/service-model-docker-e2sm_rc_pre-1.0.0:${ONOS_E2_SM_VERSION} +docker-push-service-model-docker-e2sm_rc_pre-1.0.0: # @HELP push e2sm_rc_pre 1.0.0 plugin Docker image + docker push onosproject/service-model-docker-e2sm_rc_pre-1.0.0:${ONOS_E2_SM_VERSION} + PHONY: service-model-docker-e2sm_rc_pre_go-1.0.0 service-model-docker-e2sm_rc_pre_go-1.0.0: # @HELP build e2sm_rc_pre_go 1.0.0 plugin Docker image ./build/bin/build-deps e2sm_rc_pre_go ${E2T_MOD} onosproject/service-model-docker-e2sm_rc_pre_go-1.0.0:${ONOS_E2_SM_VERSION} @@ -179,6 +199,9 @@ service-model-docker-e2sm_rc_pre_go-1.0.0: # @HELP build e2sm_rc_pre_go 1.0.0 pl --build-arg PLUGIN_MAKE_VERSION="1.0.0" \ -t onosproject/service-model-docker-e2sm_rc_pre_go-1.0.0:${ONOS_E2_SM_VERSION} +docker-push-service-model-docker-e2sm_rc_pre_go-1.0.0: # @HELP push e2sm_rc_pre_go 1.0.0 plugin Docker image + docker push onosproject/service-model-docker-e2sm_rc_pre_go-1.0.0:${ONOS_E2_SM_VERSION} + PHONY: service-model-docker-e2sm_mho-1.0.0 service-model-docker-e2sm_mho-1.0.0: # @HELP build e2sm_mho 1.0.0 plugin Docker image ./build/bin/build-deps e2sm_mho ${E2T_MOD} @@ -187,8 +210,10 @@ service-model-docker-e2sm_mho-1.0.0: # @HELP build e2sm_mho 1.0.0 plugin Docker --build-arg PLUGIN_MAKE_VERSION="1.0.0" \ -t onosproject/service-model-docker-e2sm_mho-1.0.0:${ONOS_E2_SM_VERSION} +docker-push-service-model-docker-e2sm_mho-1.0.0: # @HELP push e2sm_mho 1.0.0 plugin Docker image + docker push onosproject/service-model-docker-e2sm_mho-1.0.0:${ONOS_E2_SM_VERSION} -PHONY: service-model-docker-e2sm_mho_go-1.0.0 +PHONY: service-model-docker-e2sm_mho_go-1.0.0 docker-push-service-model-docker-e2sm_mho_go-1.0.0 service-model-docker-e2sm_mho_go-1.0.0: # @HELP build e2sm_mho_go 1.0.0 plugin Docker image ./build/bin/build-deps e2sm_mho_go ${E2T_MOD} onosproject/service-model-docker-e2sm_mho_go-1.0.0:${ONOS_E2_SM_VERSION} docker build . -f build/plugins/Dockerfile \ @@ -196,7 +221,10 @@ service-model-docker-e2sm_mho_go-1.0.0: # @HELP build e2sm_mho_go 1.0.0 plugin D --build-arg PLUGIN_MAKE_VERSION="1.0.0" \ -t onosproject/service-model-docker-e2sm_mho_go-1.0.0:${ONOS_E2_SM_VERSION} -PHONY: service-model-docker-e2sm_rc-1.0.0 +docker-push-service-model-docker-e2sm_mho_go-1.0.0: # @HELP push e2sm_mho_go 1.0.0 plugin Docker image + docker push onosproject/service-model-docker-e2sm_mho_go-1.0.0:${ONOS_E2_SM_VERSION} + +PHONY: service-model-docker-e2sm_rc-1.0.0 docker-push-service-model-docker-e2sm_rc-1.0.0 service-model-docker-e2sm_rc-1.0.0: # @HELP build e2sm_rc_pre_go 1.0.0 plugin Docker image ./build/bin/build-deps e2sm_rc ${E2T_MOD} onosproject/service-model-docker-e2sm_rc-1.0.0:${ONOS_E2_SM_VERSION} docker build . -f build/plugins/Dockerfile \ @@ -204,42 +232,24 @@ service-model-docker-e2sm_rc-1.0.0: # @HELP build e2sm_rc_pre_go 1.0.0 plugin Do --build-arg PLUGIN_MAKE_VERSION="1.0.0" \ -t onosproject/service-model-docker-e2sm_rc-1.0.0:${ONOS_E2_SM_VERSION} -images: # @HELP build all Docker images -images: build service-model-docker-e2sm_kpm_v2_go-1.0.0 \ - service-model-docker-e2sm_rsm-1.0.0 \ - service-model-docker-e2sm_rc_pre_go-1.0.0 \ - service-model-docker-e2sm_mho_go-1.0.0 \ - service-model-docker-e2sm_rc-1.0.0 - - -kind: # @HELP build Docker images and add them to the currently configured kind cluster -kind: images - @if [ "`kind get clusters`" = '' ]; then echo "no kind cluster found" && exit 1; fi - kind load docker-image onosproject/service-model-docker-e2sm_kpm_v2_go-1.0.0:${ONOS_E2_SM_VERSION} - kind load docker-image onosproject/service-model-docker-e2sm_rsm-1.0.0:${ONOS_E2_SM_VERSION} - kind load docker-image onosproject/service-model-docker-e2sm_rc_pre_go-1.0.0:${ONOS_E2_SM_VERSION} - kind load docker-image onosproject/service-model-docker-e2sm_mho_go-1.0.0:${ONOS_E2_SM_VERSION} - kind load docker-image onosproject/service-model-docker-e2sm_rc-1.0.0:${ONOS_E2_SM_VERSION} - - - - -all: build images - -publish: # @HELP publish version on github and dockerhub - ./build/build-tools/publish-version servicemodels/e2sm_kpm_v2_go/${VERSION} onosproject/service-model-docker-e2sm_kpm_v2_go-1.0.0 - ./build/build-tools/publish-version servicemodels/e2sm_rc_pre_go/${VERSION} onosproject/service-model-docker-e2sm_rc_pre_go-1.0.0 - ./build/build-tools/publish-version servicemodels/e2sm_mho_go/${VERSION} onosproject/service-model-docker-e2sm_mho_go-1.0.0 - ./build/build-tools/publish-version servicemodels/e2sm_rsm/${VERSION} onosproject/service-model-docker-e2sm_rsm-1.0.0 - ./build/build-tools/publish-version servicemodels/e2sm_rc/${VERSION} onosproject/service-model-docker-e2sm_rc-1.0.0 +docker-push-service-model-docker-e2sm_rc-1.0.0: # @HELP push e2sm_rc_pre_go 1.0.0 plugin Docker image + docker push onosproject/service-model-docker-e2sm_rc-1.0.0:${ONOS_E2_SM_VERSION} +docker-push: # @HELP push all Docker images +docker-push: docker-push-service-model-docker-e2sm_kpm_v2_go-1.0.0 docker-push-service-model-docker-e2sm_rsm-1.0.0 docker-push-service-model-docker-e2sm_rc_pre_go-1.0.0 docker-push-service-model-docker-e2sm_mho_go-1.0.0 docker-push-service-model-docker-e2sm_rc-1.0.0 -jenkins-publish: # @HELP Jenkins calls this to publish artifacts - ./build/bin/push-images - ./build/build-tools/release-merge-commit +check-version: # @HELP check version is duplicated + ./build/bin/version_check.sh all -clean:: # @HELP remove all the build artifacts - rm -rf ./build/_output ./vendor ./cmd/onos-e2-sm/onos-e2-sm ./cmd/onos/onos - rm -fr servicemodels/*/vendor - go clean -testcache github.com/onosproject/onos-e2-sm/... +help: + @grep -E '^.*: *# *@HELP' $(MAKEFILE_LIST) \ + | sort \ + | awk ' \ + BEGIN {FS = ": *# *@HELP"}; \ + {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}; \ + ' +clean: # @HELP remove all the build artifacts + rm -rf ./build/_output ./build/_input ./vendor ./cmd/onos-e2-sm/onos-e2-sm ./cmd/onos/onos + rm -fr servicemodels/*/vendor servicemodels/*/build/_output + go clean github.com/onosproject/onos-e2-sm/... \ No newline at end of file diff --git a/build/bin/push-images b/build/bin/push-images deleted file mode 100755 index b3217f91..00000000 --- a/build/bin/push-images +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/bash - -# SPDX-FileCopyrightText: 2019-present Open Networking Foundation -# -# SPDX-License-Identifier: Apache-2.0 - -set -e - -echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USER" --password-stdin -make images -#docker push onosproject/service-model-docker-e2sm_kpm-1.0.0:latest -docker push onosproject/service-model-docker-e2sm_kpm_v2_go-1.0.0:latest -#docker push onosproject/service-model-docker-e2sm_ni-1.0.0:latest -docker push onosproject/service-model-docker-e2sm_rc_pre_go-1.0.0:latest -docker push onosproject/service-model-docker-e2sm_mho_go-1.0.0:latest -docker push onosproject/service-model-docker-e2sm_rsm-1.0.0:latest diff --git a/build/bin/version_check.sh b/build/bin/version_check.sh new file mode 100755 index 00000000..feabddbd --- /dev/null +++ b/build/bin/version_check.sh @@ -0,0 +1,93 @@ +#!/bin/bash +# SPDX-License-Identifier: Apache-2.0 +# Copyright 2024 Intel Corporation + +set +x + +# input should be all, is_valid_format, is_dev, and is_unique +INPUT=$1 + +function is_valid_format() { + # check if version format is matched to SemVer + VER_REGEX='^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)$' + if [[ ! $(cat VERSION | tr -d '\n' | sed s/-dev//) =~ $VER_REGEX ]] + then + return 1 + fi + return 0 +} + +function is_dev_version() { + # check if version has '-dev' + # if there is, no need to check version + if [[ $(cat VERSION | tr -d '\n' | tail -c 4) =~ "-dev" ]] + then + return 0 + fi + return 1 +} + +function is_unique_version() { + # check if the version is already tagged in GitHub repository + for t in $(git tag | cat) + do + if [[ $t == $(echo v$(cat VERSION | tr -d '\n')) ]] + then + return 1 + fi + done + return 0 +} + +case $INPUT in + all) + is_valid_format + f_valid=$? + if [[ $f_valid == 1 ]] + then + echo "ERROR: Version $(cat VERSION) is not in SemVer format" + exit 2 + fi + + is_dev_version + f_dev=$? + if [[ $f_dev == 0 ]] + then + echo "This is dev version" + exit 0 + fi + + is_unique_version + f_unique=$? + if [[ $f_unique == 1 ]] + then + echo "ERROR: duplicated tag $(cat VERSION)" + exit 2 + fi + ;; + + is_valid_format) + is_valid_format + ;; + + is_dev) + is_dev_version + f_dev=$? + if [[ $f_dev == 0 ]] + then + echo "true" + exit 0 + fi + echo "false" + ;; + + is_unique) + is_unique_version + ;; + + *) + echo -n "unknown input" + exit 2 + ;; + +esac