Generate app zip files and homebrew file

This commit is contained in:
mlsmaycon
2022-05-17 12:07:44 +02:00
parent 77e58295e7
commit 3bb18167d8
4 changed files with 135 additions and 75 deletions
+105 -75
View File
@@ -9,78 +9,78 @@ on:
pull_request: pull_request:
jobs: jobs:
release: # release:
runs-on: ubuntu-latest # runs-on: ubuntu-latest
steps: # steps:
- # -
name: Checkout # name: Checkout
uses: actions/checkout@v2 # uses: actions/checkout@v2
with: # with:
fetch-depth: 0 # It is required for GoReleaser to work properly # fetch-depth: 0 # It is required for GoReleaser to work properly
#
- name: Generate syso with DLL # - name: Generate syso with DLL
run: bash -x wireguard_nt.sh # run: bash -x wireguard_nt.sh
working-directory: client # working-directory: client
- # -
name: Set up Go # name: Set up Go
uses: actions/setup-go@v2 # uses: actions/setup-go@v2
with: # with:
go-version: 1.18 # go-version: 1.18
- # -
name: Cache Go modules # name: Cache Go modules
uses: actions/cache@v1 # uses: actions/cache@v1
with: # with:
path: ~/go/pkg/mod # path: ~/go/pkg/mod
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} # key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
restore-keys: | # restore-keys: |
${{ runner.os }}-go- # ${{ runner.os }}-go-
- # -
name: Install modules # name: Install modules
run: go mod tidy # run: go mod tidy
- # -
name: Set up QEMU # name: Set up QEMU
uses: docker/setup-qemu-action@v1 # uses: docker/setup-qemu-action@v1
- # -
name: Set up Docker Buildx # name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1 # uses: docker/setup-buildx-action@v1
- # -
name: Login to Docker hub # name: Login to Docker hub
if: github.event_name != 'pull_request' # if: github.event_name != 'pull_request'
uses: docker/login-action@v1 # uses: docker/login-action@v1
with: # with:
username: ${{ secrets.DOCKER_USER }} # username: ${{ secrets.DOCKER_USER }}
password: ${{ secrets.DOCKER_TOKEN }} # password: ${{ secrets.DOCKER_TOKEN }}
- name: Install dependencies # - 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 # 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 # name: Run GoReleaser
uses: goreleaser/goreleaser-action@v2 # uses: goreleaser/goreleaser-action@v2
with: # with:
version: v1.6.3 # version: v1.6.3
args: release --rm-dist # args: release --rm-dist
env: # env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
HOMEBREW_TAP_GITHUB_TOKEN: ${{ secrets.HOMEBREW_TAP_GITHUB_TOKEN }} # HOMEBREW_TAP_GITHUB_TOKEN: ${{ secrets.HOMEBREW_TAP_GITHUB_TOKEN }}
UPLOAD_DEBIAN_SECRET: ${{ secrets.PKG_UPLOAD_SECRET }} # UPLOAD_DEBIAN_SECRET: ${{ secrets.PKG_UPLOAD_SECRET }}
UPLOAD_YUM_SECRET: ${{ secrets.PKG_UPLOAD_SECRET }} # UPLOAD_YUM_SECRET: ${{ secrets.PKG_UPLOAD_SECRET }}
#
- # -
name: Trigger Windows binaries sign pipeline # name: Trigger Windows binaries sign pipeline
uses: benc-uk/workflow-dispatch@v1 # uses: benc-uk/workflow-dispatch@v1
if: startsWith(github.ref, 'refs/tags/') # if: startsWith(github.ref, 'refs/tags/')
with: # with:
workflow: Sign windows bin and installer # workflow: Sign windows bin and installer
repo: wiretrustee/windows-sign-pipeline # repo: wiretrustee/windows-sign-pipeline
ref: v0.0.2 # ref: v0.0.2
token: ${{ secrets.SIGN_GITHUB_TOKEN }} # token: ${{ secrets.SIGN_GITHUB_TOKEN }}
inputs: '{ "tag": "${{ github.ref }}" }' # inputs: '{ "tag": "${{ github.ref }}" }'
- # -
name: upload non tags for debug purposes # name: upload non tags for debug purposes
uses: actions/upload-artifact@v2 # uses: actions/upload-artifact@v2
with: # with:
name: build # name: build
path: dist/ # path: dist/
retention-days: 3 # retention-days: 3
release_ui: release_ui:
runs-on: macos-latest runs-on: macos-latest
@@ -108,15 +108,45 @@ jobs:
run: go mod tidy run: go mod tidy
- -
name: Run GoReleaser name: Run GoReleaser
id: goreleaser
uses: goreleaser/goreleaser-action@v2 uses: goreleaser/goreleaser-action@v2
with: with:
version: v1.6.3 version: v1.6.3
args: release --config .goreleaser_ui_darwin.yaml --rm-dist args: release --config .goreleaser_ui_darwin.yaml --rm-dist
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
HOMEBREW_TAP_GITHUB_TOKEN: ${{ secrets.HOMEBREW_TAP_GITHUB_TOKEN }} -
UPLOAD_DEBIAN_SECRET: ${{ secrets.PKG_UPLOAD_SECRET }} name: Checkout homebrew
UPLOAD_YUM_SECRET: ${{ secrets.PKG_UPLOAD_SECRET }} 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 name: upload non tags for debug purposes
uses: actions/upload-artifact@v2 uses: actions/upload-artifact@v2
+10
View File
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleExecutable</key>
<string>netbird-ui</string>
<key>CFBundleIconFile</key>
<string>Netbird</string>
</dict>
</plist>
Binary file not shown.
+20
View File
@@ -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