name: Release on: push: tags: - 'v*' branches: - main - feature/add_docs_api_trigger pull_request: env: SIGN_PIPE_VER: "v0.0.8" GORELEASER_VER: "v1.14.1" concurrency: group: ${{ github.workflow }}-${{ github.ref }}-${{ github.head_ref || github.actor_id }} cancel-in-progress: true 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: Set up Go # uses: actions/setup-go@v2 # with: # go-version: "1.20" # - # 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: check git status # run: git --no-pager diff --exit-code # - # 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: netbirdio # password: ${{ secrets.DOCKER_TOKEN }} # - name: Install OS build dependencies # run: sudo apt update && sudo apt install -y -q gcc-arm-linux-gnueabihf gcc-aarch64-linux-gnu # # - name: Install rsrc # run: go install github.com/akavel/rsrc@v0.10.2 # - name: Generate windows rsrc amd64 # run: rsrc -arch amd64 -ico client/ui/netbird.ico -manifest client/manifest.xml -o client/resources_windows_amd64.syso # - name: Generate windows rsrc arm64 # run: rsrc -arch arm64 -ico client/ui/netbird.ico -manifest client/manifest.xml -o client/resources_windows_arm64.syso # - name: Generate windows rsrc arm # run: rsrc -arch arm -ico client/ui/netbird.ico -manifest client/manifest.xml -o client/resources_windows_arm.syso # - name: Generate windows rsrc 386 # run: rsrc -arch 386 -ico client/ui/netbird.ico -manifest client/manifest.xml -o client/resources_windows_386.syso # - # name: Run GoReleaser # uses: goreleaser/goreleaser-action@v2 # with: # version: ${{ env.GORELEASER_VER }} # 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: upload non tags for debug purposes # uses: actions/upload-artifact@v2 # with: # name: release # path: dist/ # retention-days: 3 # # release_ui: # runs-on: ubuntu-latest # steps: # - name: Checkout # uses: actions/checkout@v2 # with: # fetch-depth: 0 # It is required for GoReleaser to work properly # # - name: Set up Go # uses: actions/setup-go@v2 # with: # go-version: "1.20" # - name: Cache Go modules # uses: actions/cache@v1 # with: # path: ~/go/pkg/mod # key: ${{ runner.os }}-ui-go-${{ hashFiles('**/go.sum') }} # restore-keys: | # ${{ runner.os }}-ui-go- # # - name: Install modules # run: go mod tidy # # - name: check git status # run: git --no-pager diff --exit-code # # - name: Install dependencies # run: sudo apt update && sudo apt install -y -q libgtk-3-dev libayatana-appindicator3-dev libgl1-mesa-dev xorg-dev gcc-mingw-w64-x86-64 # - name: Install rsrc # run: go install github.com/akavel/rsrc@v0.10.2 # - name: Generate windows rsrc # run: rsrc -arch amd64 -ico client/ui/netbird.ico -manifest client/ui/manifest.xml -o client/ui/resources_windows_amd64.syso # - name: Run GoReleaser # uses: goreleaser/goreleaser-action@v2 # with: # version: ${{ env.GORELEASER_VER }} # args: release --config .goreleaser_ui.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: upload non tags for debug purposes # uses: actions/upload-artifact@v2 # with: # name: release-ui # path: dist/ # retention-days: 3 # # release_ui_darwin: # runs-on: macos-11 # steps: # - # name: Checkout # uses: actions/checkout@v2 # with: # fetch-depth: 0 # It is required for GoReleaser to work properly # - # name: Set up Go # uses: actions/setup-go@v2 # with: # go-version: "1.20" # - # name: Cache Go modules # uses: actions/cache@v1 # with: # path: ~/go/pkg/mod # key: ${{ runner.os }}-ui-go-${{ hashFiles('**/go.sum') }} # restore-keys: | # ${{ runner.os }}-ui-go- # - # name: Install modules # run: go mod tidy # - # name: Run GoReleaser # id: goreleaser # uses: goreleaser/goreleaser-action@v2 # with: # version: ${{ env.GORELEASER_VER }} # args: release --config .goreleaser_ui_darwin.yaml --rm-dist # env: # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # - # name: upload non tags for debug purposes # uses: actions/upload-artifact@v2 # with: # name: release-ui-darwin # path: dist/ # retention-days: 3 # # trigger_windows_signer: # runs-on: ubuntu-latest # needs: [release,release_ui] # if: startsWith(github.ref, 'refs/tags/') # steps: # - name: Trigger Windows binaries sign pipeline # uses: benc-uk/workflow-dispatch@v1 # with: # workflow: Sign windows bin and installer # repo: netbirdio/sign-pipelines # ref: ${{ env.SIGN_PIPE_VER }} # token: ${{ secrets.SIGN_GITHUB_TOKEN }} # inputs: '{ "tag": "${{ github.ref }}" }' # # trigger_darwin_signer: # runs-on: ubuntu-latest # needs: [release,release_ui_darwin] # if: startsWith(github.ref, 'refs/tags/') # steps: # - name: Trigger Darwin App binaries sign pipeline # uses: benc-uk/workflow-dispatch@v1 # with: # workflow: Sign darwin ui app with dispatch # repo: netbirdio/sign-pipelines # ref: ${{ env.SIGN_PIPE_VER }} # token: ${{ secrets.SIGN_GITHUB_TOKEN }} # inputs: '{ "tag": "${{ github.ref }}" }' trigger_docs_build: runs-on: ubuntu-latest # if: startsWith(github.ref, 'refs/tags/') steps: - name: Trigger API pages generation and docs build uses: benc-uk/workflow-dispatch@v1 with: workflow: docs site build and push repo: netbirdio/docs token: ${{ secrets.SIGN_GITHUB_TOKEN }} inputs: '{ "generateAPI": true }'