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 build_privnet_image_wsc: needs: build_cli_wsc name: Build privnet 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 # For information purposes. - name: Print Docker version run: docker --version - name: Build privnet Docker image run: make env_image