Build and release go binaries for Mac and Linux in GitHub Actions using 2 approaches

This page summarizes the projects mentioned and recommended in the original post on dev.to

Our great sponsors
  • SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • awsu

    Enhanced account switching for AWS, supports Yubikey as MFA source

  • View on GitHub

  • homebrew-taps

    Brew support for various kreuzwerker tools

  • Production-ready Mac releases can be installed e.g.through brew via kreuzwerker/homebrew-taps:

  • SurveyJS

    Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.

    SurveyJS logo
  • goreleaser-action

    GitHub Action for GoReleaser

  • provide a suitable config for goreleaser and use it for release. Fortunately, there is already a GitHub action for this tool 🚀

  • docker-gh-action-test

    Running docker in GitHub Actions

  • As GitHub Actions allows us to use macos-latest runners, install Docker automatically as it does not exist as for example, for the ubuntu-latest or windows-latest runners. Therefore we created PoC repository docker-gh-action-test to verify this and provide a stable installation for macos.

  • Travis CI.com

    Free continuous integration platform for GitHub projects.

  • This tool is written in Golang and still used travis-ci as CI. Furthermore, some parts of the release process were still manually, such as uploading the assets to a GitHub release and generating the release notes. We wanted to have this automated.

  • for-mac

    Bug reports for Docker Desktop for Mac

  • name: goreleaser on: push: tags: - '*' jobs: binaries: runs-on: macos-11 steps: - name: Checkout uses: actions/checkout@v2 with: fetch-depth: 0 - name: Set up Go uses: actions/setup-go@v2 with: go-version: 1.17 - name: Updating and upgrading brew run: | ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" brew --version - name: Install and start docker # https://github.com/docker/for-mac/issues/2359#issuecomment-943131345 run: | brew install --cask docker sudo /Applications/Docker.app/Contents/MacOS/Docker --unattended --install-privileged-components open -a /Applications/Docker.app --args --unattended --accept-license echo "Waiting for docker to be up" while ! /Applications/Docker.app/Contents/Resources/bin/docker info &>/dev/null; do echo -n "."; sleep 1; done - name: Build linux binary run: | make build/awsu-linux-amd64 # as it is the format goreleaser expects cp build/awsu-linux-amd64 build/awsu_linux_amd64 - name: Run GoReleaser uses: goreleaser/goreleaser-action@v2 with: distribution: goreleaser-pro version: latest args: release --rm-dist env: GORELEASER_KEY: ${{ secrets.GORELEASER_KEY }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GORELEASER_TOKEN: ${{ secrets.GORELEASER_TOKEN }}

  • Dev_Interview_Prep_App

    This is an Open Sourced Programming Quiz Project to help people practice for interviews. We are redesigning the application for use with all languages. Open for help!

  • We started by defining our goals for the hacktoberfest session:

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • upload-artifact

  • The actions used upload-artifact, download-artifact, goreleaser-action

  • goreleaser

    Deliver Go binaries as fast and easily as possible

  • provide a suitable config for goreleaser and use it for release. Fortunately, there is already a GitHub action for this tool 🚀

  • download-artifact

  • The actions used upload-artifact, download-artifact, goreleaser-action

  • HomeBrew

    🍺 The missing package manager for macOS (or Linux)

  • generate a homebrew formula pointing to a new release and

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts