omni-network / omni

Monorepo for Omni node, contracts and other related tools
https://omni.network
GNU General Public License v3.0
81 stars 46 forks source link

ci(github): support arm in the official release #2007

Closed sideninja closed 5 days ago

sideninja commented 5 days ago

Add build variant for linux/arm platform.

The PR modifies the goreleaser config to support building for arm architecture. It also modifies the release-official action for halovisor to support building for the arm.

issue: #1984

Tested goreleaser build locally:

goreleaser release --snapshot --skip publish --clean

  • skipping announce, publish and validate...
  • cleaning distribution directory
  • loading environment variables
  • getting and validating git state
    • git state                                      commit=fabe4ac6fe1ceea6252d651b0d70697ca0fa6411 branch=gregor/multi-platform-release current_tag=v0.8.0 previous_tag=v0.7.0 dirty=false
    • pipe skipped                                   reason=disabled during snapshot mode
  • parsing tag
  • setting defaults
  • snapshotting
    • building snapshot...                           version=0.8.0-SNAPSHOT-fabe4ac
  • ensuring distribution directory
  • setting up metadata
  • writing release metadata
  • loading go mod information
  • build prerequisites
  • building binaries
    • building                                       binary=dist/halo_linux_amd64_v1/halo
    • building                                       binary=dist/relayer_linux_amd64_v1/relayer
    • building                                       binary=dist/relayer_darwin_amd64_v1/relayer
    • building                                       binary=dist/halo_linux_arm64/halo
    • building                                       binary=dist/halo_darwin_arm64/halo
    • building                                       binary=dist/halo_darwin_amd64_v1/halo
    • building                                       binary=dist/relayer_linux_arm64/relayer
    • building                                       binary=dist/relayer_darwin_arm64/relayer
    • building                                       binary=dist/monitor_linux_amd64_v1/monitor
    • building                                       binary=dist/monitor_linux_arm64/monitor
    • building                                       binary=dist/monitor_darwin_amd64_v1/monitor
    • building                                       binary=dist/monitor_darwin_arm64/monitor
    • building                                       binary=dist/omni_linux_amd64_v1/omni
    • building                                       binary=dist/omni_linux_arm64/omni
    • building                                       binary=dist/omni_darwin_amd64_v1/omni
    • building                                       binary=dist/omni_darwin_arm64/omni
    • building                                       binary=dist/anvilproxy_linux_amd64_v1/anvilproxy
    • building                                       binary=dist/anvilproxy_linux_arm64/anvilproxy
    • took: 38s
  • archives
    • creating                                       archive=dist/omni_Linux_arm64.tar.gz
    • creating                                       archive=dist/omni_Darwin_x86_64.tar.gz
    • creating                                       archive=dist/omni_Darwin_arm64.tar.gz
    • creating                                       archive=dist/omni_Linux_x86_64.tar.gz
    • took: 15s
  • calculating checksums
  • docker images

  • writing artifacts metadata
  • release succeeded after 53s
  • thanks for using goreleaser!
sideninja commented 5 days ago

@corverroos Follow up: should we modify the goreleaser to also include the halovisor and make it more consistent? why is halovisor part of the release action and not included in goreleaser config?

todo: need to validate the whole action against a fork.