| # |
| # 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: Dubbo ctl Release |
| |
| on: |
| release: |
| types: [create, published] |
| |
| jobs: |
| release: |
| permissions: |
| contents: write |
| name: Release Dubbo |
| runs-on: ubuntu-latest |
| if: startsWith(github.event.release.tag_name, 'dubbo/') |
| strategy: |
| matrix: |
| goos: [linux, darwin, windows] |
| goarch: [386, amd64, arm64] |
| exclude: |
| - goos: darwin |
| goarch: 386 |
| |
| steps: |
| - uses: actions/checkout@v4 |
| - name: Set up Go 1.x |
| uses: actions/setup-go@v4 |
| with: |
| go-version-file: go.mod |
| |
| - name: Download dependencies |
| run: | |
| go mod download |
| |
| - name: Prepare build directory |
| run: | |
| mkdir -p build/ |
| cp README.md build/ |
| cp LICENSE build/ |
| |
| - name: Build |
| env: |
| GOOS: ${{ matrix.goos }} |
| GOARCH: ${{ matrix.goarch }} |
| run: | |
| make build-dubboctl |
| make build-dubbocp |
| cp -r conf build/conf |
| mv bin/dubboctl build/dubboctl |
| mv bin/dubbo-cp build/dubbo-cp |
| - name: Rename on windows |
| if: matrix.goos == 'windows' |
| run: | |
| mv build/dubboctl build/dubboctl.exe |
| mv build/dubbo-cp build/dubbo-cp.exe |
| |
| - name: Create package |
| id: package |
| run: | |
| PACKAGE_NAME=dubbo-${GITHUB_REF#refs/tags/dubbo/}-${{ matrix.goos }}-${{ matrix.goarch }}.tar.gz |
| tar -czvf $PACKAGE_NAME -C build . |
| echo "name=${PACKAGE_NAME}" >> $GITHUB_OUTPUT |
| |
| - name: Upload asset |
| uses: actions/upload-release-asset@v1 |
| env: |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
| with: |
| upload_url: ${{ github.event.release.upload_url }} |
| asset_path: ./${{ steps.package.outputs.name }} |
| asset_name: ${{ steps.package.outputs.name }} |
| asset_content_type: application/gzip |