diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 6f49aab74..a797c9425 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -6,7 +6,6 @@ on: - 'v*' branches: - main - - feature/add_docs_api_trigger pull_request: env: @@ -18,199 +17,199 @@ concurrency: 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 }}" }' + 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/') + if: startsWith(github.ref, 'refs/tags/') steps: - name: Trigger API pages generation and docs build uses: benc-uk/workflow-dispatch@v1