name: Go on: push: branches: [ "main" ] pull_request: branches: [ "main" ] env: GO_VERSION: '1.22' jobs: build_linux_x86_64_debug: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Set up Go uses: actions/setup-go@v4 with: go-version: ${{ env.GO_VERSION }} - name: Write version run: echo "$(git rev-parse --short HEAD)" > ./cli/cmd/version.txt - name: Install libfido2-dev run: sudo apt-get install -y libfido2-dev - name: Build Debug run: go build -tags debuglogging -o goldwarden_linux_x86_64_debug -v . - uses: actions/upload-artifact@v3 with: name: goldwarden_linux_x86_64_debug path: ./goldwarden_linux_x86_64_debug build_linux_x86_64: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Set up Go uses: actions/setup-go@v4 with: go-version: ${{ env.GO_VERSION }} - name: Write version run: echo "$(git rev-parse --short HEAD)" > ./cli/cmd/version.txt - name: Install libfido2-dev run: sudo apt-get install -y libfido2-dev - name: Build run: go build -o goldwarden_linux_x86_64 -v . - uses: actions/upload-artifact@v3 with: name: goldwarden_linux_x86_64 path: ./goldwarden_linux_x86_64 build_linux_arm64: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Set up Go uses: actions/setup-go@v4 with: go-version: ${{ env.GO_VERSION }} - name: Write version run: echo "$(git rev-parse --short HEAD)" > ./cli/cmd/version.txt - name: Install libfido2-dev run: sudo apt-get install -y libfido2-dev - name: Build run: GOARCH=arm64 go build -tags nofido2 -o goldwarden_linux_arm64 -v . - uses: actions/upload-artifact@v3 with: name: goldwarden_linux_arm64 path: ./goldwarden_linux_arm64 build_linux_x86: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Set up Go uses: actions/setup-go@v4 with: go-version: ${{ env.GO_VERSION }} - name: Write version run: echo "$(git rev-parse --short HEAD)" > ./cli/cmd/version.txt - name: Build run: GOARCH=386 go build -tags nofido2 -o goldwarden_linux_x86 -v . - uses: actions/upload-artifact@v3 with: name: goldwarden_linux_x86 path: ./goldwarden_linux_x86 build_macos_x86_64: runs-on: macos-13 steps: - name: Checkout uses: actions/checkout@v1 - name: Set up Go uses: actions/setup-go@v4 with: go-version: ${{ env.GO_VERSION }} - name: Write version run: echo "$(git rev-parse --short HEAD)" > ./cli/cmd/version.txt - name: Set up Homebrew id: set-up-homebrew uses: Homebrew/actions/setup-homebrew@master - name: Fido2 run: brew install libfido2 - name: Build run: go build -o "goldwarden_macos_x86_64" -v . - uses: actions/upload-artifact@v3 with: name: goldwarden-macos_x86_64 path: ./goldwarden_macos_x86_64 build_macos_aarch64: runs-on: macos-14 steps: - name: Checkout uses: actions/checkout@v1 - name: Set up Go uses: actions/setup-go@v4 with: go-version: ${{ env.GO_VERSION }} - name: Write version run: echo "$(git rev-parse --short HEAD)" > ./cli/cmd/version.txt - name: Set up Homebrew id: set-up-homebrew uses: Homebrew/actions/setup-homebrew@master - name: Fido2 run: brew install libfido2 - name: Build run: go build -o "goldwarden_macos_aarch64" -v . - uses: actions/upload-artifact@v3 with: name: goldwarden-macos_aarch64 path: ./goldwarden_macos_aarch64 build_windows_x86_64: runs-on: windows-latest steps: - name: Checkout uses: actions/checkout@v1 - name: Set up Go uses: actions/setup-go@v4 with: go-version: ${{ env.GO_VERSION }} - name: Write version run: echo "$(git rev-parse --short HEAD)" > ./cli/cmd/version.txt - uses: MinoruSekine/setup-scoop@v2 - name: Fido2 run: | scoop bucket add keys.pub https://github.com/keys-pub/scoop-bucket scoop install libfido2 - name: Build run: go build -o "goldwarden_windows_x86_64.exe" -v . - uses: actions/upload-artifact@v3 with: name: goldwarden-windows_x86_64.exe path: ./goldwarden_windows_x86_64.exe build_windows_aarch64: runs-on: windows-latest steps: - name: Checkout uses: actions/checkout@v1 - name: Set up Go uses: actions/setup-go@v4 with: go-version: ${{ env.GO_VERSION }} - name: Write version run: echo "$(git rev-parse --short HEAD)" > ./cli/cmd/version.txt - name: Build run: set GOARCH=arm64 && go build -tags nofido2 -o "goldwarden_windows_aarch64.exe" -v . - uses: actions/upload-artifact@v3 with: name: goldwarden-windows_aarch64.exe path: ./goldwarden_windows_aarch64.exe