From 56fbc3e6eb89792c16933557c0cc3d9b5e32444a Mon Sep 17 00:00:00 2001 From: Marlon Saglia Date: Mon, 19 Aug 2024 14:15:49 +0200 Subject: [PATCH] feat(ci): migrate publish-cli workflow to Github Actions --- .github/workflows/publish-cli.yml | 92 +++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 .github/workflows/publish-cli.yml diff --git a/.github/workflows/publish-cli.yml b/.github/workflows/publish-cli.yml new file mode 100644 index 000000000000..f44c85f2e17e --- /dev/null +++ b/.github/workflows/publish-cli.yml @@ -0,0 +1,92 @@ +name: Publish CLI + +on: + push: + tags: + - v* + pull_request: + branches: + - master + +defaults: + run: + # Specify to ensure "pipefail and errexit" are set. + # Ref: https://docs.github.com/en/actions/writing-workflows/workflow-syntax-for-github-actions#defaultsrunshell + shell: bash + # This workflow only interacts with the client/go directory, so we can set the working directory here. + working-directory: client/go + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-go@v5 + + - name: Define Build Version + id: meta + run: | + if [[ "${{ github.event_name }}" == "push" && "${{ startswith(github.ref, 'refs/tags/v') }}" == "true" ]]; then + BUILD_VERSION="${{ github.ref_name }}" + else + BUILD_VERSION="0.0.0-dev_${{ github.run_number }}" + fi + + echo "version=${BUILD_VERSION}" >> $GITHUB_OUTPUT + + - name: build + env: + VERSION: ${{ steps.meta.outputs.version }} + run: | + make clean dist + + - name: test + run: | + make test + + - uses: actions/upload-artifact@v + with: + name: build + path: client/go/dist + retention-days: 1 + + publish-cli-release: + runs-on: macos-latest + + if: github.event_name == 'push' && startswith(github.ref, 'refs/tags/v') + needs: + - build + + container: + image: homebrew/brew:latest + + env: + HOMEBREW_GITHUB_API_TOKEN: ${{ secrets.HOMEBREW_GITHUB_API_TOKEN }} + GH_TOKEN: ${{ github.token }} + + steps: + - uses: actions/checkout@v4 + + - name: install-dependencies + env: + HOMEBREW_NO_ANALYTICS: 1 + HOMEBREW_NO_AUTO_UPDATE: 1 + HOMEBREW_NO_INSTALL_CLEANUP: 1 + run: | + brew install --quiet gh zip go + + # - name: Publish to GitHub Releases + # if: github.event_name == 'push' && github.ref == 'refs/tags/v*' + # run: | + # make -C client/go clean dist-github + + # - name: Publish to Homebrew + # if: github.event_name == 'push' && github.ref == 'refs/tags/v*' + # run: | + # make -C client/go clean dist-homebrew + + # - name: Install via Homebrew + # if: github.event_name == 'push' && github.ref == 'refs/tags/v*' + # run: | + # make -C client/go install-brew