Skip to content

chore: switch to Github Actions #5

chore: switch to Github Actions

chore: switch to Github Actions #5

Workflow file for this run

name: CI
on:
push:
branches:
- main
pull_request:
branches:
- main
env:
GO_VERSION: 1.22.3
jobs:
setup-cache:
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: Cache boostci params
id: cache-params
uses: actions/cache@v2
with:
path: /var/tmp/filecoin-proof-parameters/
key: v25-8mb-lotus-params
- name: Run boostci
if: steps.cache-params.outputs.cache-hit != 'true'
run: make boostci
shell: bash
- name: Fetch parameters
if: steps.cache-params.outputs.cache-hit != 'true'
run: ./boostci fetch-params 8388608
shell: bash
- name: Save parameters to cache
if: steps.cache-params.outputs.cache-hit != 'true'
run: echo "Cache saved"
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
shell: bash
- 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/
shell: bash
- name: Persist to workspace
uses: actions/upload-artifact@v2
with:
name: linux
path: linux
test:
runs-on: ubuntu-latest
needs: setup-cache
strategy:
matrix:
test-suite:
- name: test-itest-dummydeal_offline
target: "./itests/dummydeal_offline_test.go"
- name: test-itest-dummydeal
target: "./itests/dummydeal_test.go"
- name: test-graphsync_identity_cid
target: "./itests/graphsync_identity_cid_test.go"
- name: test-itest-retrieval
target: "./itests/graphsync_retrieval_test.go"
- name: test-itest-direct_deal
target: "./itests/ddo_test.go"
- name: test-all
target: "`go list ./... | grep -v boost/itests | grep -v cmd/booster-http | grep -v cmd/booster-bitswap`"
- name: test-itest-data-segment-index
target: "./itests/data_segment_index_retrieval_test.go"
- name: test-itest-ipni
target: "./itests/ipni_publish_test.go"
- name: test-itest-multiminer-graphsync
target: "./itests/multiminer_retrieval_graphsync_test.go"
- name: test-booster-http
target: "./cmd/booster-http"
- name: test-booster-bitswap
target: "./cmd/booster-bitswap"
- name: test-itest-lid-cleanup
target: "./itests/lid_cleanup_test.go"
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: Cache boostci params
uses: actions/cache@v2
with:
path: /var/tmp/filecoin-proof-parameters/
key: v25-8mb-lotus-params
- name: Run tests
run: |
go test -v --tags=debug -timeout 30m ${{ matrix.test-suite.target }}
shell: bash
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
shell: bash
- name: Install Rust
run: |
curl https://sh.rustup.rs -sSf | sh -s -- -y
shell: bash
- 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
shell: bash
- name: Build MacOS
run: make debug
shell: bash
- name: Check tag and version output match
run: ./scripts/version-check.sh ./boost
shell: bash
- 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/
shell: bash
- 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.58.1
shell: bash
- name: Lint
run: |
golangci-lint run -v --timeout 15m
shell: bash
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
shell: bash
- name: Git diff check
run: git --no-pager diff
shell: bash
- name: Git diff quiet
run: git --no-pager diff --quiet
shell: bash
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
shell: bash
- name: Install cbor-gen-for
run: go install github.com/hannahhoward/cbor-gen-for
shell: bash
- name: Generate CBOR
run: make cbor-gen
shell: bash
- name: Git diff check
run: git --no-pager diff
shell: bash
- name: Git diff quiet
run: git --no-pager diff --quiet
shell: bash
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
shell: bash
- name: Generate Docs
run: make docsgen
shell: bash
- name: Git diff check
run: git --no-pager diff
shell: bash
- name: Git diff quiet
run: git --no-pager diff --quiet
shell: bash
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
shell: bash
- name: Install cbor-gen-for
run: go install github.com/hannahhoward/cbor-gen-for
shell: bash
- name: Generate Code
run: make gen
shell: bash
- name: Git diff check
run: git --no-pager diff
shell: bash
- name: Git diff quiet
run: git --no-pager diff --quiet
shell: bash
lid-docker-compose:
runs-on: ubuntu-latest
needs: setup-cache
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: Cache boostci params
uses: actions/cache@v2
with:
path: /var/tmp/filecoin-proof-parameters/
key: v25-8mb-lotus-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
shell: bash
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
shell: bash