mirror of
https://github.com/nspcc-dev/neo-go.git
synced 2024-11-26 09:42:22 +00:00
613f6e4350
1. Build privnet image for WSC. 2. Automatically define OS to build image and privnet image. 3. Unify image building code for Ubuntu and WSC.
153 lines
3.5 KiB
YAML
153 lines
3.5 KiB
YAML
name: Build
|
|
|
|
on:
|
|
pull_request:
|
|
branches:
|
|
- master
|
|
types: [opened, synchronize]
|
|
paths-ignore:
|
|
- 'scripts/**'
|
|
- '**/*.md'
|
|
workflow_dispatch:
|
|
inputs:
|
|
ref:
|
|
description: 'Ref to build CLI for Ubuntu and Windows Server Core [default: latest master; examples: v0.92.0, 0a4ff9d3e4a9ab432fd5812eb18c98e03b5a7432]'
|
|
required: false
|
|
default: ''
|
|
|
|
env:
|
|
GO111MODULE: "on"
|
|
|
|
jobs:
|
|
build_cli_ubuntu:
|
|
name: Build CLI (Ubuntu)
|
|
runs-on: ubuntu-20.04
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
ref: ${{ github.event.inputs.ref }}
|
|
# Allows to fetch all history for all branches and tags. Need this for proper versioning.
|
|
fetch-depth: 0
|
|
|
|
- name: Set up Go
|
|
uses: actions/setup-go@v2
|
|
with:
|
|
go-version: 1.18
|
|
|
|
- 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
|
|
|
|
- name: Upload artifact
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
name: neo-go-binaries-ubuntu
|
|
path: ./bin/neo-go
|
|
if-no-files-found: error
|
|
|
|
build_cli_wsc:
|
|
name: Build CLI (Windows Server Core)
|
|
runs-on: windows-2022
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
ref: ${{ github.event.inputs.ref }}
|
|
fetch-depth: 0
|
|
|
|
- name: Set up Go
|
|
uses: actions/setup-go@v2
|
|
with:
|
|
go-version: 1.18
|
|
|
|
- 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
|
|
|
|
- name: Upload artifact
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
name: neo-go-binaries-wsc
|
|
path: ./bin/neo-go.exe
|
|
if-no-files-found: error
|
|
|
|
build_image_ubuntu:
|
|
needs: build_cli_ubuntu
|
|
name: Build Docker image (Ubuntu)
|
|
runs-on: ubuntu-20.04
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
ref: ${{ github.event.inputs.ref }}
|
|
fetch-depth: 0
|
|
|
|
# For proper `deps` make target execution.
|
|
- name: Set up Go
|
|
uses: actions/setup-go@v2
|
|
with:
|
|
go-version: 1.18
|
|
|
|
- name: Build Docker image
|
|
run: make image
|
|
|
|
build_image_wsc:
|
|
needs: build_cli_wsc
|
|
name: Build Docker image (Windows Server Core)
|
|
runs-on: windows-2022
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
ref: ${{ github.event.inputs.ref }}
|
|
fetch-depth: 0
|
|
|
|
# For proper `deps` make target execution.
|
|
- name: Set up Go
|
|
uses: actions/setup-go@v2
|
|
with:
|
|
go-version: 1.18
|
|
|
|
- name: Build Docker image
|
|
run: make image
|
|
|
|
build_privnet_image_ubuntu:
|
|
needs: build_cli_ubuntu
|
|
name: Build privnet Docker image (Ubuntu)
|
|
runs-on: ubuntu-20.04
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
ref: ${{ github.event.inputs.ref }}
|
|
fetch-depth: 0
|
|
|
|
# For proper `deps` make target execution.
|
|
- name: Set up Go
|
|
uses: actions/setup-go@v2
|
|
with:
|
|
go-version: 1.18
|
|
|
|
# For information purposes.
|
|
- name: Print Docker version
|
|
run: docker --version
|
|
|
|
- name: Build privnet Docker image
|
|
run: make env_image
|