2021-11-19 12:42:53 +00:00
name : Build
on :
pull_request :
branches :
- master
types : [ opened, synchronize]
paths-ignore :
- 'scripts/**'
- '**/*.md'
workflow_dispatch :
2021-12-03 09:22:48 +00:00
inputs :
ref :
description: 'Ref to build CLI for Ubuntu and Windows Server Core [default: latest master; examples : v0.92.0, 0a4ff9d3e4a9ab432fd5812eb18c98e03b5a7432]'
required : false
default : ''
2021-11-19 12:42:53 +00:00
env :
GO111MODULE : "on"
jobs :
2022-07-15 10:55:18 +00:00
build_cli :
name : Build CLI
runs-on : ${{matrix.os}}
strategy :
matrix :
2022-07-15 10:56:08 +00:00
os : [ ubuntu-20.04, windows-2022, macos-12]
arch : [ amd64, arm64]
exclude :
- os : windows-2022
arch : 'arm64'
2021-11-19 12:42:53 +00:00
steps :
- uses : actions/checkout@v2
with :
2021-12-03 09:22:48 +00:00
ref : ${{ github.event.inputs.ref }}
# Allows to fetch all history for all branches and tags. Need this for proper versioning.
2021-11-19 12:42:53 +00:00
fetch-depth : 0
- name : Set up Go
uses : actions/setup-go@v2
with :
2022-02-22 16:37:27 +00:00
go-version : 1.18
2021-11-19 12:42:53 +00:00
- name : Restore Go modules from cache
uses : actions/cache@v2
with :
path : /home/runner/go/pkg/mod
key : deps-${{ hashFiles('go.sum') }}
- name : Update Go modules
run : go mod download -json
- name : Build CLI
run : make build
2022-07-15 10:56:08 +00:00
env :
GOARCH : ${{ matrix.arch }}
2021-11-19 12:42:53 +00:00
2021-12-03 08:41:15 +00:00
- name : Upload artifact
uses : actions/upload-artifact@v2
with :
2022-07-15 10:56:08 +00:00
name : neo-go-${{ matrix.os }}-${{ matrix.arch }}
2022-07-15 10:55:18 +00:00
path : ./bin/neo-go*
2021-12-03 08:41:15 +00:00
if-no-files-found : error
2022-07-15 10:55:18 +00:00
build_image :
needs : build_cli
name : Build Docker image
2022-07-18 16:14:42 +00:00
runs-on : ubuntu-20.04
steps :
- uses : actions/checkout@v2
with :
ref : ${{ github.event.inputs.ref }}
fetch-depth : 0
- name : Set up QEMU
if : runner.os != 'Windows'
uses : docker/setup-qemu-action@v2
- name : Set up Docker Buildx
uses : docker/setup-buildx-action@v2
- name : Set vars
id : setvars
run : make gh-docker-vars
- name : Build and push
uses : docker/build-push-action@v3
with :
push : false
platforms : linux/amd64,linux/arm64
build-args : |
REPO=${{ steps.setvars.outputs.repo }}
VERSION=${{ steps.setvars.outputs.version }}
tags : ${{ steps.setvars.outputs.repo }}:${{ steps.setvars.outputs.version }}${{ steps.setvars.outputs.suffix }}
build_image_wsc :
needs : build_cli
name : Build Docker image (Windows Server Core)
runs-on : windows-2022
2021-11-19 12:42:53 +00:00
steps :
- uses : actions/checkout@v2
with :
2021-12-03 09:22:48 +00:00
ref : ${{ github.event.inputs.ref }}
2021-11-19 12:42:53 +00:00
fetch-depth : 0
2022-02-22 16:37:27 +00:00
# For proper `deps` make target execution.
- name : Set up Go
uses : actions/setup-go@v2
with :
go-version : 1.18
2021-11-19 12:42:53 +00:00
- name : Build Docker image
run : make image