diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a98c89823..5129efbad 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -9,78 +9,78 @@ on: pull_request: jobs: - release: - runs-on: ubuntu-latest - steps: - - - name: Checkout - uses: actions/checkout@v2 - with: - fetch-depth: 0 # It is required for GoReleaser to work properly - - - name: Generate syso with DLL - run: bash -x wireguard_nt.sh - working-directory: client - - - name: Set up Go - uses: actions/setup-go@v2 - with: - go-version: 1.18 - - - name: Cache Go modules - uses: actions/cache@v1 - with: - path: ~/go/pkg/mod - key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} - restore-keys: | - ${{ runner.os }}-go- - - - name: Install modules - run: go mod tidy - - - name: Set up QEMU - uses: docker/setup-qemu-action@v1 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 - - - name: Login to Docker hub - if: github.event_name != 'pull_request' - uses: docker/login-action@v1 - with: - username: ${{ secrets.DOCKER_USER }} - password: ${{ secrets.DOCKER_TOKEN }} - - name: Install dependencies - run: sudo apt update && sudo apt install -y -q libgtk-3-dev libappindicator3-dev libayatana-appindicator3-dev libgl1-mesa-dev xorg-dev gcc-mingw-w64-x86-64 - - - name: Run GoReleaser - uses: goreleaser/goreleaser-action@v2 - with: - version: v1.6.3 - args: release --rm-dist - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - HOMEBREW_TAP_GITHUB_TOKEN: ${{ secrets.HOMEBREW_TAP_GITHUB_TOKEN }} - UPLOAD_DEBIAN_SECRET: ${{ secrets.PKG_UPLOAD_SECRET }} - UPLOAD_YUM_SECRET: ${{ secrets.PKG_UPLOAD_SECRET }} - - - - name: Trigger Windows binaries sign pipeline - uses: benc-uk/workflow-dispatch@v1 - if: startsWith(github.ref, 'refs/tags/') - with: - workflow: Sign windows bin and installer - repo: wiretrustee/windows-sign-pipeline - ref: v0.0.2 - token: ${{ secrets.SIGN_GITHUB_TOKEN }} - inputs: '{ "tag": "${{ github.ref }}" }' - - - name: upload non tags for debug purposes - uses: actions/upload-artifact@v2 - with: - name: build - path: dist/ - retention-days: 3 +# release: +# runs-on: ubuntu-latest +# steps: +# - +# name: Checkout +# uses: actions/checkout@v2 +# with: +# fetch-depth: 0 # It is required for GoReleaser to work properly +# +# - name: Generate syso with DLL +# run: bash -x wireguard_nt.sh +# working-directory: client +# - +# name: Set up Go +# uses: actions/setup-go@v2 +# with: +# go-version: 1.18 +# - +# name: Cache Go modules +# uses: actions/cache@v1 +# with: +# path: ~/go/pkg/mod +# key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} +# restore-keys: | +# ${{ runner.os }}-go- +# - +# name: Install modules +# run: go mod tidy +# - +# name: Set up QEMU +# uses: docker/setup-qemu-action@v1 +# - +# name: Set up Docker Buildx +# uses: docker/setup-buildx-action@v1 +# - +# name: Login to Docker hub +# if: github.event_name != 'pull_request' +# uses: docker/login-action@v1 +# with: +# username: ${{ secrets.DOCKER_USER }} +# password: ${{ secrets.DOCKER_TOKEN }} +# - name: Install dependencies +# run: sudo apt update && sudo apt install -y -q libgtk-3-dev libappindicator3-dev libayatana-appindicator3-dev libgl1-mesa-dev xorg-dev gcc-mingw-w64-x86-64 +# - +# name: Run GoReleaser +# uses: goreleaser/goreleaser-action@v2 +# with: +# version: v1.6.3 +# args: release --rm-dist +# env: +# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} +# HOMEBREW_TAP_GITHUB_TOKEN: ${{ secrets.HOMEBREW_TAP_GITHUB_TOKEN }} +# UPLOAD_DEBIAN_SECRET: ${{ secrets.PKG_UPLOAD_SECRET }} +# UPLOAD_YUM_SECRET: ${{ secrets.PKG_UPLOAD_SECRET }} +# +# - +# name: Trigger Windows binaries sign pipeline +# uses: benc-uk/workflow-dispatch@v1 +# if: startsWith(github.ref, 'refs/tags/') +# with: +# workflow: Sign windows bin and installer +# repo: wiretrustee/windows-sign-pipeline +# ref: v0.0.2 +# token: ${{ secrets.SIGN_GITHUB_TOKEN }} +# inputs: '{ "tag": "${{ github.ref }}" }' +# - +# name: upload non tags for debug purposes +# uses: actions/upload-artifact@v2 +# with: +# name: build +# path: dist/ +# retention-days: 3 release_ui: runs-on: macos-latest @@ -108,15 +108,45 @@ jobs: run: go mod tidy - name: Run GoReleaser + id: goreleaser uses: goreleaser/goreleaser-action@v2 with: version: v1.6.3 args: release --config .goreleaser_ui_darwin.yaml --rm-dist env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - HOMEBREW_TAP_GITHUB_TOKEN: ${{ secrets.HOMEBREW_TAP_GITHUB_TOKEN }} - UPLOAD_DEBIAN_SECRET: ${{ secrets.PKG_UPLOAD_SECRET }} - UPLOAD_YUM_SECRET: ${{ secrets.PKG_UPLOAD_SECRET }} + - + name: Checkout homebrew + uses: actions/checkout@v2 + with: + repository: mlsmaycon/homebrew-client + fetch-depth: 0 # It is required for GoReleaser to work properly + path: 'template' + clean: false + ref: main + + - run: rm -fr template/.git + + - run: brew install gomplate + - run: | + echo ${{ steps.goreleaser.outputs.metadata}} || true + echo ${{ steps.goreleaser.outputs.Metadata}} || true + export PROJECT=netbird-ui + export AMD=$(ls -1 dist/${PROJECT}*amd64.zip) + export ARM=$(ls -1 dist/${PROJECT}*amd64.zip) + export VERSION=$(echo $AMD|egrep -o "${PROJECT}.+zip"|sed -E 's/.+app_(.+)_darwin_amd64.zip/\1/') + gomplate -f client/ui/netbird-ui.rb.tmpl -o template/netbird-ui.rb + + - name: Pushes to another repository + uses: cpina/github-action-push-to-another-repository@main + env: + API_TOKEN_GITHUB: ${{ secrets.HOMEBREW_TAP_GITHUB_TOKEN }} + with: + source-directory: 'template' + destination-github-username: 'mlsmaycon' + destination-repository-name: 'homebrew-client' + user-email: ci@netbird.io + target-branch: main - name: upload non tags for debug purposes uses: actions/upload-artifact@v2 diff --git a/client/ui/Info.plist b/client/ui/Info.plist new file mode 100644 index 000000000..8f515c889 --- /dev/null +++ b/client/ui/Info.plist @@ -0,0 +1,10 @@ + + + + + CFBundleExecutable + netbird-ui + CFBundleIconFile + Netbird + + diff --git a/client/ui/Netbird.icns b/client/ui/Netbird.icns new file mode 100644 index 000000000..59615c193 Binary files /dev/null and b/client/ui/Netbird.icns differ diff --git a/client/ui/netbird-ui.rb.tmpl b/client/ui/netbird-ui.rb.tmpl new file mode 100644 index 000000000..2438439f6 --- /dev/null +++ b/client/ui/netbird-ui.rb.tmpl @@ -0,0 +1,20 @@ +{{ $projectName := env.Getenv "PROJECT" }}{{ $amdFilePath := env.Getenv "AMD" }}{{ $armFilePath := env.Getenv "ARM" }} +{{ $amdFile := filepath.Base $amdFilePath }}{{ $armFile := filepath.Base $armFilePath }}{{ $amdFileBytes := file.Read $amdFilePath }} +{{ $armFileBytes := file.Read $armFilePath }}# Netbird's UI Client Cask Formula +cask "{{ $projectName }}" do + version "{{ env.Getenv "VERSION" }}" + + if Hardware::CPU.intel? + url "file:////Users/maycon/projects/mls-netbird/dist/{{ $amdFile }}" + sha256 "{{ crypto.SHA256 $amdFileBytes }}" + else + url "file:////Users/maycon/projects/mls-netbird/dist/{{ $armFile }}" + sha256 "{{ crypto.SHA256 $armFileBytes }}" + end + + name "Netbird UI" + desc "Netbird UI Client" + homepage "https://www.netbird.io/" + + app "#{version}", target: "Netbird UI.app" +end \ No newline at end of file