diff --git a/.circleci/config.yml b/.circleci/config.yml index 29a6db372..98474ab7f 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -278,11 +278,41 @@ jobs: - install-deps - prepare - run: make calibnet - - run: mkdir linux-calibnet && mv lotus lotus-miner lotus-worker linux-calibnet + - run: mkdir linux-calibrationnet && mv lotus lotus-miner lotus-worker linux-calibrationnet - persist_to_workspace: root: "." paths: - - linux-calibnet + - linux-calibrationnet + build-ntwk-butterfly: + description: | + Compile lotus binaries for the butterfly network + parameters: + <<: *test-params + executor: << parameters.executor >> + steps: + - install-deps + - prepare + - run: make butterflynet + - run: mkdir linux-butterflynet && mv lotus lotus-miner lotus-worker linux-butterflynet + - persist_to_workspace: + root: "." + paths: + - linux-butterflynet + build-ntwk-nerpa: + description: | + Compile lotus binaries for the nerpa network + parameters: + <<: *test-params + executor: << parameters.executor >> + steps: + - install-deps + - prepare + - run: make nerpanet + - run: mkdir linux-nerpanet && mv lotus lotus-miner lotus-worker linux-nerpanet + - persist_to_workspace: + root: "." + paths: + - linux-nerpanet build-lotus-soup: description: | Compile `lotus-soup` Testground test plan @@ -607,7 +637,7 @@ jobs: docker push $<>/<>:${tag} done - publish-packer: + publish-packer-mainnet: description: build and push AWS IAM and DigitalOcean droplet. executor: name: packer/default @@ -619,9 +649,42 @@ jobs: - packer/build: template: tools/packer/lotus.pkr.hcl args: "-var ci_workspace_bins=./linux -var lotus_network=mainnet -var git_tag=$CIRCLE_TAG" + publish-packer-calibrationnet: + description: build and push AWS IAM and DigitalOcean droplet. + executor: + name: packer/default + packer-version: 1.6.6 + steps: + - checkout + - attach_workspace: + at: "." - packer/build: template: tools/packer/lotus.pkr.hcl - args: "-var ci_workspace_bins=./linux-calibnet -var lotus_network=calibrationnet -var git_tag=$CIRCLE_TAG" + args: "-var ci_workspace_bins=./linux-calibrationnet -var lotus_network=calibrationnet -var git_tag=$CIRCLE_TAG" + publish-packer-butterflynet: + description: build and push AWS IAM and DigitalOcean droplet. + executor: + name: packer/default + packer-version: 1.6.6 + steps: + - checkout + - attach_workspace: + at: "." + - packer/build: + template: tools/packer/lotus.pkr.hcl + args: "-var ci_workspace_bins=./linux-butterflynet -var lotus_network=butterflynet -var git_tag=$CIRCLE_TAG" + publish-packer-nerpanet: + description: build and push AWS IAM and DigitalOcean droplet. + executor: + name: packer/default + packer-version: 1.6.6 + steps: + - checkout + - attach_workspace: + at: "." + - packer/build: + template: tools/packer/lotus.pkr.hcl + args: "-var ci_workspace_bins=./linux-nerpanet -var lotus_network=nerpanet -var git_tag=$CIRCLE_TAG" workflows: version: 2.1 @@ -682,8 +745,6 @@ workflows: test-suite-name: conformance-bleeding-edge packages: "./conformance" vectors-branch: master - - build-ntwk-calibration - - build-lotus-soup - trigger-testplans: filters: branches: @@ -697,6 +758,28 @@ workflows: tags: only: - /^v\d+\.\d+\.\d+$/ + - build-ntwk-calibration: + requires: + - test-short + filters: + tags: + only: + - /^v\d+\.\d+\.\d+$/ + - build-ntwk-butterfly: + requires: + - test-short + filters: + tags: + only: + - /^v\d+\.\d+\.\d+$/ + - build-ntwk-nerpa: + requires: + - test-short + filters: + tags: + only: + - /^v\d+\.\d+\.\d+$/ + - build-lotus-soup - build-macos: requires: - test-short @@ -723,9 +806,18 @@ workflows: path: . repo: lotus-dev tag: '${CIRCLE_SHA1:0:8}' - - publish-packer: + - publish-packer-mainnet: requires: - build-all + filters: + branches: + ignore: + - /.*/ + tags: + only: + - /^v\d+\.\d+\.\d+$/ + - publish-packer-calibrationnet: + requires: - build-ntwk-calibration filters: branches: @@ -734,4 +826,23 @@ workflows: tags: only: - /^v\d+\.\d+\.\d+$/ - + - publish-packer-butterflynet: + requires: + - build-ntwk-butterfly + filters: + branches: + ignore: + - /.*/ + tags: + only: + - /^v\d+\.\d+\.\d+$/ + - publish-packer-nerpanet: + requires: + - build-ntwk-nerpa + filters: + branches: + ignore: + - /.*/ + tags: + only: + - /^v\d+\.\d+\.\d+$/ diff --git a/tools/packer/scripts/butterflynet/lotus-init.sh b/tools/packer/scripts/butterflynet/lotus-init.sh new file mode 100755 index 000000000..f7afd4dfa --- /dev/null +++ b/tools/packer/scripts/butterflynet/lotus-init.sh @@ -0,0 +1,20 @@ +#!/usr/bin/env bash + +# This script sets up an initial configuraiton for the lotus daemon and miner +# It will only run once. + +GATE="$LOTUS_PATH"/date_initialized + +# Don't init if already initialized. +if [ -f "GATE" ]; then + echo lotus already initialized. + exit 0 +fi + +# Not importing snapshot on butterflynet +# +# echo importing minimal snapshot +# lotus daemon --import-snapshot https://fil-chain-snapshots-fallback.s3.amazonaws.com/mainnet/minimal_finality_stateroots_latest.car --halt-after-import + +# Block future inits +date > "$GATE" diff --git a/tools/packer/scripts/nerpanet/lotus-init.sh b/tools/packer/scripts/nerpanet/lotus-init.sh new file mode 100755 index 000000000..968ae395c --- /dev/null +++ b/tools/packer/scripts/nerpanet/lotus-init.sh @@ -0,0 +1,20 @@ +#!/usr/bin/env bash + +# This script sets up an initial configuraiton for the lotus daemon and miner +# It will only run once. + +GATE="$LOTUS_PATH"/date_initialized + +# Don't init if already initialized. +if [ -f "GATE" ]; then + echo lotus already initialized. + exit 0 +fi + +# Not importing snapshot on nerpanet +# +# echo importing minimal snapshot +# lotus daemon --import-snapshot https://fil-chain-snapshots-fallback.s3.amazonaws.com/mainnet/minimal_finality_stateroots_latest.car --halt-after-import + +# Block future inits +date > "$GATE" diff --git a/tools/packer/setup.sh b/tools/packer/setup.sh index 04d06a7d1..6c0742254 100644 --- a/tools/packer/setup.sh +++ b/tools/packer/setup.sh @@ -60,7 +60,7 @@ systemctl daemon-reload systemctl enable lotus-daemon # Setup firewall -ufw enable +yes | ufw enable ufw default deny incoming ufw default allow outgoing ufw allow ssh