2019-07-01 20:17:00 +00:00
version : 2.1
orbs :
2021-01-20 18:59:47 +00:00
aws-cli : circleci/aws-cli@1.3.2
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 : circleci/docker@2.1.4
2019-07-01 20:17:00 +00:00
2019-09-23 11:43:32 +00:00
executors :
golang :
docker :
2022-10-18 15:19:49 +00:00
# Must match GO_VERSION_MIN in project root
2022-11-23 18:51:48 +00:00
- image : cimg/go:1.18.8
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 :
prepare :
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
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-10-14 14:13:11 +00:00
- run :
name : Check Go Version
command : |
v=`go version | { read _ _ v _; echo ${v#go}; }`
2022-10-18 15:19:49 +00:00
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."
2022-10-14 14:13:11 +00:00
exit 1
fi
2019-12-04 01:13:27 +00:00
- run : sudo apt-get update
2020-10-28 14:35:40 +00:00
- run : sudo apt-get install ocl-icd-opencl-dev libhwloc-dev
2022-10-04 00:17:52 +00:00
- run : sudo apt-get install python-is-python3
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
2019-07-08 14:31:43 +00:00
- run : git submodule sync
- run : git submodule update --init
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'
2019-09-06 23:27:16 +00:00
paths :
- /var/tmp/filecoin-proof-parameters/
2020-06-12 05:13:11 +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-03-31 05:27:18 +00:00
2019-07-02 09:19:48 +00:00
jobs :
mod-tidy-check :
2019-09-23 11:43:32 +00:00
executor : golang
2019-07-02 09:19:48 +00:00
steps :
2019-07-08 14:47:19 +00:00
- prepare
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.
2020-08-26 15:03:44 +00:00
parameters : &test-params
2019-07-08 14:31:43 +00:00
executor :
type : executor
2019-09-23 11:43:32 +00:00
default : golang
2019-07-08 14:31:43 +00:00
go-test-flags :
type : string
2019-12-05 12:28:44 +00:00
default : "-timeout 30m"
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"
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.
gotestsum-format :
type : string
2021-06-22 20:32:10 +00:00
default : standard-verbose
2019-07-08 14:31:43 +00:00
description : gotestsum format. https://github.com/gotestyourself/gotestsum#format
executor : << parameters.executor >>
steps :
- prepare
2019-08-29 19:08:12 +00:00
- run :
2019-10-04 20:10:49 +00:00
command : make deps lotus
2019-08-29 19:08:12 +00:00
no_output_timeout : 30m
2019-10-04 20:10:49 +00:00
- 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
gotestsum \
--format << parameters.gotestsum-format >> \
2021-06-22 20:03:05 +00:00
--junitfile /tmp/test-reports/<< parameters.suite >>/junit.xml \
--jsonfile /tmp/test-artifacts/<< parameters.suite >>.json \
2020-07-20 23:07:08 +00:00
-- \
2019-07-08 14:31:43 +00:00
<< parameters.go-test-flags >> \
2021-06-22 20:03:05 +00:00
<< parameters.target >>
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 :
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.
executor : << parameters.executor >>
2020-08-21 15:41:35 +00:00
steps :
- prepare
- run :
command : make deps lotus
no_output_timeout : 30m
- 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
2021-01-25 10:10:07 +00:00
steps :
- prepare
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/
2021-02-17 08:49:07 +00:00
- persist_to_workspace :
2022-10-04 00:17:52 +00:00
root : /tmp/workspace
2021-02-17 08:49:07 +00:00
paths :
2022-10-04 00:17:52 +00:00
- 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"
2021-03-31 21:09:01 +00:00
steps :
2022-10-04 00:17:52 +00:00
- prepare :
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/
2021-03-31 21:09:01 +00:00
- persist_to_workspace :
2022-10-04 00:17:52 +00:00
root : /tmp/workspace
2021-03-31 21:09:01 +00:00
paths :
2022-10-04 00:17:52 +00:00
- 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
2020-11-06 19:39:15 +00:00
steps :
2022-10-04 00:17:52 +00:00
- run : echo 'export PATH=/opt/homebrew/bin:"$PATH"' >> "$BASH_ENV"
2019-12-04 01:13:27 +00:00
- prepare :
linux : false
darwin : true
2022-12-13 23:49:23 +00:00
darwin-architecture : arm64
2022-10-27 10:15:29 +00:00
- run : |
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
2020-12-07 14:26:29 +00:00
- run :
2022-11-07 16:13:00 +00:00
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
2020-11-06 19:39:15 +00:00
- run :
2022-10-04 00:17:52 +00:00
command : make clean
when : always
2020-11-06 19:39:15 +00:00
- run :
2022-10-27 10:15:29 +00:00
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
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
parameters :
2022-10-27 10:15:29 +00:00
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
default : false
2022-10-27 10:15:29 +00:00
description : should this release actually publish it's artifacts?
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
type : boolean
2019-12-04 01:13:27 +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
2021-06-03 07:05:43 +00:00
build-appimage :
machine :
2022-01-14 11:01:12 +00:00
image : ubuntu-2004:202111-02
2021-06-03 07:05:43 +00:00
steps :
- checkout
- attach_workspace :
2022-11-07 16:09:30 +00:00
at : /tmp/workspace
2022-09-27 19:59:11 +00:00
- run :
name : Update Go
command : |
2022-10-14 13:23:48 +00:00
sudo rm -rf /usr/local/go && \
2022-10-18 15:19:49 +00:00
curl -L https://golang.org/dl/go`cat GO_VERSION_MIN`.linux-amd64.tar.gz -o /tmp/go.tar.gz && \
2022-09-27 19:59:11 +00:00
sudo tar -C /usr/local -xvf /tmp/go.tar.gz
- run : go version
2021-06-03 07:05:43 +00:00
- run :
name : install appimage-builder
command : |
2022-01-14 11:01:12 +00:00
# appimage-builder requires /dev/snd to exist. It creates containers during the testing phase
# that pass sound devices from the host to the testing container. (hard coded!)
# https://github.com/AppImageCrafters/appimage-builder/blob/master/appimagebuilder/modules/test/execution_test.py#L54
# Circleci doesn't provide a working sound device; this is enough to fake it.
if [ ! -e /dev/snd ]
then
sudo mkdir /dev/snd
sudo mknod /dev/snd/ControlC0 c 1 2
fi
2021-06-03 07:05:43 +00:00
# docs: https://appimage-builder.readthedocs.io/en/latest/intro/install.html
sudo apt update
sudo apt install -y python3-pip python3-setuptools patchelf desktop-file-utils libgdk-pixbuf2.0-dev fakeroot strace
sudo curl -Lo /usr/local/bin/appimagetool https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage
sudo chmod +x /usr/local/bin/appimagetool
sudo pip3 install appimage-builder
- run :
name : install lotus dependencies
command : sudo apt install ocl-icd-opencl-dev libhwloc-dev
- run :
name : build appimage
command : |
sed -i "s/version: latest/version: ${CIRCLE_TAG:-latest}/" AppImageBuilder.yml
make appimage
2022-11-07 16:09:30 +00:00
- run : |
mkdir -p /tmp/workspace/appimage && \
mv Lotus-*.AppImage /tmp/workspace/appimage/
2021-06-03 07:05:43 +00:00
- persist_to_workspace :
2022-11-07 16:09:30 +00:00
root : /tmp/workspace
2021-06-03 07:05:43 +00:00
paths :
- appimage
2021-06-23 17:24:36 +00:00
2020-03-09 06:56:11 +00:00
gofmt :
executor : golang
steps :
- prepare
- 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
steps :
- prepare
2020-08-24 10:28:22 +00:00
- run : make deps
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
- run : git --no-pager diff
- run : git --no-pager diff --quiet
- run : make docsgen-cli
2020-08-24 10:20:23 +00:00
- run : git --no-pager diff
- run : git --no-pager diff --quiet
docs-check :
executor : golang
steps :
- prepare
2021-03-25 14:19:22 +00:00
- run : go install golang.org/x/tools/cmd/goimports
2021-03-23 09:37:06 +00:00
- run : zcat build/openrpc/full.json.gz | jq > ../pre-openrpc-full
- run : zcat build/openrpc/miner.json.gz | jq > ../pre-openrpc-miner
- run : zcat build/openrpc/worker.json.gz | jq > ../pre-openrpc-worker
2020-11-12 09:42:06 +00:00
- run : make deps
2020-08-24 10:20:23 +00:00
- run : make docsgen
2021-03-23 09:37:06 +00:00
- run : zcat build/openrpc/full.json.gz | jq > ../post-openrpc-full
- run : zcat build/openrpc/miner.json.gz | jq > ../post-openrpc-miner
- run : zcat build/openrpc/worker.json.gz | jq > ../post-openrpc-worker
2020-08-24 10:20:23 +00:00
- run : git --no-pager diff
2021-03-23 09:37:06 +00:00
- run : diff ../pre-openrpc-full ../post-openrpc-full
- run : diff ../pre-openrpc-miner ../post-openrpc-miner
- run : diff ../pre-openrpc-worker ../post-openrpc-worker
2020-08-24 10:20:23 +00:00
- run : git --no-pager diff --quiet
2019-07-10 13:35:00 +00:00
lint : &lint
2019-07-08 14:31:43 +00:00
description : |
Run golangci-lint.
parameters :
executor :
type : executor
2019-09-23 11:43:32 +00:00
default : golang
2019-07-08 14:31:43 +00:00
concurrency :
type : string
default : '2'
description : |
Concurrency used to run linters. Defaults to 2 because NumCPU is not
aware of container CPU limits.
2019-07-08 15:36:24 +00:00
args :
type : string
default : ''
description : |
Arguments to pass to golangci-lint
2019-07-08 14:31:43 +00:00
executor : << parameters.executor >>
steps :
- prepare
2019-08-29 19:08:12 +00:00
- run :
2019-08-30 11:26:20 +00:00
command : make deps
no_output_timeout : 30m
2019-07-08 14:31:43 +00:00
- run :
name : Lint
command : |
2022-04-19 16:40:16 +00:00
golangci-lint run -v --timeout 2m \
2019-07-08 15:36:24 +00:00
--concurrency << parameters.concurrency >> << parameters.args >>
2019-07-10 13:35:00 +00:00
lint-all :
<< : *lint
2019-07-08 14:31:43 +00:00
2020-02-12 21:28:37 +00:00
publish :
description : publish binary artifacts
executor : ubuntu
2022-07-25 05:16:16 +00:00
parameters :
linux :
default : false
description : publish linux binaries?
type : boolean
appimage :
default : false
description : publish appimage binaries?
type : boolean
2020-02-12 21:28:37 +00:00
steps :
- run :
name : Install git jq curl
2022-11-07 14:39:45 +00:00
command : apt update && apt install -y git jq curl sudo
2020-02-12 21:28:37 +00:00
- checkout
- git_fetch_all_tags
- checkout
- install_ipfs
- attach_workspace :
2022-11-07 16:09:30 +00:00
at : /tmp/workspace
2022-07-25 05:16:16 +00:00
- when :
condition : << parameters.linux >>
steps :
- run : ./scripts/build-arch-bundle.sh linux
- run : ./scripts/publish-arch-release.sh linux
- when :
condition : << parameters.appimage >>
steps :
- run : ./scripts/build-appimage-bundle.sh
- run : ./scripts/publish-arch-release.sh appimage
2020-02-12 21:28:37 +00:00
2021-06-04 03:45:54 +00:00
publish-snapcraft :
description : build and push snapcraft
machine :
image : ubuntu-2004:202104-01
resource_class : 2xlarge
parameters :
channel :
type : string
default : "edge"
description : snapcraft channel
2022-08-05 22:13:29 +00:00
snap-name :
type : string
default : 'lotus-filecoin'
description : name of snap in snap store
2021-06-04 03:45:54 +00:00
steps :
- checkout
- run :
2022-08-05 22:13:29 +00:00
name : Install snapcraft
2021-06-04 03:45:54 +00:00
command : sudo snap install snapcraft --classic
- run :
2022-08-05 22:13:29 +00:00
name : Build << parameters.snap-name >> snap
2022-07-27 20:15:01 +00:00
command : |
2022-08-05 22:13:29 +00:00
if [ "<< parameters.snap-name >>" != 'lotus-filecoin' ]; then
cat snap/snapcraft.yaml | sed 's/lotus-filecoin/lotus/' > edited-snapcraft.yaml
mv edited-snapcraft.yaml snap/snapcraft.yaml
fi
snapcraft --use-lxd --debug
2022-08-03 19:15:53 +00:00
- run :
2022-08-05 22:13:29 +00:00
name : Publish snap to << parameters.channel >> channel
2022-08-04 04:29:35 +00:00
shell : /bin/bash -o pipefail
2022-08-03 19:15:53 +00:00
command : |
2022-08-05 22:13:29 +00:00
snapcraft upload *.snap --release << parameters.channel >>
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
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 :
condition : <parameters.push>>
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
2022-12-16 00:51:03 +00:00
docker image tag filecoin/<<parameters.image>>:<<parameters.channel>>> filecoin/<<parameters.image>>:"${CIRCLE_SHA:0:7}"
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 : |
2022-12-09 18:18:08 +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 :
2019-11-08 20:39:40 +00:00
version : 2.1
2019-07-01 20:17:00 +00:00
ci :
jobs :
2020-09-14 12:18:53 +00:00
- lint-all :
concurrency : "16" # expend all docker 2xlarge CPUs.
2020-02-12 21:28:37 +00:00
- mod-tidy-check
2020-03-09 06:56:11 +00:00
- gofmt
2021-04-29 18:01:23 +00:00
- gen-check
2020-08-24 10:20:23 +00:00
- docs-check
2020-06-01 12:59:51 +00:00
- test :
2021-06-22 20:03:05 +00:00
name : test-itest-api
suite : itest-api
target : "./itests/api_test.go"
- test :
name : test-itest-batch_deal
suite : itest-batch_deal
target : "./itests/batch_deal_test.go"
- test :
name : test-itest-ccupgrade
suite : itest-ccupgrade
target : "./itests/ccupgrade_test.go"
- test :
name : test-itest-cli
suite : itest-cli
target : "./itests/cli_test.go"
- test :
name : test-itest-deadlines
suite : itest-deadlines
target : "./itests/deadlines_test.go"
2021-08-20 14:53:24 +00:00
- test :
name : test-itest-deals_512mb
suite : itest-deals_512mb
target : "./itests/deals_512mb_test.go"
2021-09-20 10:08:43 +00:00
- test :
name : test-itest-deals_anycid
suite : itest-deals_anycid
target : "./itests/deals_anycid_test.go"
2021-06-23 17:13:29 +00:00
- test :
name : test-itest-deals_concurrent
suite : itest-deals_concurrent
target : "./itests/deals_concurrent_test.go"
2022-05-30 14:29:05 +00:00
- test :
name : test-itest-deals_invalid_utf8_label
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
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
suite : itest-deals_offline
target : "./itests/deals_offline_test.go"
2021-07-24 02:06:02 +00:00
- test :
name : test-itest-deals_padding
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
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
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
suite : itest-deals_power
target : "./itests/deals_power_test.go"
- test :
name : test-itest-deals_pricing
suite : itest-deals_pricing
target : "./itests/deals_pricing_test.go"
- test :
name : test-itest-deals_publish
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
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
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
suite : itest-deals
target : "./itests/deals_test.go"
2022-08-17 18:02:53 +00:00
- test :
name : test-itest-dup_mpool_messages
suite : itest-dup_mpool_messages
target : "./itests/dup_mpool_messages_test.go"
2022-12-16 21:35:43 +00:00
- test :
name : test-itest-eth_account_abstraction
suite : itest-eth_account_abstraction
target : "./itests/eth_account_abstraction_test.go"
2022-12-21 20:12:07 +00:00
- test :
name : test-itest-eth_deploy
suite : itest-eth_deploy
target : "./itests/eth_deploy_test.go"
2022-11-15 18:08:45 +00:00
- test :
name : test-itest-eth_filter
suite : itest-eth_filter
target : "./itests/eth_filter_test.go"
2022-12-16 21:35:43 +00:00
2022-12-21 17:51:22 +00:00
- test :
name : test-itest-fevm_address
suite : itest-fevm_address
target : "./itests/fevm_address_test.go"
2022-11-15 15:48:47 +00:00
- test :
name : test-itest-fevm_events
suite : itest-fevm_events
target : "./itests/fevm_events_test.go"
2022-12-16 21:35:43 +00:00
2022-11-14 19:06:55 +00:00
- test :
name : test-itest-fevm
suite : itest-fevm
target : "./itests/fevm_test.go"
2022-07-07 20:06:51 +00:00
- test :
name : test-itest-gas_estimation
suite : itest-gas_estimation
target : "./itests/gas_estimation_test.go"
2021-06-22 20:03:05 +00:00
- test :
name : test-itest-gateway
suite : itest-gateway
target : "./itests/gateway_test.go"
2021-07-06 05:34:54 +00:00
- test :
name : test-itest-get_messages_in_ts
suite : itest-get_messages_in_ts
target : "./itests/get_messages_in_ts_test.go"
2022-06-07 03:14:16 +00:00
- test :
name : test-itest-lite_migration
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
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
suite : itest-mempool
target : "./itests/mempool_test.go"
2022-09-13 20:52:47 +00:00
- test :
2022-10-25 02:33:19 +00:00
name : test-itest-migration_nv17
suite : itest-migration_nv17
target : "./itests/migration_nv17_test.go"
2022-12-22 00:59:34 +00:00
- test :
name : test-itest-migration_nv18
suite : itest-migration_nv18
target : "./itests/migration_nv18_test.go"
2022-09-13 20:52:47 +00:00
- test :
name : test-itest-mpool_msg_uuid
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
suite : itest-mpool_push_with_uuid
target : "./itests/mpool_push_with_uuid_test.go"
2021-06-22 20:03:05 +00:00
- test :
name : test-itest-multisig
suite : itest-multisig
target : "./itests/multisig_test.go"
2022-06-23 18:02:10 +00:00
- test :
name : test-itest-net
suite : itest-net
target : "./itests/net_test.go"
2021-07-02 16:04:57 +00:00
- test :
name : test-itest-nonce
suite : itest-nonce
target : "./itests/nonce_test.go"
2021-07-12 16:46:05 +00:00
2022-07-15 13:49:23 +00:00
- test :
name : test-itest-path_detach_redeclare
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
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
suite : itest-paych_api
target : "./itests/paych_api_test.go"
- test :
name : test-itest-paych_cli
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
suite : itest-pending_deal_allocation
target : "./itests/pending_deal_allocation_test.go"
2022-10-05 18:43:16 +00:00
2022-09-08 18:20:05 +00:00
- test :
name : test-itest-raft_messagesigner
suite : itest-raft_messagesigner
target : "./itests/raft_messagesigner_test.go"
2022-10-26 16:18:51 +00:00
- test :
name : test-itest-remove_verifreg_datacap
suite : itest-remove_verifreg_datacap
target : "./itests/remove_verifreg_datacap_test.go"
2021-06-22 20:03:05 +00:00
- test :
name : test-itest-sdr_upgrade
suite : itest-sdr_upgrade
target : "./itests/sdr_upgrade_test.go"
2021-07-01 19:07:53 +00:00
- test :
name : test-itest-sector_finalize_early
suite : itest-sector_finalize_early
target : "./itests/sector_finalize_early_test.go"
2021-07-12 16:46:05 +00:00
2022-03-17 20:21:52 +00:00
- test :
2022-09-09 10:22:21 +00:00
name : test-itest-sector_import_full
suite : itest-sector_import_full
target : "./itests/sector_import_full_test.go"
- test :
name : test-itest-sector_import_simple
suite : itest-sector_import_simple
target : "./itests/sector_import_simple_test.go"
2022-09-05 13:28:36 +00:00
- test :
2022-03-17 20:21:52 +00:00
name : test-itest-sector_make_cc_avail
suite : itest-sector_make_cc_avail
target : "./itests/sector_make_cc_avail_test.go"
2021-06-29 16:17:08 +00:00
- test :
name : test-itest-sector_miner_collateral
suite : itest-sector_miner_collateral
target : "./itests/sector_miner_collateral_test.go"
2021-07-12 16:46:05 +00:00
2022-08-22 20:20:40 +00:00
- test :
name : test-itest-sector_numassign
suite : itest-sector_numassign
target : "./itests/sector_numassign_test.go"
2021-06-22 20:03:05 +00:00
- test :
name : test-itest-sector_pledge
suite : itest-sector_pledge
target : "./itests/sector_pledge_test.go"
2022-03-17 20:21:52 +00:00
- test :
name : test-itest-sector_prefer_no_upgrade
suite : itest-sector_prefer_no_upgrade
target : "./itests/sector_prefer_no_upgrade_test.go"
- test :
name : test-itest-sector_revert_available
suite : itest-sector_revert_available
target : "./itests/sector_revert_available_test.go"
2021-06-22 20:03:05 +00:00
- test :
name : test-itest-sector_terminate
suite : itest-sector_terminate
target : "./itests/sector_terminate_test.go"
2022-11-21 20:23:44 +00:00
- test :
name : test-itest-sector_unseal
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
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
suite : itest-splitstore
target : "./itests/splitstore_test.go"
2021-06-22 20:03:05 +00:00
- test :
name : test-itest-tape
suite : itest-tape
target : "./itests/tape_test.go"
- test :
name : test-itest-verifreg
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
suite : itest-wdpost_config
target : "./itests/wdpost_config_test.go"
2022-07-04 14:15:23 +00:00
2021-06-22 20:03:05 +00:00
- test :
name : test-itest-wdpost_dispute
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
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
suite : itest-wdpost
target : "./itests/wdpost_test.go"
2021-06-23 15:50:11 +00:00
2022-07-04 14:15:23 +00:00
- test :
name : test-itest-wdpost_worker_config
suite : itest-wdpost_worker_config
target : "./itests/wdpost_worker_config_test.go"
2022-01-14 13:11:04 +00:00
- test :
name : test-itest-worker
suite : itest-worker
target : "./itests/worker_test.go"
2022-11-15 21:22:25 +00:00
- test :
name : test-itest-worker_upgrade
suite : itest-worker_upgrade
target : "./itests/worker_upgrade_test.go"
2021-06-22 20:03:05 +00:00
- test :
name : test-unit-cli
suite : utest-unit-cli
target : "./cli/... ./cmd/... ./api/..."
- test :
name : test-unit-node
suite : utest-unit-node
target : "./node/..."
- test :
name : test-unit-rest
suite : utest-unit-rest
2021-06-23 16:08:46 +00:00
target : "./api/... ./blockstore/... ./build/... ./chain/... ./cli/... ./cmd/... ./conformance/... ./extern/... ./gateway/... ./journal/... ./lib/... ./markets/... ./node/... ./paychmgr/... ./storage/... ./tools/..."
2021-06-22 20:03:05 +00:00
- test :
name : test-unit-storage
suite : utest-unit-storage
target : "./storage/... ./extern/..."
- test :
2021-06-15 15:46:06 +00:00
go-test-flags : "-run=TestMulticoreSDR"
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 :
2021-06-22 20:03:05 +00:00
suite : conformance
target : "./conformance"
2020-08-26 15:03:44 +00:00
- test-conformance :
name : test-conformance-bleeding-edge
2021-06-22 20:03:05 +00:00
suite : conformance-bleeding-edge
target : "./conformance"
2022-01-09 04:03:07 +00:00
vectors-branch : specs-actors-v7
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 )"
2020-11-23 19:04:24 +00:00
filters :
branches :
only :
2022-10-04 00:17:52 +00:00
- /^release\/v\d+\.\d+\.\d+(-rc\d+)?$/
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+)?$/
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+)?$/
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 )"
- "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 :
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+)?$/
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
- build-appimage :
2022-10-04 00:17:52 +00:00
name : "Build AppImage"
2022-01-14 11:01:12 +00:00
filters :
branches :
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
only :
- /^release\/v\d+\.\d+\.\d+(-rc\d+)?$/
2022-01-14 11:01:12 +00:00
tags :
only :
- /^v\d+\.\d+\.\d+(-rc\d+)?$/
2020-02-12 21:28:37 +00:00
- publish :
2022-10-04 00:17:52 +00:00
name : "Publish AppImage"
2022-07-25 05:16:16 +00:00
appimage : true
requires :
2022-10-04 00:17:52 +00:00
- "Build AppImage"
2022-07-25 05:16:16 +00:00
filters :
branches :
ignore :
- /.*/
tags :
only :
- /^v\d+\.\d+\.\d+(-rc\d+)?$/
2021-06-04 03:45:54 +00:00
- publish-snapcraft :
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
name : "Publish Snapcraft (lotus / stable)"
channel : stable
snap-name : lotus
2021-06-03 17:44:48 +00:00
filters :
branches :
ignore :
- /.*/
tags :
only :
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
- /^v\d+\.\d+\.\d+$/
2021-06-04 03:45:54 +00:00
- publish-snapcraft :
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
name : "Publish Snapcraft (lotus / candidate)"
channel : candidate
snap-name : lotus
filters :
branches :
ignore :
- /.*/
tags :
only :
- /^v\d+\.\d+\.\d+-rc\d+$/
- publish-snapcraft :
name : "Publish Snapcraft (lotus-filecoin / stable)"
2021-06-04 03:45:54 +00:00
channel : stable
2022-08-05 22:13:29 +00:00
snap-name : lotus-filecoin
2022-03-31 05:53:57 +00:00
filters :
branches :
ignore :
- /.*/
tags :
only :
2022-07-27 20:06:35 +00:00
- /^v\d+\.\d+\.\d+$/
- publish-snapcraft :
2022-08-05 22:13:29 +00:00
name : "Publish Snapcraft (lotus-filecoin / candidate)"
2022-07-27 20:06:35 +00:00
channel : candidate
2022-08-05 22:13:29 +00:00
snap-name : lotus-filecoin
filters :
branches :
ignore :
- /.*/
tags :
only :
- /^v\d+\.\d+\.\d+-rc\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 / 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 :
- publish-snapcraft :
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
name : "Publish Snapcraft (lotus / edge)"
2022-08-05 22:13:29 +00:00
channel : edge
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
snap-name : lotus
2022-08-05 22:13:29 +00:00
- publish-snapcraft :
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
name : "Publish Snapcraft (lotus-filecoin / edge)"
2021-06-04 03:45:54 +00:00
channel : edge
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
snap-name : lotus-filecoin
- 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