2019-07-01 20:17:00 +00:00
version : 2.1
orbs :
2023-09-22 21:15:18 +00:00
aws-cli : circleci/aws-cli@4.1.1
docker : circleci/docker@2.3.0
2019-07-01 20:17:00 +00:00
2019-09-23 11:43:32 +00:00
executors :
golang :
2022-12-19 06:17:00 +00:00
docker :
# Must match GO_VERSION_MIN in project root
2024-02-26 14:57:23 +00:00
- image : cimg/go:1.21.7
2022-12-19 21:18:07 +00:00
resource_class : medium+
2022-12-19 06:17:00 +00:00
golang-2xl :
2019-09-23 11:43:32 +00:00
docker :
2022-10-18 15:19:49 +00:00
# Must match GO_VERSION_MIN in project root
2024-02-26 14:57:23 +00:00
- image : cimg/go:1.21.7
2019-12-04 01:13:27 +00:00
resource_class : 2xlarge
2020-02-12 21:28:37 +00:00
ubuntu :
docker :
2021-05-14 04:22:00 +00:00
- image : ubuntu:20.04
2019-07-01 20:17:00 +00:00
2019-07-08 14:31:43 +00:00
commands :
2022-12-19 06:17:00 +00:00
build-platform-specific :
2019-12-04 01:13:27 +00:00
parameters :
linux :
default : true
description : is a linux build environment?
type : boolean
darwin :
default : false
description : is a darwin build environment?
type : boolean
2022-12-13 23:49:23 +00:00
darwin-architecture :
default : "amd64"
description : which darwin architecture is being used?
type : string
2019-07-08 14:31:43 +00:00
steps :
2020-02-12 21:28:37 +00:00
- checkout
- git_fetch_all_tags
2022-12-20 15:03:22 +00:00
- run : git submodule sync
- run : git submodule update --init
2019-12-04 01:13:27 +00:00
- when :
2022-10-04 00:17:52 +00:00
condition : <<parameters.linux>>
2019-12-04 01:13:27 +00:00
steps :
2022-12-20 15:03:22 +00:00
- install-ubuntu-deps
- check-go-version
Use goreleaser to build universal darwin binaries
This is a small refactor of our workflow to test out goreleaser, a yaml
based tool for building, packaging, and releasing go binaries on
multiple platforms. It supports building binaries for to most of the platforms we
care about, including linux and macos, and also supports publishing
those binaries automatically as releases in Github, homebrew, snap, and
even apt / deb.
If this trial goes well, I think we should eventually replace the entire
release workflow with goreleaser. For now, this test is more tightly
scoped to only automated the MacOS release process, since that is the
one we have the most issues with. This PRi / commit:
- Builds darwin-amd64 and darwin-arm64 binaries of lotus, lotus-miner,
and lotus-worker
- Packages them into a universal darwin binary
- Publishes those to a release in Github based on the current tag
- Uses the binaries in the release to auto-publish and updated homebrew
configuration to filecoin-project/homebrew-lotus
- Does a `dry-run` build to produce a snapshot on release branches with
no tag
- Manually generate and upload checksums after goreleaser
2022-07-29 02:23:03 +00:00
- when :
condition : <<parameters.darwin>>
steps :
- run :
2022-08-09 17:23:02 +00:00
name : Install Go
command : |
2022-12-13 23:49:23 +00:00
curl https://dl.google.com/go/go`cat GO_VERSION_MIN`.darwin-<<parameters.darwin-architecture>>.pkg -o /tmp/go.pkg && \
2022-08-09 17:23:02 +00:00
sudo installer -pkg /tmp/go.pkg -target /
Use goreleaser to build universal darwin binaries
This is a small refactor of our workflow to test out goreleaser, a yaml
based tool for building, packaging, and releasing go binaries on
multiple platforms. It supports building binaries for to most of the platforms we
care about, including linux and macos, and also supports publishing
those binaries automatically as releases in Github, homebrew, snap, and
even apt / deb.
If this trial goes well, I think we should eventually replace the entire
release workflow with goreleaser. For now, this test is more tightly
scoped to only automated the MacOS release process, since that is the
one we have the most issues with. This PRi / commit:
- Builds darwin-amd64 and darwin-arm64 binaries of lotus, lotus-miner,
and lotus-worker
- Packages them into a universal darwin binary
- Publishes those to a release in Github based on the current tag
- Uses the binaries in the release to auto-publish and updated homebrew
configuration to filecoin-project/homebrew-lotus
- Does a `dry-run` build to produce a snapshot on release branches with
no tag
- Manually generate and upload checksums after goreleaser
2022-07-29 02:23:03 +00:00
- run :
name : Export Go
command : |
2022-08-09 17:23:02 +00:00
echo 'export GOPATH="${HOME}/go"' >> $BASH_ENV
Use goreleaser to build universal darwin binaries
This is a small refactor of our workflow to test out goreleaser, a yaml
based tool for building, packaging, and releasing go binaries on
multiple platforms. It supports building binaries for to most of the platforms we
care about, including linux and macos, and also supports publishing
those binaries automatically as releases in Github, homebrew, snap, and
even apt / deb.
If this trial goes well, I think we should eventually replace the entire
release workflow with goreleaser. For now, this test is more tightly
scoped to only automated the MacOS release process, since that is the
one we have the most issues with. This PRi / commit:
- Builds darwin-amd64 and darwin-arm64 binaries of lotus, lotus-miner,
and lotus-worker
- Packages them into a universal darwin binary
- Publishes those to a release in Github based on the current tag
- Uses the binaries in the release to auto-publish and updated homebrew
configuration to filecoin-project/homebrew-lotus
- Does a `dry-run` build to produce a snapshot on release branches with
no tag
- Manually generate and upload checksums after goreleaser
2022-07-29 02:23:03 +00:00
- run : go version
- run :
2022-10-04 00:17:52 +00:00
name : Install dependencies with Homebrew
2022-11-03 14:51:20 +00:00
command : HOMEBREW_NO_AUTO_UPDATE=1 brew install pkg-config coreutils jq hwloc
Use goreleaser to build universal darwin binaries
This is a small refactor of our workflow to test out goreleaser, a yaml
based tool for building, packaging, and releasing go binaries on
multiple platforms. It supports building binaries for to most of the platforms we
care about, including linux and macos, and also supports publishing
those binaries automatically as releases in Github, homebrew, snap, and
even apt / deb.
If this trial goes well, I think we should eventually replace the entire
release workflow with goreleaser. For now, this test is more tightly
scoped to only automated the MacOS release process, since that is the
one we have the most issues with. This PRi / commit:
- Builds darwin-amd64 and darwin-arm64 binaries of lotus, lotus-miner,
and lotus-worker
- Packages them into a universal darwin binary
- Publishes those to a release in Github based on the current tag
- Uses the binaries in the release to auto-publish and updated homebrew
configuration to filecoin-project/homebrew-lotus
- Does a `dry-run` build to produce a snapshot on release branches with
no tag
- Manually generate and upload checksums after goreleaser
2022-07-29 02:23:03 +00:00
- run :
name : Install Rust
command : |
curl https://sh.rustup.rs -sSf | sh -s -- -y
2023-04-25 07:54:26 +00:00
- run : make deps
2019-09-06 23:27:16 +00:00
download-params :
steps :
- restore_cache :
name : Restore parameters cache
2019-12-04 01:13:27 +00:00
keys :
2022-02-03 18:49:22 +00:00
- 'v26-2k-lotus-params'
2022-12-19 06:17:00 +00:00
- run : ./lotus fetch-params 2048
2019-09-06 23:27:16 +00:00
- save_cache :
name : Save parameters cache
2022-02-03 18:49:22 +00:00
key : 'v26-2k-lotus-params'
2019-09-06 23:27:16 +00:00
paths :
- /var/tmp/filecoin-proof-parameters/
2020-02-12 21:28:37 +00:00
install_ipfs :
steps :
- run : |
2022-11-03 14:51:20 +00:00
curl -O https://dist.ipfs.tech/kubo/v0.16.0/kubo_v0.16.0_linux-amd64.tar.gz
tar -xvzf kubo_v0.16.0_linux-amd64.tar.gz
Use goreleaser to build universal darwin binaries
This is a small refactor of our workflow to test out goreleaser, a yaml
based tool for building, packaging, and releasing go binaries on
multiple platforms. It supports building binaries for to most of the platforms we
care about, including linux and macos, and also supports publishing
those binaries automatically as releases in Github, homebrew, snap, and
even apt / deb.
If this trial goes well, I think we should eventually replace the entire
release workflow with goreleaser. For now, this test is more tightly
scoped to only automated the MacOS release process, since that is the
one we have the most issues with. This PRi / commit:
- Builds darwin-amd64 and darwin-arm64 binaries of lotus, lotus-miner,
and lotus-worker
- Packages them into a universal darwin binary
- Publishes those to a release in Github based on the current tag
- Uses the binaries in the release to auto-publish and updated homebrew
configuration to filecoin-project/homebrew-lotus
- Does a `dry-run` build to produce a snapshot on release branches with
no tag
- Manually generate and upload checksums after goreleaser
2022-07-29 02:23:03 +00:00
pushd kubo
sudo bash install.sh
popd
2022-11-03 14:51:20 +00:00
rm -rf kubo
2022-11-18 16:08:13 +00:00
rm kubo_v0.16.0_linux-amd64.tar.gz
2020-02-12 21:28:37 +00:00
git_fetch_all_tags :
steps :
- run :
name : fetch all tags
command : |
git fetch --all
2022-12-20 15:03:22 +00:00
install-ubuntu-deps :
2022-12-19 06:17:00 +00:00
steps :
2023-07-14 23:05:49 +00:00
- run : sudo apt install curl ca-certificates gnupg
2022-12-19 06:17:00 +00:00
- run : sudo apt-get update
- run : sudo apt-get install ocl-icd-opencl-dev libhwloc-dev
2022-12-20 15:03:22 +00:00
check-go-version :
steps :
- run : |
v=`go version | { read _ _ v _; echo ${v#go}; }`
if [[ $v != `cat GO_VERSION_MIN` ]]; then
echo "GO_VERSION_MIN file does not match the go version being used."
echo "Please update image to cimg/go:`cat GO_VERSION_MIN` or update GO_VERSION_MIN to $v."
exit 1
fi
2022-03-31 05:27:18 +00:00
2019-07-02 09:19:48 +00:00
jobs :
2022-12-19 06:17:00 +00:00
build :
executor : golang
working_directory : ~/lotus
steps :
- checkout
- git_fetch_all_tags
- run : git submodule sync
- run : git submodule update --init
2022-12-20 15:03:22 +00:00
- install-ubuntu-deps
- check-go-version
2022-12-19 06:17:00 +00:00
- run : make deps lotus
- persist_to_workspace :
root : ~/
paths :
- "lotus"
2019-07-02 09:19:48 +00:00
mod-tidy-check :
2019-09-23 11:43:32 +00:00
executor : golang
2022-12-19 06:17:00 +00:00
working_directory : ~/lotus
2019-07-02 09:19:48 +00:00
steps :
2022-12-20 15:03:22 +00:00
- install-ubuntu-deps
2022-12-19 06:17:00 +00:00
- attach_workspace :
at : ~/
2022-04-19 16:40:16 +00:00
- run : go mod tidy -v
- run :
name : Check git diff
command : |
git --no-pager diff go.mod go.sum
git --no-pager diff --quiet go.mod go.sum
2020-03-09 06:56:11 +00:00
2021-06-22 20:03:05 +00:00
test :
2019-07-08 14:31:43 +00:00
description : |
Run tests with gotestsum.
2022-12-19 06:17:00 +00:00
working_directory : ~/lotus
2020-08-26 15:03:44 +00:00
parameters : &test-params
2023-07-14 23:05:49 +00:00
resource_class :
type : string
default : medium+
2019-07-08 14:31:43 +00:00
go-test-flags :
type : string
2022-12-19 06:17:00 +00:00
default : "-timeout 20m"
2019-07-08 14:31:43 +00:00
description : Flags passed to go test.
2021-06-22 20:03:05 +00:00
target :
2019-07-08 14:31:43 +00:00
type : string
default : "./..."
description : Import paths of packages to be tested.
2021-06-15 15:46:06 +00:00
proofs-log-test :
type : string
default : "0"
2022-12-19 06:17:00 +00:00
get-params :
type : boolean
default : false
2021-06-22 20:03:05 +00:00
suite :
2019-07-08 14:31:43 +00:00
type : string
default : unit
description : Test suite name to report to CircleCI.
2023-07-14 23:05:49 +00:00
docker :
2024-02-26 14:57:23 +00:00
- image : cimg/go:1.21
2023-07-14 23:05:49 +00:00
environment :
LOTUS_HARMONYDB_HOSTS : yugabyte
2023-09-22 00:20:46 +00:00
- image : yugabytedb/yugabyte:2.18.0.0-b65
2023-07-14 23:05:49 +00:00
command : bin/yugabyted start --daemon=false
name : yugabyte
resource_class : << parameters.resource_class >>
2019-07-08 14:31:43 +00:00
steps :
2022-12-20 15:03:22 +00:00
- install-ubuntu-deps
2022-12-19 06:17:00 +00:00
- attach_workspace :
at : ~/
- when :
condition : << parameters.get-params >>
steps :
- download-params
2019-07-08 14:31:43 +00:00
- run :
name : go test
environment :
2021-06-15 15:46:06 +00:00
TEST_RUSTPROOFS_LOGS : << parameters.proofs-log-test >>
2020-08-21 15:41:35 +00:00
SKIP_CONFORMANCE : "1"
2022-04-19 15:21:16 +00:00
LOTUS_SRC_DIR : /home/circleci/project
2019-07-08 14:31:43 +00:00
command : |
2021-06-22 20:03:05 +00:00
mkdir -p /tmp/test-reports/<< parameters.suite >>
2020-07-20 23:07:08 +00:00
mkdir -p /tmp/test-artifacts
2023-07-14 23:05:49 +00:00
dockerize -wait tcp://yugabyte:5433 -timeout 3m
env
2020-07-20 23:07:08 +00:00
gotestsum \
2022-12-19 06:17:00 +00:00
--format standard-verbose \
2021-06-22 20:03:05 +00:00
--junitfile /tmp/test-reports/<< parameters.suite >>/junit.xml \
--jsonfile /tmp/test-artifacts/<< parameters.suite >>.json \
2022-12-20 17:45:06 +00:00
--packages="<< parameters.target >>" \
-- << parameters.go-test-flags >>
2019-12-05 12:04:34 +00:00
no_output_timeout : 30m
2019-07-08 14:31:43 +00:00
- store_test_results :
path : /tmp/test-reports
2020-07-20 23:07:08 +00:00
- store_artifacts :
2021-06-22 20:03:05 +00:00
path : /tmp/test-artifacts/<< parameters.suite >>.json
2019-12-04 01:13:27 +00:00
2020-08-16 21:22:12 +00:00
test-conformance :
2022-12-19 06:17:00 +00:00
working_directory : ~/lotus
2020-08-26 15:03:44 +00:00
description : |
2022-04-07 17:54:23 +00:00
Run tests using a corpus of interoperable test vectors for Filecoin
2020-08-26 15:03:44 +00:00
implementations to test their correctness and compliance with the Filecoin
specifications.
parameters :
<< : *test-params
vectors-branch :
type : string
default : ""
description : |
Branch on github.com/filecoin-project/test-vectors to checkout and
test with. If empty (the default) the commit defined by the git
submodule is used.
2023-07-14 23:05:49 +00:00
docker :
2024-02-26 14:57:23 +00:00
- image : cimg/go:1.21
2023-07-14 23:05:49 +00:00
resource_class : << parameters.resource_class >>
2020-08-21 15:41:35 +00:00
steps :
2022-12-20 15:03:22 +00:00
- install-ubuntu-deps
2022-12-19 06:17:00 +00:00
- attach_workspace :
at : ~/
2020-08-21 15:41:35 +00:00
- download-params
2020-08-26 15:03:44 +00:00
- when :
condition :
not :
equal : [ "" , << parameters.vectors-branch >> ]
steps :
- run :
name : checkout vectors branch
command : |
cd extern/test-vectors
git fetch
git checkout origin/<< parameters.vectors-branch >>
2020-09-09 12:03:43 +00:00
- run :
name : install statediff globally
command : |
2020-09-10 09:41:18 +00:00
## statediff is optional; we succeed even if compilation fails.
2020-09-09 12:03:43 +00:00
mkdir -p /tmp/statediff
git clone https://github.com/filecoin-project/statediff.git /tmp/statediff
cd /tmp/statediff
2020-09-10 09:41:18 +00:00
go install ./cmd/statediff || exit 0
2020-08-21 15:41:35 +00:00
- run :
name : go test
environment :
SKIP_CONFORMANCE : "0"
command : |
2020-08-26 20:55:06 +00:00
mkdir -p /tmp/test-reports
2020-08-21 15:41:35 +00:00
mkdir -p /tmp/test-artifacts
2020-08-26 20:55:06 +00:00
gotestsum \
--format pkgname-and-test-fails \
--junitfile /tmp/test-reports/junit.xml \
-- \
-v -coverpkg ./chain/vm/,github.com/filecoin-project/specs-actors/... -coverprofile=/tmp/conformance.out ./conformance/
2020-08-21 15:41:35 +00:00
go tool cover -html=/tmp/conformance.out -o /tmp/test-artifacts/conformance-coverage.html
no_output_timeout : 30m
2020-08-26 20:55:06 +00:00
- store_test_results :
path : /tmp/test-reports
2020-08-21 15:41:35 +00:00
- store_artifacts :
path : /tmp/test-artifacts/conformance-coverage.html
2022-10-04 00:17:52 +00:00
build-linux-amd64 :
executor : golang
steps :
2022-12-19 06:17:00 +00:00
- build-platform-specific
2022-10-04 00:17:52 +00:00
- run : make lotus lotus-miner lotus-worker
- run :
name : check tag and version output match
command : ./scripts/version-check.sh ./lotus
- run : |
mkdir -p /tmp/workspace/linux_amd64_v1 && \
mv lotus lotus-miner lotus-worker /tmp/workspace/linux_amd64_v1/
- persist_to_workspace :
root : /tmp/workspace
paths :
- linux_amd64_v1
build-darwin-amd64 :
2019-12-04 01:13:27 +00:00
description : build darwin lotus binary
2022-10-04 00:17:52 +00:00
working_directory : ~/go/src/github.com/filecoin-project/lotus
2019-12-04 01:13:27 +00:00
macos :
2022-08-12 14:56:43 +00:00
xcode : "13.4.1"
2022-10-04 00:17:52 +00:00
steps :
2022-12-19 06:17:00 +00:00
- build-platform-specific :
2022-10-04 00:17:52 +00:00
linux : false
darwin : true
2022-12-13 23:49:23 +00:00
darwin-architecture : amd64
2022-10-04 00:17:52 +00:00
- run : make lotus lotus-miner lotus-worker
2022-12-13 23:53:01 +00:00
- run : otool -hv lotus
2022-11-07 16:13:00 +00:00
- run :
name : check tag and version output match
command : ./scripts/version-check.sh ./lotus
2022-10-04 00:17:52 +00:00
- run : |
mkdir -p /tmp/workspace/darwin_amd64_v1 && \
mv lotus lotus-miner lotus-worker /tmp/workspace/darwin_amd64_v1/
- persist_to_workspace :
root : /tmp/workspace
paths :
- darwin_amd64_v1
build-darwin-arm64 :
description : self-hosted m1 runner
2019-12-04 01:13:27 +00:00
working_directory : ~/go/src/github.com/filecoin-project/lotus
2022-10-04 00:17:52 +00:00
machine : true
resource_class : filecoin-project/self-hosted-m1
2019-12-04 01:13:27 +00:00
steps :
2022-10-04 00:17:52 +00:00
- run : echo 'export PATH=/opt/homebrew/bin:"$PATH"' >> "$BASH_ENV"
2022-12-19 06:17:00 +00:00
- build-platform-specific :
2019-12-04 01:13:27 +00:00
linux : false
darwin : true
2022-12-13 23:49:23 +00:00
darwin-architecture : arm64
2022-10-27 10:15:29 +00:00
- run : |
2023-04-25 07:54:26 +00:00
export CPATH=$(brew --prefix)/include && export LIBRARY_PATH=$(brew --prefix)/lib && make lotus lotus-miner lotus-worker
2022-12-13 23:53:01 +00:00
- run : otool -hv lotus
2022-11-07 16:13:00 +00:00
- run :
name : check tag and version output match
command : ./scripts/version-check.sh ./lotus
2022-10-04 00:17:52 +00:00
- run : |
mkdir -p /tmp/workspace/darwin_arm64 && \
mv lotus lotus-miner lotus-worker /tmp/workspace/darwin_arm64/
2020-02-12 21:28:37 +00:00
- persist_to_workspace :
2022-10-04 00:17:52 +00:00
root : /tmp/workspace
2020-02-12 21:28:37 +00:00
paths :
2022-10-04 00:17:52 +00:00
- darwin_arm64
- run :
command : make clean
when : always
2022-10-27 10:15:29 +00:00
- run :
name : cleanup homebrew
2022-11-03 14:51:20 +00:00
command : HOMEBREW_NO_AUTO_UPDATE=1 brew uninstall pkg-config coreutils jq hwloc
2022-10-27 10:15:29 +00:00
when : always
2022-10-04 00:17:52 +00:00
release :
executor : golang
2022-10-27 10:15:29 +00:00
parameters :
dry-run :
default : false
description : should this release actually publish it's artifacts?
type : boolean
2022-10-04 00:17:52 +00:00
steps :
2022-11-03 14:51:20 +00:00
- checkout
- run : |
echo 'deb [trusted=yes] https://repo.goreleaser.com/apt/ /' | sudo tee /etc/apt/sources.list.d/goreleaser.list
sudo apt update
sudo apt install goreleaser-pro
- install_ipfs
2022-10-04 00:17:52 +00:00
- attach_workspace :
at : /tmp/workspace
Use goreleaser to build universal darwin binaries
This is a small refactor of our workflow to test out goreleaser, a yaml
based tool for building, packaging, and releasing go binaries on
multiple platforms. It supports building binaries for to most of the platforms we
care about, including linux and macos, and also supports publishing
those binaries automatically as releases in Github, homebrew, snap, and
even apt / deb.
If this trial goes well, I think we should eventually replace the entire
release workflow with goreleaser. For now, this test is more tightly
scoped to only automated the MacOS release process, since that is the
one we have the most issues with. This PRi / commit:
- Builds darwin-amd64 and darwin-arm64 binaries of lotus, lotus-miner,
and lotus-worker
- Packages them into a universal darwin binary
- Publishes those to a release in Github based on the current tag
- Uses the binaries in the release to auto-publish and updated homebrew
configuration to filecoin-project/homebrew-lotus
- Does a `dry-run` build to produce a snapshot on release branches with
no tag
- Manually generate and upload checksums after goreleaser
2022-07-29 02:23:03 +00:00
- when :
2022-10-27 10:15:29 +00:00
condition : << parameters.dry-run >>
Use goreleaser to build universal darwin binaries
This is a small refactor of our workflow to test out goreleaser, a yaml
based tool for building, packaging, and releasing go binaries on
multiple platforms. It supports building binaries for to most of the platforms we
care about, including linux and macos, and also supports publishing
those binaries automatically as releases in Github, homebrew, snap, and
even apt / deb.
If this trial goes well, I think we should eventually replace the entire
release workflow with goreleaser. For now, this test is more tightly
scoped to only automated the MacOS release process, since that is the
one we have the most issues with. This PRi / commit:
- Builds darwin-amd64 and darwin-arm64 binaries of lotus, lotus-miner,
and lotus-worker
- Packages them into a universal darwin binary
- Publishes those to a release in Github based on the current tag
- Uses the binaries in the release to auto-publish and updated homebrew
configuration to filecoin-project/homebrew-lotus
- Does a `dry-run` build to produce a snapshot on release branches with
no tag
- Manually generate and upload checksums after goreleaser
2022-07-29 02:23:03 +00:00
steps :
2022-11-18 16:32:27 +00:00
- run : goreleaser release --rm-dist --snapshot --debug
Use goreleaser to build universal darwin binaries
This is a small refactor of our workflow to test out goreleaser, a yaml
based tool for building, packaging, and releasing go binaries on
multiple platforms. It supports building binaries for to most of the platforms we
care about, including linux and macos, and also supports publishing
those binaries automatically as releases in Github, homebrew, snap, and
even apt / deb.
If this trial goes well, I think we should eventually replace the entire
release workflow with goreleaser. For now, this test is more tightly
scoped to only automated the MacOS release process, since that is the
one we have the most issues with. This PRi / commit:
- Builds darwin-amd64 and darwin-arm64 binaries of lotus, lotus-miner,
and lotus-worker
- Packages them into a universal darwin binary
- Publishes those to a release in Github based on the current tag
- Uses the binaries in the release to auto-publish and updated homebrew
configuration to filecoin-project/homebrew-lotus
- Does a `dry-run` build to produce a snapshot on release branches with
no tag
- Manually generate and upload checksums after goreleaser
2022-07-29 02:23:03 +00:00
- run : ./scripts/generate-checksums.sh
- when :
condition :
2022-10-27 10:15:29 +00:00
not : << parameters.dry-run >>
Use goreleaser to build universal darwin binaries
This is a small refactor of our workflow to test out goreleaser, a yaml
based tool for building, packaging, and releasing go binaries on
multiple platforms. It supports building binaries for to most of the platforms we
care about, including linux and macos, and also supports publishing
those binaries automatically as releases in Github, homebrew, snap, and
even apt / deb.
If this trial goes well, I think we should eventually replace the entire
release workflow with goreleaser. For now, this test is more tightly
scoped to only automated the MacOS release process, since that is the
one we have the most issues with. This PRi / commit:
- Builds darwin-amd64 and darwin-arm64 binaries of lotus, lotus-miner,
and lotus-worker
- Packages them into a universal darwin binary
- Publishes those to a release in Github based on the current tag
- Uses the binaries in the release to auto-publish and updated homebrew
configuration to filecoin-project/homebrew-lotus
- Does a `dry-run` build to produce a snapshot on release branches with
no tag
- Manually generate and upload checksums after goreleaser
2022-07-29 02:23:03 +00:00
steps :
2022-11-18 16:32:27 +00:00
- run : goreleaser release --rm-dist --debug
Use goreleaser to build universal darwin binaries
This is a small refactor of our workflow to test out goreleaser, a yaml
based tool for building, packaging, and releasing go binaries on
multiple platforms. It supports building binaries for to most of the platforms we
care about, including linux and macos, and also supports publishing
those binaries automatically as releases in Github, homebrew, snap, and
even apt / deb.
If this trial goes well, I think we should eventually replace the entire
release workflow with goreleaser. For now, this test is more tightly
scoped to only automated the MacOS release process, since that is the
one we have the most issues with. This PRi / commit:
- Builds darwin-amd64 and darwin-arm64 binaries of lotus, lotus-miner,
and lotus-worker
- Packages them into a universal darwin binary
- Publishes those to a release in Github based on the current tag
- Uses the binaries in the release to auto-publish and updated homebrew
configuration to filecoin-project/homebrew-lotus
- Does a `dry-run` build to produce a snapshot on release branches with
no tag
- Manually generate and upload checksums after goreleaser
2022-07-29 02:23:03 +00:00
- run : ./scripts/generate-checksums.sh
2022-10-27 10:15:29 +00:00
- run : ./scripts/publish-checksums.sh
2019-07-08 14:31:43 +00:00
2020-03-09 06:56:11 +00:00
gofmt :
executor : golang
2022-12-19 06:17:00 +00:00
working_directory : ~/lotus
2020-03-09 06:56:11 +00:00
steps :
- run :
command : "! go fmt ./... 2>&1 | read"
2021-04-29 18:01:23 +00:00
gen-check :
2020-08-24 10:20:23 +00:00
executor : golang
2022-12-19 06:17:00 +00:00
working_directory : ~/lotus
2020-08-24 10:20:23 +00:00
steps :
2022-12-20 15:03:22 +00:00
- install-ubuntu-deps
2022-12-19 06:17:00 +00:00
- attach_workspace :
at : ~/
2020-08-24 10:20:23 +00:00
- run : go install golang.org/x/tools/cmd/goimports
- run : go install github.com/hannahhoward/cbor-gen-for
2021-04-29 18:01:23 +00:00
- run : make gen
2023-01-04 14:16:40 +00:00
- run : git --no-pager diff && git --no-pager diff --quiet
2021-04-29 18:01:23 +00:00
- run : make docsgen-cli
2023-01-04 14:16:40 +00:00
- run : git --no-pager diff && git --no-pager diff --quiet
2020-08-24 10:20:23 +00:00
docs-check :
executor : golang
2022-12-19 06:17:00 +00:00
working_directory : ~/lotus
2020-08-24 10:20:23 +00:00
steps :
2022-12-20 15:03:22 +00:00
- install-ubuntu-deps
2022-12-19 06:17:00 +00:00
- attach_workspace :
at : ~/
2021-03-25 14:19:22 +00:00
- run : go install golang.org/x/tools/cmd/goimports
2020-08-24 10:20:23 +00:00
- run : make docsgen
2024-02-14 21:52:26 +00:00
- run : git --no-pager diff && git --no-pager diff --quiet
2020-08-24 10:20:23 +00:00
2022-12-19 06:17:00 +00:00
lint-all :
2019-07-08 14:31:43 +00:00
description : |
Run golangci-lint.
2022-12-19 06:17:00 +00:00
working_directory : ~/lotus
2019-07-08 14:31:43 +00:00
parameters :
2019-07-08 15:36:24 +00:00
args :
type : string
default : ''
description : |
Arguments to pass to golangci-lint
2023-07-14 23:05:49 +00:00
docker :
2024-02-26 14:57:23 +00:00
- image : cimg/go:1.21
2023-07-14 23:05:49 +00:00
resource_class : medium+
2019-07-08 14:31:43 +00:00
steps :
2022-12-20 15:03:22 +00:00
- install-ubuntu-deps
2022-12-19 06:17:00 +00:00
- attach_workspace :
at : ~/
2019-07-08 14:31:43 +00:00
- run :
name : Lint
command : |
2022-12-19 06:17:00 +00:00
golangci-lint run -v --timeout 10m \
--concurrency 4 << parameters.args >>
2019-07-08 14:31:43 +00:00
Refactor Lotus Dockerfile
This is a major refactor of our dockerfile to support the following
- The lotus image will remain as is.
- The lotus-test image will be deprecated.
- The lotus-all-in-one image will also ship with the lotus-seed and lotus-fountain binaries, which it currently does not.
- The lotus-all-in-one image will be built in debug, calibnet, and butterflynet modes in addition to the (current) mainnet mode.
- The lotus-all-in-one image will now be published regularly using the following tags:
- 1.18.0-rc1 , 1.18.0-rc1-debug, 1.18.0-rc1-calibnet, 1.18.0-rc1-butterflynet . This pattern will be used for all lotus releases, including RC releases.
- nightly, nightly-debug, nightly-calibnet, nightly-butterflynet
- stable, stable-debug, stable-calibnet, stable-butterflynet
2022-10-20 20:15:13 +00:00
build-docker :
description : >
Publish to Dockerhub
executor : docker/docker
2021-01-20 18:59:47 +00:00
parameters :
Refactor Lotus Dockerfile
This is a major refactor of our dockerfile to support the following
- The lotus image will remain as is.
- The lotus-test image will be deprecated.
- The lotus-all-in-one image will also ship with the lotus-seed and lotus-fountain binaries, which it currently does not.
- The lotus-all-in-one image will be built in debug, calibnet, and butterflynet modes in addition to the (current) mainnet mode.
- The lotus-all-in-one image will now be published regularly using the following tags:
- 1.18.0-rc1 , 1.18.0-rc1-debug, 1.18.0-rc1-calibnet, 1.18.0-rc1-butterflynet . This pattern will be used for all lotus releases, including RC releases.
- nightly, nightly-debug, nightly-calibnet, nightly-butterflynet
- stable, stable-debug, stable-calibnet, stable-butterflynet
2022-10-20 20:15:13 +00:00
image :
2021-01-20 18:59:47 +00:00
type : string
Refactor Lotus Dockerfile
This is a major refactor of our dockerfile to support the following
- The lotus image will remain as is.
- The lotus-test image will be deprecated.
- The lotus-all-in-one image will also ship with the lotus-seed and lotus-fountain binaries, which it currently does not.
- The lotus-all-in-one image will be built in debug, calibnet, and butterflynet modes in addition to the (current) mainnet mode.
- The lotus-all-in-one image will now be published regularly using the following tags:
- 1.18.0-rc1 , 1.18.0-rc1-debug, 1.18.0-rc1-calibnet, 1.18.0-rc1-butterflynet . This pattern will be used for all lotus releases, including RC releases.
- nightly, nightly-debug, nightly-calibnet, nightly-butterflynet
- stable, stable-debug, stable-calibnet, stable-butterflynet
2022-10-20 20:15:13 +00:00
default : lotus
2021-01-20 18:59:47 +00:00
description : >
Refactor Lotus Dockerfile
This is a major refactor of our dockerfile to support the following
- The lotus image will remain as is.
- The lotus-test image will be deprecated.
- The lotus-all-in-one image will also ship with the lotus-seed and lotus-fountain binaries, which it currently does not.
- The lotus-all-in-one image will be built in debug, calibnet, and butterflynet modes in addition to the (current) mainnet mode.
- The lotus-all-in-one image will now be published regularly using the following tags:
- 1.18.0-rc1 , 1.18.0-rc1-debug, 1.18.0-rc1-calibnet, 1.18.0-rc1-butterflynet . This pattern will be used for all lotus releases, including RC releases.
- nightly, nightly-debug, nightly-calibnet, nightly-butterflynet
- stable, stable-debug, stable-calibnet, stable-butterflynet
2022-10-20 20:15:13 +00:00
Passed to the docker build process to determine which image in the
Dockerfile should be built. Expected values are `lotus`,
`lotus-all-in-one`
network :
2021-01-20 18:59:47 +00:00
type : string
Refactor Lotus Dockerfile
This is a major refactor of our dockerfile to support the following
- The lotus image will remain as is.
- The lotus-test image will be deprecated.
- The lotus-all-in-one image will also ship with the lotus-seed and lotus-fountain binaries, which it currently does not.
- The lotus-all-in-one image will be built in debug, calibnet, and butterflynet modes in addition to the (current) mainnet mode.
- The lotus-all-in-one image will now be published regularly using the following tags:
- 1.18.0-rc1 , 1.18.0-rc1-debug, 1.18.0-rc1-calibnet, 1.18.0-rc1-butterflynet . This pattern will be used for all lotus releases, including RC releases.
- nightly, nightly-debug, nightly-calibnet, nightly-butterflynet
- stable, stable-debug, stable-calibnet, stable-butterflynet
2022-10-20 20:15:13 +00:00
default : "mainnet"
description : >
Passed to the docker build process using GOFLAGS+=-tags=<<network>>.
Expected values are `debug`, `2k`, `calibnet`, `butterflynet`,
`interopnet`.
channel :
2021-01-20 18:59:47 +00:00
type : string
default : ""
description : >
Refactor Lotus Dockerfile
This is a major refactor of our dockerfile to support the following
- The lotus image will remain as is.
- The lotus-test image will be deprecated.
- The lotus-all-in-one image will also ship with the lotus-seed and lotus-fountain binaries, which it currently does not.
- The lotus-all-in-one image will be built in debug, calibnet, and butterflynet modes in addition to the (current) mainnet mode.
- The lotus-all-in-one image will now be published regularly using the following tags:
- 1.18.0-rc1 , 1.18.0-rc1-debug, 1.18.0-rc1-calibnet, 1.18.0-rc1-butterflynet . This pattern will be used for all lotus releases, including RC releases.
- nightly, nightly-debug, nightly-calibnet, nightly-butterflynet
- stable, stable-debug, stable-calibnet, stable-butterflynet
2022-10-20 20:15:13 +00:00
The release channel to use for this image.
push :
type : boolean
default : false
description : >
When true, pushes the image to Dockerhub
2021-01-20 18:59:47 +00:00
steps :
Refactor Lotus Dockerfile
This is a major refactor of our dockerfile to support the following
- The lotus image will remain as is.
- The lotus-test image will be deprecated.
- The lotus-all-in-one image will also ship with the lotus-seed and lotus-fountain binaries, which it currently does not.
- The lotus-all-in-one image will be built in debug, calibnet, and butterflynet modes in addition to the (current) mainnet mode.
- The lotus-all-in-one image will now be published regularly using the following tags:
- 1.18.0-rc1 , 1.18.0-rc1-debug, 1.18.0-rc1-calibnet, 1.18.0-rc1-butterflynet . This pattern will be used for all lotus releases, including RC releases.
- nightly, nightly-debug, nightly-calibnet, nightly-butterflynet
- stable, stable-debug, stable-calibnet, stable-butterflynet
2022-10-20 20:15:13 +00:00
- setup_remote_docker
2021-01-20 18:59:47 +00:00
- checkout
2023-01-26 10:59:00 +00:00
- git_fetch_all_tags
- run : git submodule sync
- run : git submodule update --init
Refactor Lotus Dockerfile
This is a major refactor of our dockerfile to support the following
- The lotus image will remain as is.
- The lotus-test image will be deprecated.
- The lotus-all-in-one image will also ship with the lotus-seed and lotus-fountain binaries, which it currently does not.
- The lotus-all-in-one image will be built in debug, calibnet, and butterflynet modes in addition to the (current) mainnet mode.
- The lotus-all-in-one image will now be published regularly using the following tags:
- 1.18.0-rc1 , 1.18.0-rc1-debug, 1.18.0-rc1-calibnet, 1.18.0-rc1-butterflynet . This pattern will be used for all lotus releases, including RC releases.
- nightly, nightly-debug, nightly-calibnet, nightly-butterflynet
- stable, stable-debug, stable-calibnet, stable-butterflynet
2022-10-20 20:15:13 +00:00
- docker/check :
docker-username : DOCKERHUB_USERNAME
docker-password : DOCKERHUB_PASSWORD
- when :
condition :
equal : [ mainnet, <<parameters.network>> ]
steps :
- when :
2023-01-20 19:12:22 +00:00
condition : <<parameters.push>>
Refactor Lotus Dockerfile
This is a major refactor of our dockerfile to support the following
- The lotus image will remain as is.
- The lotus-test image will be deprecated.
- The lotus-all-in-one image will also ship with the lotus-seed and lotus-fountain binaries, which it currently does not.
- The lotus-all-in-one image will be built in debug, calibnet, and butterflynet modes in addition to the (current) mainnet mode.
- The lotus-all-in-one image will now be published regularly using the following tags:
- 1.18.0-rc1 , 1.18.0-rc1-debug, 1.18.0-rc1-calibnet, 1.18.0-rc1-butterflynet . This pattern will be used for all lotus releases, including RC releases.
- nightly, nightly-debug, nightly-calibnet, nightly-butterflynet
- stable, stable-debug, stable-calibnet, stable-butterflynet
2022-10-20 20:15:13 +00:00
steps :
- docker/build :
image : filecoin/<<parameters.image>>
extra_build_args : --target <<parameters.image>>
tag : <<parameters.channel>>
- run :
name : Docker push
command : |
2022-12-09 18:18:08 +00:00
docker push filecoin/<<parameters.image>>:<<parameters.channel>>
2022-12-09 18:35:29 +00:00
if [[ ! -z $CIRCLE_SHA ]]; then
2023-01-20 19:12:22 +00:00
docker image tag filecoin/<<parameters.image>>:<<parameters.channel>> filecoin/<<parameters.image>>:"${CIRCLE_SHA:0:7}"
2022-12-16 00:51:03 +00:00
docker push filecoin/<<parameters.image>>:"${CIRCLE_SHA:0:7}"
2022-12-09 18:35:29 +00:00
fi
Refactor Lotus Dockerfile
This is a major refactor of our dockerfile to support the following
- The lotus image will remain as is.
- The lotus-test image will be deprecated.
- The lotus-all-in-one image will also ship with the lotus-seed and lotus-fountain binaries, which it currently does not.
- The lotus-all-in-one image will be built in debug, calibnet, and butterflynet modes in addition to the (current) mainnet mode.
- The lotus-all-in-one image will now be published regularly using the following tags:
- 1.18.0-rc1 , 1.18.0-rc1-debug, 1.18.0-rc1-calibnet, 1.18.0-rc1-butterflynet . This pattern will be used for all lotus releases, including RC releases.
- nightly, nightly-debug, nightly-calibnet, nightly-butterflynet
- stable, stable-debug, stable-calibnet, stable-butterflynet
2022-10-20 20:15:13 +00:00
if [[ ! -z $CIRCLE_TAG ]]; then
docker image tag filecoin/<<parameters.image>>:<<parameters.channel>> filecoin/<<parameters.image>>:"${CIRCLE_TAG}"
2022-12-09 18:18:08 +00:00
docker push filecoin/<<parameters.image>>:"${CIRCLE_TAG}"
Refactor Lotus Dockerfile
This is a major refactor of our dockerfile to support the following
- The lotus image will remain as is.
- The lotus-test image will be deprecated.
- The lotus-all-in-one image will also ship with the lotus-seed and lotus-fountain binaries, which it currently does not.
- The lotus-all-in-one image will be built in debug, calibnet, and butterflynet modes in addition to the (current) mainnet mode.
- The lotus-all-in-one image will now be published regularly using the following tags:
- 1.18.0-rc1 , 1.18.0-rc1-debug, 1.18.0-rc1-calibnet, 1.18.0-rc1-butterflynet . This pattern will be used for all lotus releases, including RC releases.
- nightly, nightly-debug, nightly-calibnet, nightly-butterflynet
- stable, stable-debug, stable-calibnet, stable-butterflynet
2022-10-20 20:15:13 +00:00
fi
- unless :
condition : <<parameters.push>>
steps :
- docker/build :
image : filecoin/<<parameters.image>>
extra_build_args : --target <<parameters.image>>
- when :
condition :
not :
equal : [ mainnet, <<parameters.network>> ]
steps :
- when :
condition : <<parameters.push>>
steps :
- docker/build :
image : filecoin/<<parameters.image>>
extra_build_args : --target <<parameters.image>> --build-arg GOFLAGS=-tags=<<parameters.network>>
tag : <<parameters.channel>>-<<parameters.network>>
- run :
name : Docker push
command : |
2023-01-22 16:39:40 +00:00
docker push filecoin/<<parameters.image>>:<<parameters.channel>>-<<parameters.network>>
2022-12-09 18:35:29 +00:00
if [[ ! -z $CIRCLE_SHA ]]; then
2022-12-16 00:51:03 +00:00
docker image tag filecoin/<<parameters.image>>:<<parameters.channel>>-<<parameters.network>> filecoin/<<parameters.image>>:"${CIRCLE_SHA:0:7}"-<<parameters.network>>
docker push filecoin/<<parameters.image>>:"${CIRCLE_SHA:0:7}"-<<parameters.network>>
2022-12-09 18:35:29 +00:00
fi
Refactor Lotus Dockerfile
This is a major refactor of our dockerfile to support the following
- The lotus image will remain as is.
- The lotus-test image will be deprecated.
- The lotus-all-in-one image will also ship with the lotus-seed and lotus-fountain binaries, which it currently does not.
- The lotus-all-in-one image will be built in debug, calibnet, and butterflynet modes in addition to the (current) mainnet mode.
- The lotus-all-in-one image will now be published regularly using the following tags:
- 1.18.0-rc1 , 1.18.0-rc1-debug, 1.18.0-rc1-calibnet, 1.18.0-rc1-butterflynet . This pattern will be used for all lotus releases, including RC releases.
- nightly, nightly-debug, nightly-calibnet, nightly-butterflynet
- stable, stable-debug, stable-calibnet, stable-butterflynet
2022-10-20 20:15:13 +00:00
if [[ ! -z $CIRCLE_TAG ]]; then
docker image tag filecoin/<<parameters.image>>:<<parameters.channel>>-<<parameters.network>> filecoin/<<parameters.image>>:"${CIRCLE_TAG}"-<<parameters.network>>
2022-12-09 18:18:08 +00:00
docker push filecoin/<<parameters.image>>:"${CIRCLE_TAG}"-<<parameters.network>>
Refactor Lotus Dockerfile
This is a major refactor of our dockerfile to support the following
- The lotus image will remain as is.
- The lotus-test image will be deprecated.
- The lotus-all-in-one image will also ship with the lotus-seed and lotus-fountain binaries, which it currently does not.
- The lotus-all-in-one image will be built in debug, calibnet, and butterflynet modes in addition to the (current) mainnet mode.
- The lotus-all-in-one image will now be published regularly using the following tags:
- 1.18.0-rc1 , 1.18.0-rc1-debug, 1.18.0-rc1-calibnet, 1.18.0-rc1-butterflynet . This pattern will be used for all lotus releases, including RC releases.
- nightly, nightly-debug, nightly-calibnet, nightly-butterflynet
- stable, stable-debug, stable-calibnet, stable-butterflynet
2022-10-20 20:15:13 +00:00
fi
- unless :
condition : <<parameters.push>>
steps :
- docker/build :
image : filecoin/<<parameters.image>>
extra_build_args : --target <<parameters.image>> --build-arg GOFLAGS=-tags=<<parameters.network>>
2019-07-08 14:31:43 +00:00
2019-07-01 20:17:00 +00:00
workflows :
ci :
jobs :
2022-12-19 06:17:00 +00:00
- build
2020-09-14 12:18:53 +00:00
- lint-all :
2022-12-19 06:17:00 +00:00
requires :
- build
- mod-tidy-check :
requires :
- build
- gofmt :
requires :
- build
- gen-check :
requires :
- build
- docs-check :
requires :
- build
2020-06-01 12:59:51 +00:00
- test :
2021-06-22 20:03:05 +00:00
name : test-itest-api
2022-12-19 06:17:00 +00:00
requires :
- build
2021-06-22 20:03:05 +00:00
suite : itest-api
target : "./itests/api_test.go"
- test :
name : test-itest-batch_deal
2022-12-19 06:17:00 +00:00
requires :
- build
2021-06-22 20:03:05 +00:00
suite : itest-batch_deal
target : "./itests/batch_deal_test.go"
- test :
name : test-itest-cli
2022-12-19 06:17:00 +00:00
requires :
- build
2021-06-22 20:03:05 +00:00
suite : itest-cli
target : "./itests/cli_test.go"
2024-04-03 20:00:14 +00:00
- test :
name : test-itest-curio
requires :
- build
suite : itest-curio
target : "./itests/curio_test.go"
2021-06-22 20:03:05 +00:00
- test :
name : test-itest-deadlines
2022-12-19 06:17:00 +00:00
requires :
- build
2021-06-22 20:03:05 +00:00
suite : itest-deadlines
target : "./itests/deadlines_test.go"
2021-08-20 14:53:24 +00:00
- test :
name : test-itest-deals_512mb
2022-12-19 06:17:00 +00:00
requires :
- build
2021-08-20 14:53:24 +00:00
suite : itest-deals_512mb
target : "./itests/deals_512mb_test.go"
2021-09-20 10:08:43 +00:00
- test :
name : test-itest-deals_anycid
2022-12-19 06:17:00 +00:00
requires :
- build
2021-09-20 10:08:43 +00:00
suite : itest-deals_anycid
target : "./itests/deals_anycid_test.go"
2021-06-23 17:13:29 +00:00
- test :
name : test-itest-deals_concurrent
2022-12-19 06:17:00 +00:00
requires :
- build
2021-06-23 17:13:29 +00:00
suite : itest-deals_concurrent
target : "./itests/deals_concurrent_test.go"
2023-07-14 23:05:49 +00:00
resource_class : 2xlarge
2022-05-30 14:29:05 +00:00
- test :
name : test-itest-deals_invalid_utf8_label
2022-12-19 06:17:00 +00:00
requires :
- build
2022-05-30 14:29:05 +00:00
suite : itest-deals_invalid_utf8_label
target : "./itests/deals_invalid_utf8_label_test.go"
2021-09-06 15:39:35 +00:00
- test :
name : test-itest-deals_max_staging_deals
2022-12-19 06:17:00 +00:00
requires :
- build
2021-09-06 15:39:35 +00:00
suite : itest-deals_max_staging_deals
target : "./itests/deals_max_staging_deals_test.go"
2021-06-23 17:13:29 +00:00
- test :
name : test-itest-deals_offline
2022-12-19 06:17:00 +00:00
requires :
- build
2021-06-23 17:13:29 +00:00
suite : itest-deals_offline
target : "./itests/deals_offline_test.go"
2021-07-24 02:06:02 +00:00
- test :
name : test-itest-deals_padding
2022-12-19 06:17:00 +00:00
requires :
- build
2021-07-24 02:06:02 +00:00
suite : itest-deals_padding
target : "./itests/deals_padding_test.go"
2021-11-24 14:08:36 +00:00
- test :
name : test-itest-deals_partial_retrieval_dm-level
2022-12-19 06:17:00 +00:00
requires :
- build
2021-11-24 14:08:36 +00:00
suite : itest-deals_partial_retrieval_dm-level
target : "./itests/deals_partial_retrieval_dm-level_test.go"
2021-06-04 11:20:34 +00:00
- test :
name : test-itest-deals_partial_retrieval
2022-12-19 06:17:00 +00:00
requires :
- build
2021-06-04 11:20:34 +00:00
suite : itest-deals_partial_retrieval
target : "./itests/deals_partial_retrieval_test.go"
2021-06-23 17:13:29 +00:00
- test :
name : test-itest-deals_power
2022-12-19 06:17:00 +00:00
requires :
- build
2021-06-23 17:13:29 +00:00
suite : itest-deals_power
target : "./itests/deals_power_test.go"
- test :
name : test-itest-deals_pricing
2022-12-19 06:17:00 +00:00
requires :
- build
2021-06-23 17:13:29 +00:00
suite : itest-deals_pricing
target : "./itests/deals_pricing_test.go"
- test :
name : test-itest-deals_publish
2022-12-19 06:17:00 +00:00
requires :
- build
2021-06-23 17:13:29 +00:00
suite : itest-deals_publish
target : "./itests/deals_publish_test.go"
2022-11-07 15:14:56 +00:00
- test :
name : test-itest-deals_remote_retrieval
2022-12-19 06:17:00 +00:00
requires :
- build
2022-11-07 15:14:56 +00:00
suite : itest-deals_remote_retrieval
target : "./itests/deals_remote_retrieval_test.go"
2021-10-06 11:43:38 +00:00
- test :
name : test-itest-deals_retry_deal_no_funds
2022-12-19 06:17:00 +00:00
requires :
- build
2021-10-06 11:43:38 +00:00
suite : itest-deals_retry_deal_no_funds
target : "./itests/deals_retry_deal_no_funds_test.go"
2021-06-22 20:03:05 +00:00
- test :
name : test-itest-deals
2022-12-19 06:17:00 +00:00
requires :
- build
2021-06-22 20:03:05 +00:00
suite : itest-deals
target : "./itests/deals_test.go"
2023-02-01 21:44:44 +00:00
- test :
name : test-itest-decode_params
2023-02-07 15:58:05 +00:00
requires :
- build
2023-02-01 21:44:44 +00:00
suite : itest-decode_params
target : "./itests/decode_params_test.go"
chore: Merge nv22 into master (#11699)
* [WIP] feat: Add nv22 skeleton
Addition of Network Version 22 skeleton
* update FFI
* feat: drand: refactor round verification
* feat: sealing: Support nv22 DDO features in the sealing pipeline (#11226)
* Initial work supporting DDO pieces in lotus-miner
* sealing: Update pipeline input to operate on UniversalPiece
* sealing: Update pipeline checks/sealing states to operate on UniversalPiece
* sealing: Make pipeline build with UniversalPiece
* move PieceDealInfo out of api
* make gen
* make sealing pipeline unit tests pass
* fix itest ensemble build
* don't panic in SectorsStatus with deals
* stop linter from complaining about checkPieces
* fix sector import tests
* mod tidy
* sealing: Add logic for (pre)committing DDO sectors
* sealing: state-types with method defs
* DDO non-snap pipeline works(?), DDO Itests
* DDO support in snapdeals pipeline
* make gen
* update actor bundles
* update the gst market fix
* fix: chain: use PreCommitSectorsBatch2 when setting up genesis
* some bug fixes
* integration working changes
* update actor bundles
* Make TestOnboardRawPieceSnap pass
* Appease the linter
* Make deadlines test pass with v12 actors
* Update go-state-types, abstract market DealState
* make gen
* mod tidy, lint fixes
* Fix some more tests
* Bump version in master
Bump version in master
* Make gen
Make gen
* fix sender
* fix: lotus-provider: Fix winning PoSt
* fix: sql Scan cannot write to an object
* Actually show miner-addrs in info-log
Actually show miner-addrs in lotus-provider info-log
* [WIP] feat: Add nv22 skeleton
Addition of Network Version 22 skeleton
* update FFI
* ddo is now nv22
* make gen
* temp actor bundle with ddo
* use working go-state-types
* gst with v13 market migration
* update bundle, builtin.MethodsMiner.ProveCommitSectors2 -> 3
* actually working v13 migration, v13 migration itest
* Address review
* sealing: Correct DDO snap pledge math
* itests: Mixed ddo itest
* pipeline: Fix sectorWeight
* sealing: convert market deals into PAMs in mixed sectors
* sealing: make market to ddo conversion work
* fix lint
* update gst
* Update actors and GST to lastest integ branch
* commit batcher: Update ProveCommitSectors3Params builder logic
* make gen
* use builtin-actors master
* ddo: address review
* itests: Add commd assertions to ddo tests
* make gen
* gst with fixed types
* config knobs for RequireActivationSuccess
* storage: Drop obsolete flaky tasts
---------
Co-authored-by: Jennifer Wang <jiayingw703@gmail.com>
Co-authored-by: Aayush <arajasek94@gmail.com>
Co-authored-by: Shrenuj Bansal <shrenuj.bansal@protocol.ai>
Co-authored-by: Phi <orjan.roren@gmail.com>
Co-authored-by: Andrew Jackson (Ajax) <snadrus@gmail.com>
Co-authored-by: TippyFlits <james.bluett@protocol.ai>
* feat: implement FIP-0063
* chore: deps: update to go-multiaddr v0.12.2 (#11602)
* feat: fvm: update the FVM/FFI to v4.1 (#11608) (#11612)
This:
1. Adds nv22 support.
2. Updates the message tracing format.
Co-authored-by: Steven Allen <steven@stebalien.com>
* AggregateProofType nil when doing batch updates
Use latest nv22 go-state-types version with matching update
* Update to v13.0.0-rc.2 bundle
* chore: Upgrade heights and codename
Update upgrade heights
Co-Authored-By: Steven Allen <steven@stebalien.com>
* Update epoch after nv22 DRAND switch
Update epoch after nv22 DRAND switch
* Update Mango codename to Phoneix
Make the codename for the Drand-change inline with Dragon style.
* Add UpgradePhoenixHeight to API params
* set UpgradePhoenixHeight to be one hour after Dragon
* Make gen
Make gen and UpgradePhoenixHeight in butterfly and local devnet to be in line with Calibration and Mainnet
* Update epoch heights (#11637)
Update epoch heights
* new: add forest bootstrap nodes (#11636)
Signed-off-by: samuelarogbonlo <sbayo971@gmail.com>
* Merge pull request #11491 from filecoin-project/fix/remove-decommissioned-pl-bootstrap-nodes
Remove PL operated bootstrap nodes from mainnet.pi
* feat: api: new verified registry methods to get all allocations and claims (#11631)
* new verireg methods
* update changelog and add itest
* update itest and cli
* update new method's support till v9
* remove gateway APIs
* fix cli internal var names
* chore:: backport #11609 to the feat/nv22 branch (#11644)
* feat: api: improve the correctness of Eth's trace_block (#11609)
* Improve the correctness of Eth's trace_block
- Improve encoding/decoding of parameters and return values:
- Encode "native" parameters and return values with Solidity ABI.
- Correctly decode parameters to "create" calls.
- Use the correct (ish) output for "create" calls.
- Handle all forms of "create".
- Make robust with respect to reverts:
- Use the actor ID/address from the trace instead of looking it up in
the state-tree (may not exist in the state-tree due to a revert).
- Gracefully handle failed actor/contract creation.
- Improve performance:
- We avoid looking anything up in the state-tree when translating the
trace, which should significantly improve performance.
- Improve code readability:
- Remove all "backtracking" logic.
- Use an "environment" struct to store temporary state instead of
attaching it to the trace.
- Fix random bugs:
- Fix an allocation bug in the "address" logic (need to set the
capacity before modifying the slice).
- Improved error checking/handling.
- Use correct types for `trace_block` action/results (create, call, etc.).
- And use the correct types for Result/Action structs instead of reusing the same "Call" action every time.
- Improve error messages.
* Make gen
Make gen
---------
Co-authored-by: Steven Allen <steven@stebalien.com>
* fix: add UpgradePhoenixHeight to StateGetNetworkParams (#11648)
* chore: deps: update to go-state-types v13.0.0-rc.1
* do NOT update the cache when running the real migration
* Merge pull request #11632 from hanabi1224/hm/drand-test
feat: drand quicknet: allow scheduling drand quicknet upgrade before nv22 on 2k devnet
* chore: deps: update to go-state-types v13.0.0-rc.2
chore: deps: update to go-state-types v13.0.0-rc.2
* feat: set migration config UpgradeEpoch for v13 actors upgrade
* Built-in actor events first draft
* itest for DDO non-market verified data w/ builtin actor events
* Tests for builtin actor events API
* Clean up DDO+Events tests, add lots of explainer comments
* Minor tweaks to events types
* Avoid duplicate messages when looking for receipts
* Rename internal events modules for clarity
* Adjust actor event API after review
* s/ActorEvents/Events/g in global config
* Manage event sending rate for SubscribeActorEvents
* Terminate SubscribeActorEvents chan when at max height
* Document future API changes
* More clarity in actor event API docs
* More post-review changes, lots of tests for SubscribeActorEvents
Use BlockDelay as the window for receiving events on the SubscribeActorEvents
channel. We expect the user to have received the initial batch of historical
events (if any) in one block's time. For real-time events we expect them to
not fall behind by roughly one block's time.
* Remove duplicate code from actor event type marshalling tests
Reduce verbosity and remove duplicate test logic from actor event types
JSON marshalling tests.
* Rename actor events test to follow go convention
Add missing `s` to `actor_events` test file to follow golang convention
used across the repo.
* Run actor events table tests in deterministic order
Refactor `map` usage for actor event table tests to ensure deterministic
test execution order, making debugging potential issues easier. If
non-determinism is a target, leverage Go's built-in parallel testing
capabilities.
* Reduce scope for filter removal failure when getting actor events
Use a fresh context to remove the temporary filter installed solely to
get the actor events. This should reduce chances of failure in a case
where the original context may be expired/cancelled.
Refactor removal into a `defer` statement for a more readable, concise
return statement.
* Use fixed RNG seed for actor event tests
Improve determinism in actor event tests by using a fixed RNG seed. This
makes up a more reproducible test suit.
* Use provided libraries to assert eventual conditions
Use the functionalities already provided by `testify` to assert eventual
conditions, and remove the use of `time.Sleep`.
Remove duplicate code in utility functions that are already defined.
Refactor assertion helper functions to use consistent terminology:
"require" implies fatal error, whereas "assert" implies error where the
test may proceed executing.
* Update changelog for actor events APIs
* Fix concerns and docs identified by review
* Update actor bundle to v13.0.0-rc3
Update actor bundle to v13.0.0-rc3
* Prep Lotus v1.26.0-rc1
- For sanity reverting the mainnet upgrade epoch to 99999999, and then only set it when cutting the final release
-Update Calibnet CIDs to v13.0.0-rc3
- Add GetActorEvents, SubscribeActorEvents, GetAllClaims and GetAllAllocations methods to the changelog
Co-Authored-By: Jiaying Wang <42981373+jennijuju@users.noreply.github.com>
* Update CHANGELOG.md
Co-authored-by: Masih H. Derkani <m@derkani.org>
* Make gen
Make gen
* fix: beacon: validate drand change at nv16 correctly
* bump to v1.26.0-rc2
* test: cleanup ddo verified itest, extract steps to functions
also add allocation-removed event case
* test: extract verified DDO test to separate file, add more checks
* test: add additional actor events checks
* Add verification for "deal-activated" actor event
* docs(drand): document the meaning of "IsChained" (#11692)
* Resolve conflicts
I encountered multiple issues when trying to run make gen. And these changes fixed a couple of them:
- go mod tidy
- Remove RaftState/RaftLeader
- Revert `if ts.Height() > claim.TermMax+claim.TermStart || !cctx.IsSet("expired")` to the what is in the release/v1.26.0: `if tsHeight > val.TermMax || !expired`
* fixup imports, make jen
* Update version
Update version in master to v1.27.0-dev
* Update node/impl/full/dummy.go
Co-authored-by: Łukasz Magiera <magik6k@users.noreply.github.com>
* Adjust ListClaimsCmd
Adjust ListClaimsCmd according to review
---------
Signed-off-by: samuelarogbonlo <sbayo971@gmail.com>
Co-authored-by: TippyFlits <james.bluett@protocol.ai>
Co-authored-by: Aayush <arajasek94@gmail.com>
Co-authored-by: Łukasz Magiera <magik6k@users.noreply.github.com>
Co-authored-by: Jennifer Wang <jiayingw703@gmail.com>
Co-authored-by: Shrenuj Bansal <shrenuj.bansal@protocol.ai>
Co-authored-by: Andrew Jackson (Ajax) <snadrus@gmail.com>
Co-authored-by: Steven Allen <steven@stebalien.com>
Co-authored-by: Rod Vagg <rod@vagg.org>
Co-authored-by: Samuel Arogbonlo <47984109+samuelarogbonlo@users.noreply.github.com>
Co-authored-by: LexLuthr <88259624+LexLuthr@users.noreply.github.com>
Co-authored-by: tom123222 <160735201+tom123222@users.noreply.github.com>
Co-authored-by: Aarsh Shah <aarshkshah1992@gmail.com>
Co-authored-by: Masih H. Derkani <m@derkani.org>
Co-authored-by: Jiaying Wang <42981373+jennijuju@users.noreply.github.com>
2024-03-12 09:33:58 +00:00
- test :
name : test-itest-direct_data_onboard
requires :
- build
suite : itest-direct_data_onboard
target : "./itests/direct_data_onboard_test.go"
- test :
name : test-itest-direct_data_onboard_verified
requires :
- build
suite : itest-direct_data_onboard_verified
target : "./itests/direct_data_onboard_verified_test.go"
2022-08-17 18:02:53 +00:00
- test :
name : test-itest-dup_mpool_messages
2022-12-19 06:17:00 +00:00
requires :
- build
2022-08-17 18:02:53 +00:00
suite : itest-dup_mpool_messages
target : "./itests/dup_mpool_messages_test.go"
2023-01-13 19:11:13 +00:00
- test :
name : test-itest-eth_account_abstraction
2023-01-16 15:42:49 +00:00
requires :
- build
2023-01-13 19:11:13 +00:00
suite : itest-eth_account_abstraction
target : "./itests/eth_account_abstraction_test.go"
2023-02-15 19:17:00 +00:00
- test :
name : test-itest-eth_api
2023-02-17 21:03:47 +00:00
requires :
- build
2023-02-15 19:17:00 +00:00
suite : itest-eth_api
target : "./itests/eth_api_test.go"
2023-01-13 19:11:13 +00:00
- test :
name : test-itest-eth_balance
2023-01-16 15:42:49 +00:00
requires :
- build
2023-01-13 19:11:13 +00:00
suite : itest-eth_balance
target : "./itests/eth_balance_test.go"
2023-01-19 18:25:23 +00:00
- test :
name : test-itest-eth_block_hash
2023-01-23 17:25:48 +00:00
requires :
- build
2023-01-19 18:25:23 +00:00
suite : itest-eth_block_hash
target : "./itests/eth_block_hash_test.go"
2023-02-13 12:09:09 +00:00
- test :
name : test-itest-eth_bytecode
2023-02-13 12:40:32 +00:00
requires :
- build
2023-02-13 12:09:09 +00:00
suite : itest-eth_bytecode
target : "./itests/eth_bytecode_test.go"
2023-01-26 14:51:08 +00:00
- test :
name : test-itest-eth_config
2023-02-03 14:11:38 +00:00
requires :
- build
2023-01-26 14:51:08 +00:00
suite : itest-eth_config
target : "./itests/eth_config_test.go"
2023-01-26 17:09:15 +00:00
- test :
name : test-itest-eth_conformance
2023-02-07 15:58:05 +00:00
requires :
- build
2023-01-26 17:09:15 +00:00
suite : itest-eth_conformance
target : "./itests/eth_conformance_test.go"
2023-01-13 19:11:13 +00:00
- test :
name : test-itest-eth_deploy
2023-01-16 15:42:49 +00:00
requires :
- build
2023-01-13 19:11:13 +00:00
suite : itest-eth_deploy
target : "./itests/eth_deploy_test.go"
2023-02-10 18:33:59 +00:00
- test :
name : test-itest-eth_fee_history
2023-02-13 12:40:32 +00:00
requires :
- build
2023-02-10 18:33:59 +00:00
suite : itest-eth_fee_history
target : "./itests/eth_fee_history_test.go"
2023-01-13 19:11:13 +00:00
- test :
name : test-itest-eth_filter
2023-01-16 15:42:49 +00:00
requires :
- build
2023-01-13 19:11:13 +00:00
suite : itest-eth_filter
target : "./itests/eth_filter_test.go"
2023-01-04 13:22:41 +00:00
- test :
name : test-itest-eth_hash_lookup
2023-01-23 17:25:48 +00:00
requires :
- build
2023-01-04 13:22:41 +00:00
suite : itest-eth_hash_lookup
target : "./itests/eth_hash_lookup_test.go"
2023-01-13 19:11:13 +00:00
- test :
name : test-itest-eth_transactions
2023-01-16 15:42:49 +00:00
requires :
- build
2023-01-13 19:11:13 +00:00
suite : itest-eth_transactions
target : "./itests/eth_transactions_test.go"
- test :
name : test-itest-fevm_address
2023-01-16 15:42:49 +00:00
requires :
- build
2023-01-13 19:11:13 +00:00
suite : itest-fevm_address
target : "./itests/fevm_address_test.go"
- test :
name : test-itest-fevm_events
2023-01-16 15:42:49 +00:00
requires :
- build
2023-01-13 19:11:13 +00:00
suite : itest-fevm_events
target : "./itests/fevm_events_test.go"
- test :
name : test-itest-fevm
2023-01-16 15:42:49 +00:00
requires :
- build
2023-01-13 19:11:13 +00:00
suite : itest-fevm
target : "./itests/fevm_test.go"
2022-07-07 20:06:51 +00:00
- test :
name : test-itest-gas_estimation
2022-12-19 06:17:00 +00:00
requires :
- build
2022-07-07 20:06:51 +00:00
suite : itest-gas_estimation
target : "./itests/gas_estimation_test.go"
2021-06-22 20:03:05 +00:00
- test :
name : test-itest-gateway
2022-12-19 06:17:00 +00:00
requires :
- build
2021-06-22 20:03:05 +00:00
suite : itest-gateway
target : "./itests/gateway_test.go"
2021-07-06 05:34:54 +00:00
- test :
name : test-itest-get_messages_in_ts
2022-12-19 06:17:00 +00:00
requires :
- build
2021-07-06 05:34:54 +00:00
suite : itest-get_messages_in_ts
target : "./itests/get_messages_in_ts_test.go"
2023-07-14 23:05:49 +00:00
- test :
name : test-itest-harmonydb
requires :
- build
suite : itest-harmonydb
target : "./itests/harmonydb_test.go"
2023-08-21 22:13:17 +00:00
- test :
name : test-itest-harmonytask
requires :
- build
suite : itest-harmonytask
target : "./itests/harmonytask_test.go"
2022-06-07 03:14:16 +00:00
- test :
name : test-itest-lite_migration
2022-12-19 06:17:00 +00:00
requires :
- build
2022-06-07 03:14:16 +00:00
suite : itest-lite_migration
target : "./itests/lite_migration_test.go"
2022-04-14 21:30:07 +00:00
- test :
name : test-itest-lookup_robust_address
2022-12-19 06:17:00 +00:00
requires :
- build
2022-04-14 21:30:07 +00:00
suite : itest-lookup_robust_address
target : "./itests/lookup_robust_address_test.go"
2022-02-08 17:47:23 +00:00
- test :
name : test-itest-mempool
2022-12-19 06:17:00 +00:00
requires :
- build
2022-02-08 17:47:23 +00:00
suite : itest-mempool
target : "./itests/mempool_test.go"
2022-09-13 20:52:47 +00:00
- test :
2023-04-19 22:40:18 +00:00
name : test-itest-migration
2022-12-19 06:17:00 +00:00
requires :
- build
2023-04-19 22:40:18 +00:00
suite : itest-migration
target : "./itests/migration_test.go"
2022-09-13 20:52:47 +00:00
- test :
name : test-itest-mpool_msg_uuid
2022-12-19 06:17:00 +00:00
requires :
- build
2022-09-13 20:52:47 +00:00
suite : itest-mpool_msg_uuid
target : "./itests/mpool_msg_uuid_test.go"
2022-09-13 21:41:06 +00:00
- test :
name : test-itest-mpool_push_with_uuid
2022-12-19 06:17:00 +00:00
requires :
- build
2022-09-13 21:41:06 +00:00
suite : itest-mpool_push_with_uuid
target : "./itests/mpool_push_with_uuid_test.go"
2023-03-13 13:09:11 +00:00
- test :
name : test-itest-msgindex
requires :
- build
suite : itest-msgindex
target : "./itests/msgindex_test.go"
2021-06-22 20:03:05 +00:00
- test :
name : test-itest-multisig
2022-12-19 06:17:00 +00:00
requires :
- build
2021-06-22 20:03:05 +00:00
suite : itest-multisig
target : "./itests/multisig_test.go"
2022-06-23 18:02:10 +00:00
- test :
name : test-itest-net
2022-12-19 06:17:00 +00:00
requires :
- build
2022-06-23 18:02:10 +00:00
suite : itest-net
target : "./itests/net_test.go"
2021-07-02 16:04:57 +00:00
- test :
name : test-itest-nonce
2022-12-19 06:17:00 +00:00
requires :
- build
2021-07-02 16:04:57 +00:00
suite : itest-nonce
target : "./itests/nonce_test.go"
2022-07-15 13:49:23 +00:00
- test :
name : test-itest-path_detach_redeclare
2022-12-19 06:17:00 +00:00
requires :
- build
2022-07-15 13:49:23 +00:00
suite : itest-path_detach_redeclare
target : "./itests/path_detach_redeclare_test.go"
2022-07-12 10:42:08 +00:00
- test :
name : test-itest-path_type_filters
2022-12-19 06:17:00 +00:00
requires :
- build
2022-07-12 10:42:08 +00:00
suite : itest-path_type_filters
target : "./itests/path_type_filters_test.go"
2021-06-22 20:03:05 +00:00
- test :
name : test-itest-paych_api
2022-12-19 06:17:00 +00:00
requires :
- build
2021-06-22 20:03:05 +00:00
suite : itest-paych_api
target : "./itests/paych_api_test.go"
- test :
name : test-itest-paych_cli
2022-12-19 06:17:00 +00:00
requires :
- build
2021-06-22 20:03:05 +00:00
suite : itest-paych_cli
target : "./itests/paych_cli_test.go"
2022-10-05 18:43:16 +00:00
- test :
2022-10-05 22:45:43 +00:00
name : test-itest-pending_deal_allocation
2022-12-19 06:17:00 +00:00
requires :
- build
2022-10-05 22:45:43 +00:00
suite : itest-pending_deal_allocation
target : "./itests/pending_deal_allocation_test.go"
2022-10-26 16:18:51 +00:00
- test :
name : test-itest-remove_verifreg_datacap
2022-12-19 06:17:00 +00:00
requires :
- build
2022-10-26 16:18:51 +00:00
suite : itest-remove_verifreg_datacap
target : "./itests/remove_verifreg_datacap_test.go"
2023-05-10 19:43:42 +00:00
- test :
name : test-itest-sealing_resources
requires :
- build
suite : itest-sealing_resources
target : "./itests/sealing_resources_test.go"
2021-07-01 19:07:53 +00:00
- test :
name : test-itest-sector_finalize_early
2022-12-19 06:17:00 +00:00
requires :
- build
2021-07-01 19:07:53 +00:00
suite : itest-sector_finalize_early
target : "./itests/sector_finalize_early_test.go"
2022-03-17 20:21:52 +00:00
- test :
2022-09-09 10:22:21 +00:00
name : test-itest-sector_import_full
2022-12-19 06:17:00 +00:00
requires :
- build
2022-09-09 10:22:21 +00:00
suite : itest-sector_import_full
target : "./itests/sector_import_full_test.go"
- test :
name : test-itest-sector_import_simple
2022-12-19 06:17:00 +00:00
requires :
- build
2022-09-09 10:22:21 +00:00
suite : itest-sector_import_simple
target : "./itests/sector_import_simple_test.go"
2021-06-29 16:17:08 +00:00
- test :
name : test-itest-sector_miner_collateral
2022-12-19 06:17:00 +00:00
requires :
- build
2021-06-29 16:17:08 +00:00
suite : itest-sector_miner_collateral
target : "./itests/sector_miner_collateral_test.go"
2022-08-22 20:20:40 +00:00
- test :
name : test-itest-sector_numassign
2022-12-19 06:17:00 +00:00
requires :
- build
2022-08-22 20:20:40 +00:00
suite : itest-sector_numassign
target : "./itests/sector_numassign_test.go"
2021-06-22 20:03:05 +00:00
- test :
name : test-itest-sector_pledge
2022-12-19 06:17:00 +00:00
requires :
- build
2021-06-22 20:03:05 +00:00
suite : itest-sector_pledge
target : "./itests/sector_pledge_test.go"
2024-03-12 16:05:04 +00:00
resource_class : 2xlarge
2023-09-19 13:58:02 +00:00
get-params : true
2021-06-22 20:03:05 +00:00
- test :
name : test-itest-sector_terminate
2022-12-19 06:17:00 +00:00
requires :
- build
2021-06-22 20:03:05 +00:00
suite : itest-sector_terminate
target : "./itests/sector_terminate_test.go"
2022-11-21 20:23:44 +00:00
- test :
name : test-itest-sector_unseal
2022-12-19 06:17:00 +00:00
requires :
- build
2022-11-21 20:23:44 +00:00
suite : itest-sector_unseal
target : "./itests/sector_unseal_test.go"
2021-11-29 22:26:47 +00:00
- test :
name : test-itest-self_sent_txn
2022-12-19 06:17:00 +00:00
requires :
- build
2021-11-29 22:26:47 +00:00
suite : itest-self_sent_txn
target : "./itests/self_sent_txn_test.go"
2022-08-05 20:34:16 +00:00
- test :
name : test-itest-splitstore
2022-12-19 06:17:00 +00:00
requires :
- build
2022-08-05 20:34:16 +00:00
suite : itest-splitstore
target : "./itests/splitstore_test.go"
2021-06-22 20:03:05 +00:00
- test :
name : test-itest-verifreg
2022-12-19 06:17:00 +00:00
requires :
- build
2021-06-22 20:03:05 +00:00
suite : itest-verifreg
target : "./itests/verifreg_test.go"
2022-07-04 14:15:23 +00:00
- test :
2022-08-02 19:55:04 +00:00
name : test-itest-wdpost_config
2022-12-19 06:17:00 +00:00
requires :
- build
2022-08-02 19:55:04 +00:00
suite : itest-wdpost_config
target : "./itests/wdpost_config_test.go"
2021-06-22 20:03:05 +00:00
- test :
name : test-itest-wdpost_dispute
2022-12-19 06:17:00 +00:00
requires :
- build
2021-06-22 20:03:05 +00:00
suite : itest-wdpost_dispute
target : "./itests/wdpost_dispute_test.go"
2022-07-11 21:00:50 +00:00
- test :
name : test-itest-wdpost_no_miner_storage
2022-12-19 06:17:00 +00:00
requires :
- build
2022-07-11 21:00:50 +00:00
suite : itest-wdpost_no_miner_storage
target : "./itests/wdpost_no_miner_storage_test.go"
2021-06-22 20:03:05 +00:00
- test :
name : test-itest-wdpost
2022-12-19 06:17:00 +00:00
requires :
- build
2021-06-22 20:03:05 +00:00
suite : itest-wdpost
target : "./itests/wdpost_test.go"
2023-04-23 17:31:02 +00:00
get-params : true
2022-07-04 14:15:23 +00:00
- test :
name : test-itest-wdpost_worker_config
2022-12-19 06:17:00 +00:00
requires :
- build
2022-07-04 14:15:23 +00:00
suite : itest-wdpost_worker_config
target : "./itests/wdpost_worker_config_test.go"
2023-07-14 23:05:49 +00:00
resource_class : 2xlarge
2022-01-14 13:11:04 +00:00
- test :
name : test-itest-worker
2022-12-19 06:17:00 +00:00
requires :
- build
2022-01-14 13:11:04 +00:00
suite : itest-worker
target : "./itests/worker_test.go"
2023-07-14 23:05:49 +00:00
resource_class : 2xlarge
2022-11-15 21:22:25 +00:00
- test :
name : test-itest-worker_upgrade
2022-12-19 06:17:00 +00:00
requires :
- build
2022-11-15 21:22:25 +00:00
suite : itest-worker_upgrade
target : "./itests/worker_upgrade_test.go"
2021-06-22 20:03:05 +00:00
- test :
name : test-unit-cli
2022-12-19 06:17:00 +00:00
requires :
- build
2021-06-22 20:03:05 +00:00
suite : utest-unit-cli
target : "./cli/... ./cmd/... ./api/..."
2023-12-01 18:29:05 +00:00
resource_class : 2xlarge
2023-11-21 22:04:46 +00:00
get-params : true
2021-06-22 20:03:05 +00:00
- test :
name : test-unit-node
2022-12-19 06:17:00 +00:00
requires :
- build
2021-06-22 20:03:05 +00:00
suite : utest-unit-node
target : "./node/..."
- test :
name : test-unit-rest
2022-12-19 06:17:00 +00:00
requires :
- build
2021-06-22 20:03:05 +00:00
suite : utest-unit-rest
2024-03-15 21:38:13 +00:00
target : "./blockstore/... ./build/... ./chain/... ./conformance/... ./curiosrc/... ./gateway/... ./journal/... ./lib/... ./markets/... ./paychmgr/... ./tools/..."
2023-12-01 18:29:05 +00:00
resource_class : 2xlarge
2021-06-22 20:03:05 +00:00
- test :
name : test-unit-storage
2022-12-19 06:17:00 +00:00
requires :
- build
2021-06-22 20:03:05 +00:00
suite : utest-unit-storage
target : "./storage/... ./extern/..."
2023-11-21 22:04:46 +00:00
get-params : true
2021-06-22 20:03:05 +00:00
- test :
2021-06-15 15:46:06 +00:00
go-test-flags : "-run=TestMulticoreSDR"
2022-12-19 06:17:00 +00:00
requires :
- build
2021-06-22 20:03:05 +00:00
suite : multicore-sdr-check
2022-06-14 18:08:10 +00:00
target : "./storage/sealer/ffiwrapper"
2021-06-15 15:46:06 +00:00
proofs-log-test : "1"
2020-08-16 21:22:12 +00:00
- test-conformance :
2022-12-19 06:17:00 +00:00
requires :
- build
2021-06-22 20:03:05 +00:00
suite : conformance
target : "./conformance"
2022-10-04 00:17:52 +00:00
2022-11-07 14:39:45 +00:00
release :
jobs :
2022-10-04 00:17:52 +00:00
- build-linux-amd64 :
name : "Build ( linux / amd64 )"
2021-06-03 17:44:48 +00:00
filters :
2022-10-04 00:17:52 +00:00
branches :
2021-03-31 23:12:33 +00:00
only :
2022-10-04 00:17:52 +00:00
- /^release\/v\d+\.\d+\.\d+(-rc\d+)?$/
2023-04-25 07:54:26 +00:00
- /^ci\/.*$/
2021-06-03 17:44:48 +00:00
tags :
only :
- /^v\d+\.\d+\.\d+(-rc\d+)?$/
2022-10-04 00:17:52 +00:00
- build-darwin-amd64 :
name : "Build ( darwin / amd64 )"
2021-03-31 23:12:33 +00:00
filters :
Use goreleaser to build universal darwin binaries
This is a small refactor of our workflow to test out goreleaser, a yaml
based tool for building, packaging, and releasing go binaries on
multiple platforms. It supports building binaries for to most of the platforms we
care about, including linux and macos, and also supports publishing
those binaries automatically as releases in Github, homebrew, snap, and
even apt / deb.
If this trial goes well, I think we should eventually replace the entire
release workflow with goreleaser. For now, this test is more tightly
scoped to only automated the MacOS release process, since that is the
one we have the most issues with. This PRi / commit:
- Builds darwin-amd64 and darwin-arm64 binaries of lotus, lotus-miner,
and lotus-worker
- Packages them into a universal darwin binary
- Publishes those to a release in Github based on the current tag
- Uses the binaries in the release to auto-publish and updated homebrew
configuration to filecoin-project/homebrew-lotus
- Does a `dry-run` build to produce a snapshot on release branches with
no tag
- Manually generate and upload checksums after goreleaser
2022-07-29 02:23:03 +00:00
branches :
2022-10-04 00:17:52 +00:00
only :
- /^release\/v\d+\.\d+\.\d+(-rc\d+)?$/
2023-04-25 07:54:26 +00:00
- /^ci\/.*$/
2021-03-31 23:12:33 +00:00
tags :
only :
2021-05-12 18:31:34 +00:00
- /^v\d+\.\d+\.\d+(-rc\d+)?$/
2022-10-04 00:17:52 +00:00
- build-darwin-arm64 :
name : "Build ( darwin / arm64 )"
2021-03-31 23:12:33 +00:00
filters :
2022-07-25 05:16:16 +00:00
branches :
only :
- /^release\/v\d+\.\d+\.\d+(-rc\d+)?$/
2023-04-25 07:54:26 +00:00
- /^ci\/.*$/
2021-03-31 23:12:33 +00:00
tags :
only :
2021-05-12 18:31:34 +00:00
- /^v\d+\.\d+\.\d+(-rc\d+)?$/
2022-11-07 14:39:45 +00:00
- release :
name : "Release"
requires :
- "Build ( darwin / amd64 )"
- "Build ( linux / amd64 )"
2023-04-25 08:25:40 +00:00
- "Build ( darwin / arm64 )"
2021-10-06 20:40:44 +00:00
filters :
Use goreleaser to build universal darwin binaries
This is a small refactor of our workflow to test out goreleaser, a yaml
based tool for building, packaging, and releasing go binaries on
multiple platforms. It supports building binaries for to most of the platforms we
care about, including linux and macos, and also supports publishing
those binaries automatically as releases in Github, homebrew, snap, and
even apt / deb.
If this trial goes well, I think we should eventually replace the entire
release workflow with goreleaser. For now, this test is more tightly
scoped to only automated the MacOS release process, since that is the
one we have the most issues with. This PRi / commit:
- Builds darwin-amd64 and darwin-arm64 binaries of lotus, lotus-miner,
and lotus-worker
- Packages them into a universal darwin binary
- Publishes those to a release in Github based on the current tag
- Uses the binaries in the release to auto-publish and updated homebrew
configuration to filecoin-project/homebrew-lotus
- Does a `dry-run` build to produce a snapshot on release branches with
no tag
- Manually generate and upload checksums after goreleaser
2022-07-29 02:23:03 +00:00
branches :
2023-04-25 08:25:40 +00:00
ignore :
- /^.*$/
2021-10-06 20:40:44 +00:00
tags :
only :
2022-11-07 14:39:45 +00:00
- /^v\d+\.\d+\.\d+(-rc\d+)?$/
2022-10-04 00:17:52 +00:00
- release :
2022-10-27 10:15:29 +00:00
name : "Release (dry-run)"
dry-run : true
2022-10-04 00:17:52 +00:00
requires :
- "Build ( darwin / amd64 )"
- "Build ( linux / amd64 )"
- "Build ( darwin / arm64 )"
2022-07-25 05:16:16 +00:00
filters :
branches :
only :
- /^release\/v\d+\.\d+\.\d+(-rc\d+)?$/
2023-04-25 08:25:40 +00:00
- /^ci\/.*$/
Refactor Lotus Dockerfile
This is a major refactor of our dockerfile to support the following
- The lotus image will remain as is.
- The lotus-test image will be deprecated.
- The lotus-all-in-one image will also ship with the lotus-seed and lotus-fountain binaries, which it currently does not.
- The lotus-all-in-one image will be built in debug, calibnet, and butterflynet modes in addition to the (current) mainnet mode.
- The lotus-all-in-one image will now be published regularly using the following tags:
- 1.18.0-rc1 , 1.18.0-rc1-debug, 1.18.0-rc1-calibnet, 1.18.0-rc1-butterflynet . This pattern will be used for all lotus releases, including RC releases.
- nightly, nightly-debug, nightly-calibnet, nightly-butterflynet
- stable, stable-debug, stable-calibnet, stable-butterflynet
2022-10-20 20:15:13 +00:00
- build-docker :
name : "Docker push (lotus-all-in-one / stable / mainnet)"
image : lotus-all-in-one
2022-08-05 22:13:29 +00:00
channel : stable
Refactor Lotus Dockerfile
This is a major refactor of our dockerfile to support the following
- The lotus image will remain as is.
- The lotus-test image will be deprecated.
- The lotus-all-in-one image will also ship with the lotus-seed and lotus-fountain binaries, which it currently does not.
- The lotus-all-in-one image will be built in debug, calibnet, and butterflynet modes in addition to the (current) mainnet mode.
- The lotus-all-in-one image will now be published regularly using the following tags:
- 1.18.0-rc1 , 1.18.0-rc1-debug, 1.18.0-rc1-calibnet, 1.18.0-rc1-butterflynet . This pattern will be used for all lotus releases, including RC releases.
- nightly, nightly-debug, nightly-calibnet, nightly-butterflynet
- stable, stable-debug, stable-calibnet, stable-butterflynet
2022-10-20 20:15:13 +00:00
network : mainnet
push : true
2022-08-05 22:13:29 +00:00
filters :
branches :
ignore :
- /.*/
tags :
only :
- /^v\d+\.\d+\.\d+$/
Refactor Lotus Dockerfile
This is a major refactor of our dockerfile to support the following
- The lotus image will remain as is.
- The lotus-test image will be deprecated.
- The lotus-all-in-one image will also ship with the lotus-seed and lotus-fountain binaries, which it currently does not.
- The lotus-all-in-one image will be built in debug, calibnet, and butterflynet modes in addition to the (current) mainnet mode.
- The lotus-all-in-one image will now be published regularly using the following tags:
- 1.18.0-rc1 , 1.18.0-rc1-debug, 1.18.0-rc1-calibnet, 1.18.0-rc1-butterflynet . This pattern will be used for all lotus releases, including RC releases.
- nightly, nightly-debug, nightly-calibnet, nightly-butterflynet
- stable, stable-debug, stable-calibnet, stable-butterflynet
2022-10-20 20:15:13 +00:00
- build-docker :
name : "Docker push (lotus-all-in-one / candidate / mainnet)"
image : lotus-all-in-one
2022-08-05 22:13:29 +00:00
channel : candidate
Refactor Lotus Dockerfile
This is a major refactor of our dockerfile to support the following
- The lotus image will remain as is.
- The lotus-test image will be deprecated.
- The lotus-all-in-one image will also ship with the lotus-seed and lotus-fountain binaries, which it currently does not.
- The lotus-all-in-one image will be built in debug, calibnet, and butterflynet modes in addition to the (current) mainnet mode.
- The lotus-all-in-one image will now be published regularly using the following tags:
- 1.18.0-rc1 , 1.18.0-rc1-debug, 1.18.0-rc1-calibnet, 1.18.0-rc1-butterflynet . This pattern will be used for all lotus releases, including RC releases.
- nightly, nightly-debug, nightly-calibnet, nightly-butterflynet
- stable, stable-debug, stable-calibnet, stable-butterflynet
2022-10-20 20:15:13 +00:00
network : mainnet
push : true
2022-07-27 20:06:35 +00:00
filters :
branches :
ignore :
- /.*/
tags :
only :
- /^v\d+\.\d+\.\d+-rc\d+$/
2022-12-09 18:18:25 +00:00
- build-docker :
name : "Docker push (lotus-all-in-one / edge / mainnet)"
image : lotus-all-in-one
channel : master
network : mainnet
push : true
filters :
branches :
only :
- master
Refactor Lotus Dockerfile
This is a major refactor of our dockerfile to support the following
- The lotus image will remain as is.
- The lotus-test image will be deprecated.
- The lotus-all-in-one image will also ship with the lotus-seed and lotus-fountain binaries, which it currently does not.
- The lotus-all-in-one image will be built in debug, calibnet, and butterflynet modes in addition to the (current) mainnet mode.
- The lotus-all-in-one image will now be published regularly using the following tags:
- 1.18.0-rc1 , 1.18.0-rc1-debug, 1.18.0-rc1-calibnet, 1.18.0-rc1-butterflynet . This pattern will be used for all lotus releases, including RC releases.
- nightly, nightly-debug, nightly-calibnet, nightly-butterflynet
- stable, stable-debug, stable-calibnet, stable-butterflynet
2022-10-20 20:15:13 +00:00
- build-docker :
name : "Docker build (lotus-all-in-one / mainnet)"
image : lotus-all-in-one
network : mainnet
push : false
filters :
branches :
only :
- /^release\/v\d+\.\d+\.\d+(-rc\d+)?$/
- build-docker :
name : "Docker push (lotus-all-in-one / stable / butterflynet)"
image : lotus-all-in-one
channel : stable
network : butterflynet
push : true
2021-07-20 22:23:29 +00:00
filters :
branches :
ignore :
- /.*/
tags :
only :
2022-10-04 00:17:52 +00:00
- /^v\d+\.\d+\.\d+$/
Refactor Lotus Dockerfile
This is a major refactor of our dockerfile to support the following
- The lotus image will remain as is.
- The lotus-test image will be deprecated.
- The lotus-all-in-one image will also ship with the lotus-seed and lotus-fountain binaries, which it currently does not.
- The lotus-all-in-one image will be built in debug, calibnet, and butterflynet modes in addition to the (current) mainnet mode.
- The lotus-all-in-one image will now be published regularly using the following tags:
- 1.18.0-rc1 , 1.18.0-rc1-debug, 1.18.0-rc1-calibnet, 1.18.0-rc1-butterflynet . This pattern will be used for all lotus releases, including RC releases.
- nightly, nightly-debug, nightly-calibnet, nightly-butterflynet
- stable, stable-debug, stable-calibnet, stable-butterflynet
2022-10-20 20:15:13 +00:00
- build-docker :
name : "Docker push (lotus-all-in-one / candidate / butterflynet)"
image : lotus-all-in-one
channel : candidate
network : butterflynet
push : true
2022-10-04 00:17:52 +00:00
filters :
branches :
ignore :
- /.*/
tags :
only :
- /^v\d+\.\d+\.\d+-rc\d+$/
2022-12-09 18:18:25 +00:00
- build-docker :
name : "Docker push (lotus-all-in-one / edge / butterflynet)"
image : lotus-all-in-one
channel : master
network : butterflynet
push : true
filters :
branches :
only :
- master
Refactor Lotus Dockerfile
This is a major refactor of our dockerfile to support the following
- The lotus image will remain as is.
- The lotus-test image will be deprecated.
- The lotus-all-in-one image will also ship with the lotus-seed and lotus-fountain binaries, which it currently does not.
- The lotus-all-in-one image will be built in debug, calibnet, and butterflynet modes in addition to the (current) mainnet mode.
- The lotus-all-in-one image will now be published regularly using the following tags:
- 1.18.0-rc1 , 1.18.0-rc1-debug, 1.18.0-rc1-calibnet, 1.18.0-rc1-butterflynet . This pattern will be used for all lotus releases, including RC releases.
- nightly, nightly-debug, nightly-calibnet, nightly-butterflynet
- stable, stable-debug, stable-calibnet, stable-butterflynet
2022-10-20 20:15:13 +00:00
- build-docker :
name : "Docker build (lotus-all-in-one / butterflynet)"
image : lotus-all-in-one
network : butterflynet
push : false
filters :
branches :
only :
- /^release\/v\d+\.\d+\.\d+(-rc\d+)?$/
- build-docker :
name : "Docker push (lotus-all-in-one / stable / calibnet)"
image : lotus-all-in-one
channel : stable
network : calibnet
push : true
filters :
branches :
ignore :
- /.*/
tags :
only :
- /^v\d+\.\d+\.\d+$/
- build-docker :
name : "Docker push (lotus-all-in-one / candidate / calibnet)"
image : lotus-all-in-one
channel : candidate
network : calibnet
push : true
filters :
branches :
ignore :
- /.*/
tags :
only :
- /^v\d+\.\d+\.\d+-rc\d+$/
2022-12-09 18:18:25 +00:00
- build-docker :
name : "Docker push (lotus-all-in-one / edge / calibnet)"
image : lotus-all-in-one
channel : master
network : calibnet
push : true
filters :
branches :
only :
- master
Refactor Lotus Dockerfile
This is a major refactor of our dockerfile to support the following
- The lotus image will remain as is.
- The lotus-test image will be deprecated.
- The lotus-all-in-one image will also ship with the lotus-seed and lotus-fountain binaries, which it currently does not.
- The lotus-all-in-one image will be built in debug, calibnet, and butterflynet modes in addition to the (current) mainnet mode.
- The lotus-all-in-one image will now be published regularly using the following tags:
- 1.18.0-rc1 , 1.18.0-rc1-debug, 1.18.0-rc1-calibnet, 1.18.0-rc1-butterflynet . This pattern will be used for all lotus releases, including RC releases.
- nightly, nightly-debug, nightly-calibnet, nightly-butterflynet
- stable, stable-debug, stable-calibnet, stable-butterflynet
2022-10-20 20:15:13 +00:00
- build-docker :
name : "Docker build (lotus-all-in-one / calibnet)"
image : lotus-all-in-one
network : calibnet
push : false
filters :
branches :
only :
- /^release\/v\d+\.\d+\.\d+(-rc\d+)?$/
- build-docker :
name : "Docker push (lotus-all-in-one / stable / debug)"
image : lotus-all-in-one
channel : stable
network : debug
push : true
filters :
branches :
ignore :
- /.*/
tags :
only :
- /^v\d+\.\d+\.\d+$/
- build-docker :
name : "Docker push (lotus-all-in-one / candidate / debug)"
image : lotus-all-in-one
channel : candidate
network : debug
push : true
filters :
branches :
ignore :
- /.*/
tags :
only :
- /^v\d+\.\d+\.\d+-rc\d+$/
2022-12-09 18:18:25 +00:00
- build-docker :
name : "Docker push (lotus-all-in-one / edge / debug)"
image : lotus-all-in-one
channel : master
network : debug
push : true
filters :
branches :
only :
- master
Refactor Lotus Dockerfile
This is a major refactor of our dockerfile to support the following
- The lotus image will remain as is.
- The lotus-test image will be deprecated.
- The lotus-all-in-one image will also ship with the lotus-seed and lotus-fountain binaries, which it currently does not.
- The lotus-all-in-one image will be built in debug, calibnet, and butterflynet modes in addition to the (current) mainnet mode.
- The lotus-all-in-one image will now be published regularly using the following tags:
- 1.18.0-rc1 , 1.18.0-rc1-debug, 1.18.0-rc1-calibnet, 1.18.0-rc1-butterflynet . This pattern will be used for all lotus releases, including RC releases.
- nightly, nightly-debug, nightly-calibnet, nightly-butterflynet
- stable, stable-debug, stable-calibnet, stable-butterflynet
2022-10-20 20:15:13 +00:00
- build-docker :
name : "Docker build (lotus-all-in-one / debug)"
image : lotus-all-in-one
network : debug
push : false
filters :
branches :
only :
- /^release\/v\d+\.\d+\.\d+(-rc\d+)?$/
2022-12-09 18:27:31 +00:00
- build-docker :
name : "Docker push (lotus / stable / mainnet)"
image : lotus
channel : stable
network : mainnet
push : true
filters :
branches :
ignore :
- /.*/
tags :
only :
- /^v\d+\.\d+\.\d+$/
- build-docker :
name : "Docker push (lotus / candidate / mainnet)"
image : lotus
channel : candidate
network : mainnet
push : true
filters :
branches :
ignore :
- /.*/
tags :
only :
- /^v\d+\.\d+\.\d+-rc\d+$/
- build-docker :
name : "Docker push (lotus / master / mainnet)"
image : lotus
channel : master
network : mainnet
push : true
filters :
branches :
only :
- master
- build-docker :
name : "Docker build (lotus / mainnet)"
image : lotus
network : mainnet
push : false
filters :
branches :
only :
- /^release\/v\d+\.\d+\.\d+(-rc\d+)?$/
2021-06-04 23:22:57 +00:00
2021-06-04 03:45:54 +00:00
nightly :
triggers :
- schedule :
cron : "0 0 * * *"
filters :
branches :
only :
- master
jobs :
Refactor Lotus Dockerfile
This is a major refactor of our dockerfile to support the following
- The lotus image will remain as is.
- The lotus-test image will be deprecated.
- The lotus-all-in-one image will also ship with the lotus-seed and lotus-fountain binaries, which it currently does not.
- The lotus-all-in-one image will be built in debug, calibnet, and butterflynet modes in addition to the (current) mainnet mode.
- The lotus-all-in-one image will now be published regularly using the following tags:
- 1.18.0-rc1 , 1.18.0-rc1-debug, 1.18.0-rc1-calibnet, 1.18.0-rc1-butterflynet . This pattern will be used for all lotus releases, including RC releases.
- nightly, nightly-debug, nightly-calibnet, nightly-butterflynet
- stable, stable-debug, stable-calibnet, stable-butterflynet
2022-10-20 20:15:13 +00:00
- build-docker :
name : "Docker (lotus-all-in-one / nightly / mainnet)"
image : lotus-all-in-one
channel : nightly
network : mainnet
push : true
- build-docker :
name : "Docker (lotus-all-in-one / nightly / butterflynet)"
image : lotus-all-in-one
channel : nightly
network : butterflynet
push : true
- build-docker :
name : "Docker (lotus-all-in-one / nightly / calibnet)"
image : lotus-all-in-one
channel : nightly
network : calibnet
push : true
- build-docker :
name : "Docker (lotus-all-in-one / nightly / debug)"
image : lotus-all-in-one
channel : nightly
network : debug
push : true