Skip to content

chore: switch to Github Actions #4

chore: switch to Github Actions

chore: switch to Github Actions #4

Workflow file for this run

name: CI
on:
push:
branches:
- main
pull_request:
branches:
- main
env:
GO_VERSION: 1.22.3
jobs:
build-all:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup Go
uses: ./.github/actions/setup-go
with:
go-version: ${{ env.GO_VERSION }}
- name: Install Dependencies
uses: ./.github/actions/install-deps
- name: Build Go
run: make build-go
- name: Store Artifacts
uses: actions/upload-artifact@v2
with:
name: boost
path: boost
- name: Create Linux directory and move boost
run: |
mkdir linux
mv boost linux/
- name: Persist to workspace
uses: actions/upload-artifact@v2
with:
name: linux
path: linux
test:
runs-on: ubuntu-latest
strategy:
matrix:
test-suite:
- itest-dummydeal_offline
- itest-dummydeal
- itest-graphsync_identity_cid
- itest-retrieval
- itest-direct_deal
- itest-data-segment-index
- itest-ipni
- itest-multiminer-graphsync
- booster-http
- booster-bitswap
steps:
- uses: actions/checkout@v2
- name: Setup Go
uses: ./.github/actions/setup-go
with:
go-version: ${{ env.GO_VERSION }}
- name: Install Dependencies
uses: ./.github/actions/install-deps
- name: Download Params
uses: ./.github/actions/download-params
- name: Run tests
run: |
go test -v --tags=debug -timeout 30m ./...
build-macos:
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- name: Setup Go
uses: ./.github/actions/setup-go
with:
go-version: ${{ env.GO_VERSION }}
- name: Install dependencies
run: |
brew update
brew install pkg-config
- name: Install Rust
run: |
curl https://sh.rustup.rs -sSf | sh -s -- -y
- name: Install hwloc
run: |
mkdir ~/hwloc
curl --location https://download.open-mpi.org/release/hwloc/v2.4/hwloc-2.4.1.tar.gz --output ~/hwloc/hwloc-2.4.1.tar.gz
cd ~/hwloc
tar -xvzpf hwloc-2.4.1.tar.gz
cd hwloc-2.4.1
./configure && make && sudo make install
- name: Build MacOS
run: make debug
- name: Check tag and version output match
run: ./scripts/version-check.sh ./boost
- name: Store Artifacts
uses: actions/upload-artifact@v2
with:
name: boost
path: boost
- name: Create Darwin directory and move boost
run: |
mkdir darwin
mv boost darwin/
- name: Persist to workspace
uses: actions/upload-artifact@v2
with:
name: darwin
path: darwin
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup Go
uses: ./.github/actions/setup-go
with:
go-version: ${{ env.GO_VERSION }}
- name: Install Dependencies
uses: ./.github/actions/install-deps
- name: Install golangci-lint
run: |
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.56.2
- name: Lint
run: |
golangci-lint run -v --timeout 2m
gofmt:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup Go
uses: ./.github/actions/setup-go
with:
go-version: ${{ env.GO_VERSION }}
- name: Install Dependencies
uses: ./.github/actions/install-deps
- name: Check gofmt
run: |
! go fmt ./... 2>&1 | read
- name: Git diff check
run: git --no-pager diff
- name: Git diff quiet
run: git --no-pager diff --quiet
cbor-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup Go
uses: ./.github/actions/setup-go
with:
go-version: ${{ env.GO_VERSION }}
- name: Install Dependencies
uses: ./.github/actions/install-deps
- name: Install goimports
run: go install golang.org/x/tools/cmd/goimports
- name: Install cbor-gen-for
run: go install github.com/hannahhoward/cbor-gen-for
- name: Generate CBOR
run: make cbor-gen
- name: Git diff check
run: git --no-pager diff
- name: Git diff quiet
run: git --no-pager diff --quiet
docs-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup Go
uses: ./.github/actions/setup-go
with:
go-version: ${{ env.GO_VERSION }}
- name: Install Dependencies
uses: ./.github/actions/install-deps
- name: Install goimports
run: go install golang.org/x/tools/cmd/goimports
- name: Generate Docs
run: make docsgen
- name: Git diff check
run: git --no-pager diff
- name: Git diff quiet
run: git --no-pager diff --quiet
gen-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup Go
uses: ./.github/actions/setup-go
with:
go-version: ${{ env.GO_VERSION }}
- name: Install Dependencies
uses: ./.github/actions/install-deps
- name: Install goimports
run: go install golang.org/x/tools/cmd/goimports
- name: Install cbor-gen-for
run: go install github.com/hannahhoward/cbor-gen-for
- name: Generate Code
run: make gen
- name: Git diff check
run: git --no-pager diff
- name: Git diff quiet
run: git --no-pager diff --quiet
lid-docker-compose:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup Go
uses: ./.github/actions/setup-go
with:
go-version: ${{ env.GO_VERSION }}
- name: Install Dependencies
uses: ./.github/actions/install-deps
- name: Download Params
uses: ./.github/actions/download-params
- name: Start YugabyteDB
run: docker run --rm --name yugabyte -d -p 5433:5433 yugabytedb/yugabyte:2.18.0.0-b65 bin/yugabyted start --daemon=false
shell: bash
- run: |
while true; do
status=$(docker exec yugabyte bin/yugabyted status);
echo $status;
echo $status | grep Running && break;
sleep 1;
done
shell: bash
- name: Run LID integration tests
run: |
set -x
make test-lid
mod-tidy-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup Go
uses: ./.github/actions/setup-go
with:
go-version: ${{ env.GO_VERSION }}
- name: Install Dependencies
uses: ./.github/actions/install-deps
- name: Run mod tidy check
run: go mod tidy -v