mirror of
https://github.com/cosmos/cosmjs.git
synced 2025-03-10 21:49:15 +00:00
680 lines
28 KiB
YAML
680 lines
28 KiB
YAML
version: 2.1
|
|
|
|
orbs:
|
|
browser-tools: circleci/browser-tools@1.2.2
|
|
|
|
workflows:
|
|
version: 2
|
|
workflow:
|
|
# Keep those job names in sync with .mergify.yml
|
|
jobs:
|
|
- build
|
|
- docs-build:
|
|
requires:
|
|
- build
|
|
- docs-deploy:
|
|
requires:
|
|
- docs-build
|
|
- build
|
|
- lint
|
|
filters:
|
|
branches:
|
|
only: main
|
|
- lint:
|
|
requires:
|
|
- build
|
|
- test-backends:
|
|
requires:
|
|
- build
|
|
matrix:
|
|
parameters:
|
|
simapp: ["simapp44", "simapp46", "simapp47", "simapp50"]
|
|
- test-node:
|
|
requires:
|
|
- build
|
|
matrix:
|
|
parameters:
|
|
node-version: ["18", "20"]
|
|
- test-chrome:
|
|
requires:
|
|
- build
|
|
- coverage:
|
|
requires:
|
|
- build
|
|
- faucet-docker
|
|
|
|
jobs:
|
|
build:
|
|
docker:
|
|
- image: cimg/node:18.20
|
|
steps:
|
|
- run:
|
|
name: Install Git Large File Storage (LFS)
|
|
command: sudo apt-get install git-lfs
|
|
- checkout
|
|
- run:
|
|
name: Version information
|
|
command: echo "node $(node --version)"; echo "yarn $(yarn --version)"
|
|
- run:
|
|
name: Install libusb
|
|
command: |
|
|
sudo apt update
|
|
sudo apt install libusb-1.0-0-dev
|
|
- run:
|
|
name: Install Dependencies
|
|
command: yarn install --immutable --immutable-cache --check-cache
|
|
- run:
|
|
command: yarn build
|
|
- persist_to_workspace:
|
|
root: .
|
|
paths:
|
|
- packages/*/build/*
|
|
test-backends:
|
|
parameters:
|
|
simapp:
|
|
type: string
|
|
machine:
|
|
# We can't use a containerized environment since it requires remote docker to start custom containers.
|
|
# However, we can't access the remote docker's network from the primary container. This is a
|
|
# feature, as documented in https://circleci.com/docs/2.0/building-docker-images/#separation-of-environments
|
|
# As a consequence, we cannot use the circleci CLI for this job because "You cannot use the machine
|
|
# executor in local jobs." (https://circleci.com/docs/2.0/local-cli/#limitations-of-running-jobs-locally)
|
|
#
|
|
# Available images: https://circleci.com/developer/machine/image/ubuntu-2004
|
|
image: ubuntu-2004:2023.10.1
|
|
steps:
|
|
- run:
|
|
name: Install Git Large File Storage (LFS)
|
|
# In the current image, `sudo apt install git-lfs` requires `sudo apt update` which is too slow
|
|
command: |
|
|
wget -O "$HOME/git-lfs.deb" https://packagecloud.io/github/git-lfs/packages/ubuntu/focal/git-lfs_2.13.3_amd64.deb/download.deb
|
|
sudo dpkg -i "$HOME/git-lfs.deb"
|
|
- checkout
|
|
- run: # start early for less wait time below
|
|
name: Start wasmd
|
|
command: ./scripts/wasmd/start.sh
|
|
background: true
|
|
- run:
|
|
name: Start simapp
|
|
command: ./scripts/<< parameters.simapp >>/start.sh
|
|
background: true
|
|
- run:
|
|
name: Start slow simapp
|
|
command: ./scripts/<< parameters.simapp >>/slow_start.sh
|
|
background: true
|
|
- run:
|
|
name: Start Tendermint blockchains
|
|
command: ./scripts/tendermint/all_start.sh
|
|
background: true
|
|
- attach_workspace:
|
|
at: /tmp/builds
|
|
- run:
|
|
name: Merge build folders into project (merge with hardlinks)
|
|
command: cp --recursive --link /tmp/builds/* .
|
|
- run:
|
|
# The images comes with preinstalled nvm, which does not work well with non-login shells
|
|
name: Uninstall nvm
|
|
# Moving to trash is faster than deleting (gvfs-trash is not installed on this image)
|
|
command: |
|
|
nvm --version && nvm ls
|
|
mkdir -p ~/.local/share/Trash && mv "$NVM_DIR" ~/.npm ~/.local/share/Trash
|
|
- run:
|
|
name: Install nodejs
|
|
# In the current image, `sudo apt install nodejs` requires `sudo apt update` which is too slow.
|
|
# Follow instructions of https://deb.nodesource.com/ except the last step. Then run
|
|
# `apt download --print-uris nodejs` to get a download URL.
|
|
command: |
|
|
wget -O "$HOME/nodejs.deb" https://deb.nodesource.com/node_18.x/pool/main/n/nodejs/nodejs_18.17.1-1nodesource1_amd64.deb
|
|
sudo dpkg -i "$HOME/nodejs.deb"
|
|
- run:
|
|
name: Install yarn
|
|
command: |
|
|
wget -O "$HOME/yarn.deb" https://dl.yarnpkg.com/debian/pool/main/y/yarn/yarn_1.22.15_all.deb
|
|
sudo dpkg -i "$HOME/yarn.deb"
|
|
- run:
|
|
name: Version information
|
|
command: echo "node $(node --version)"; echo "yarn $(yarn --version)"
|
|
- run:
|
|
name: Install libusb
|
|
# In the current image, `sudo apt install libusb-1.0-0-dev` requires `sudo apt update` which is too slow
|
|
command: |
|
|
wget -O "$HOME/libusb.deb" http://de.archive.ubuntu.com/ubuntu/pool/main/libu/libusb-1.0/libusb-1.0-0-dev_1.0.23-2build1_amd64.deb
|
|
sudo dpkg -i "$HOME/libusb.deb"
|
|
- run:
|
|
name: Install libudev-dev
|
|
# See https://packages.ubuntu.com/focal/libudev-dev (Ubuntu 20.04)
|
|
command: |
|
|
wget -O "$HOME/libudev1.deb" http://security.ubuntu.com/ubuntu/pool/main/s/systemd/libudev1_245.4-4ubuntu3.20_amd64.deb
|
|
wget -O "$HOME/libudev-dev.deb" http://security.ubuntu.com/ubuntu/pool/main/s/systemd/libudev-dev_245.4-4ubuntu3.20_amd64.deb
|
|
sudo dpkg -i "$HOME/libudev1.deb"
|
|
sudo dpkg -i "$HOME/libudev-dev.deb"
|
|
- run:
|
|
name: Install Dependencies
|
|
command: yarn install --immutable --immutable-cache --check-cache
|
|
- run:
|
|
name: Initialize wasmd (deploy contracts and friends)
|
|
command: ./scripts/wasmd/init.sh
|
|
- run:
|
|
name: Start socket server
|
|
command: ./scripts/socketserver/start.sh
|
|
- run:
|
|
name: Start http server
|
|
command: ./scripts/httpserver/start.sh
|
|
- run:
|
|
name: Run tests
|
|
environment:
|
|
HTTPSERVER_ENABLED: 1
|
|
TENDERMINT_ENABLED: 1
|
|
SOCKETSERVER_ENABLED: 1
|
|
SKIP_BUILD: 1
|
|
WASMD_ENABLED: 1
|
|
command: |
|
|
[ "<< parameters.simapp >>" = "simapp44" ] && export SIMAPP44_ENABLED=1 SLOW_SIMAPP44_ENABLED=1
|
|
[ "<< parameters.simapp >>" = "simapp46" ] && export SIMAPP46_ENABLED=1 SLOW_SIMAPP46_ENABLED=1
|
|
[ "<< parameters.simapp >>" = "simapp47" ] && export SIMAPP47_ENABLED=1 SLOW_SIMAPP47_ENABLED=1
|
|
[ "<< parameters.simapp >>" = "simapp50" ] && export SIMAPP50_ENABLED=1 SLOW_SIMAPP50_ENABLED=1
|
|
yarn test --stream
|
|
- run:
|
|
name: Run CLI selftest
|
|
working_directory: packages/cli
|
|
environment:
|
|
SKIP_BUILD: 1
|
|
command: yarn selftest
|
|
- run:
|
|
name: Run CLI examples
|
|
working_directory: packages/cli
|
|
environment:
|
|
HTTPSERVER_ENABLED: 1
|
|
TENDERMINT_ENABLED: 1
|
|
SOCKETSERVER_ENABLED: 1
|
|
SKIP_BUILD: 1
|
|
WASMD_ENABLED: 1
|
|
command: |
|
|
[ "<< parameters.simapp >>" = "simapp44" ] && export SIMAPP44_ENABLED=1 SLOW_SIMAPP44_ENABLED=1
|
|
[ "<< parameters.simapp >>" = "simapp46" ] && export SIMAPP46_ENABLED=1 SLOW_SIMAPP46_ENABLED=1
|
|
[ "<< parameters.simapp >>" = "simapp47" ] && export SIMAPP47_ENABLED=1 SLOW_SIMAPP47_ENABLED=1
|
|
[ "<< parameters.simapp >>" = "simapp50" ] && export SIMAPP50_ENABLED=1 SLOW_SIMAPP50_ENABLED=1
|
|
./run_examples.sh
|
|
- run:
|
|
name: Stop chains
|
|
command: |
|
|
./scripts/httpserver/stop.sh
|
|
./scripts/socketserver/stop.sh
|
|
./scripts/tendermint/all_stop.sh
|
|
./scripts/<< parameters.simapp >>/stop.sh
|
|
./scripts/<< parameters.simapp >>/slow_stop.sh
|
|
./scripts/wasmd/stop.sh
|
|
test-node:
|
|
parameters:
|
|
node-version:
|
|
type: string
|
|
machine:
|
|
# We can't use a containerized environment since it requires remote docker to start custom containers.
|
|
# However, we can't access the remote docker's network from the primary container. This is a
|
|
# feature, as documented in https://circleci.com/docs/2.0/building-docker-images/#separation-of-environments
|
|
# As a consequence, we cannot use the circleci CLI for this job because "You cannot use the machine
|
|
# executor in local jobs." (https://circleci.com/docs/2.0/local-cli/#limitations-of-running-jobs-locally)
|
|
#
|
|
# Available images: https://circleci.com/developer/machine/image/ubuntu-2004
|
|
image: ubuntu-2004:2023.10.1
|
|
resource_class: large
|
|
steps:
|
|
- run:
|
|
name: Install Git Large File Storage (LFS)
|
|
# In the current image, `sudo apt install git-lfs` requires `sudo apt update` which is too slow
|
|
command: |
|
|
wget -O "$HOME/git-lfs.deb" https://packagecloud.io/github/git-lfs/packages/ubuntu/focal/git-lfs_2.13.3_amd64.deb/download.deb
|
|
sudo dpkg -i "$HOME/git-lfs.deb"
|
|
- checkout
|
|
- run: # start early for less wait time below
|
|
name: Start wasmd
|
|
command: ./scripts/wasmd/start.sh
|
|
background: true
|
|
- run:
|
|
name: Start simapp
|
|
command: ./scripts/simapp44/start.sh
|
|
background: true
|
|
- run:
|
|
name: Start slow simapp
|
|
command: ./scripts/simapp44/slow_start.sh
|
|
background: true
|
|
- run:
|
|
name: Start Tendermint blockchains
|
|
command: ./scripts/tendermint/all_start.sh
|
|
background: true
|
|
- attach_workspace:
|
|
at: /tmp/builds
|
|
- run:
|
|
name: Merge build folders into project (merge with hardlinks)
|
|
command: cp --recursive --link /tmp/builds/* .
|
|
- run:
|
|
# The images comes with preinstalled nvm, which does not work well with non-login shells
|
|
name: Uninstall nvm
|
|
# Moving to trash is faster than deleting (gvfs-trash is not installed on this image)
|
|
command: |
|
|
nvm --version && nvm ls
|
|
mkdir -p ~/.local/share/Trash && mv "$NVM_DIR" ~/.npm ~/.local/share/Trash
|
|
- run:
|
|
name: Install nodejs
|
|
# In the current image, `sudo apt install nodejs` requires `sudo apt update` which is too slow.
|
|
# Follow instructions of https://deb.nodesource.com/ except the last step. Then run
|
|
# `apt download --print-uris nodejs` to get a download URL.
|
|
command: |
|
|
declare -A node_links=(
|
|
["18"]="https://deb.nodesource.com/node_18.x/pool/main/n/nodejs/nodejs_18.17.1-1nodesource1_amd64.deb"
|
|
["20"]="https://deb.nodesource.com/node_20.x/pool/main/n/nodejs/nodejs_20.6.0-1nodesource1_amd64.deb"
|
|
)
|
|
wget -O "$HOME/nodejs.deb" "${node_links[<< parameters.node-version >>]}"
|
|
sudo dpkg -i "$HOME/nodejs.deb"
|
|
- run:
|
|
name: Install yarn
|
|
command: |
|
|
wget -O "$HOME/yarn.deb" https://dl.yarnpkg.com/debian/pool/main/y/yarn/yarn_1.22.15_all.deb
|
|
sudo dpkg -i "$HOME/yarn.deb"
|
|
- run:
|
|
name: Version information
|
|
command: echo "node $(node --version)"; echo "yarn $(yarn --version)"
|
|
- run:
|
|
name: Install libusb
|
|
# In the current image, `sudo apt install libusb-1.0-0-dev` requires `sudo apt update` which is too slow
|
|
command: |
|
|
wget -O "$HOME/libusb.deb" http://de.archive.ubuntu.com/ubuntu/pool/main/libu/libusb-1.0/libusb-1.0-0-dev_1.0.23-2build1_amd64.deb
|
|
sudo dpkg -i "$HOME/libusb.deb"
|
|
- run:
|
|
name: Install libudev-dev
|
|
# See https://packages.ubuntu.com/focal/libudev-dev (Ubuntu 20.04)
|
|
command: |
|
|
wget -O "$HOME/libudev1.deb" http://security.ubuntu.com/ubuntu/pool/main/s/systemd/libudev1_245.4-4ubuntu3.20_amd64.deb
|
|
wget -O "$HOME/libudev-dev.deb" http://security.ubuntu.com/ubuntu/pool/main/s/systemd/libudev-dev_245.4-4ubuntu3.20_amd64.deb
|
|
sudo dpkg -i "$HOME/libudev1.deb"
|
|
sudo dpkg -i "$HOME/libudev-dev.deb"
|
|
- run:
|
|
name: Install Dependencies
|
|
command: yarn install --immutable --immutable-cache --check-cache
|
|
- run:
|
|
name: Initialize wasmd (deploy contracts and friends)
|
|
command: ./scripts/wasmd/init.sh
|
|
- run:
|
|
name: Start socket server
|
|
command: ./scripts/socketserver/start.sh
|
|
- run:
|
|
name: Start http server
|
|
command: ./scripts/httpserver/start.sh
|
|
- run:
|
|
environment:
|
|
HTTPSERVER_ENABLED: 1
|
|
SIMAPP44_ENABLED: 1
|
|
SLOW_SIMAPP44_ENABLED: 1
|
|
TENDERMINT_ENABLED: 1
|
|
SOCKETSERVER_ENABLED: 1
|
|
SKIP_BUILD: 1
|
|
WASMD_ENABLED: 1
|
|
# Stopped working for Node.js 20. Maybe we need to upgrade the dependency or something.
|
|
# SES_ENABLED: 1
|
|
command: yarn test --stream
|
|
- run:
|
|
name: Run CLI selftest
|
|
working_directory: packages/cli
|
|
environment:
|
|
SKIP_BUILD: 1
|
|
command: yarn selftest
|
|
- run:
|
|
name: Run CLI examples
|
|
working_directory: packages/cli
|
|
environment:
|
|
HTTPSERVER_ENABLED: 1
|
|
SIMAPP44_ENABLED: 1
|
|
SLOW_SIMAPP44_ENABLED: 1
|
|
TENDERMINT_ENABLED: 1
|
|
SOCKETSERVER_ENABLED: 1
|
|
SKIP_BUILD: 1
|
|
WASMD_ENABLED: 1
|
|
command: ./run_examples.sh
|
|
- run:
|
|
name: Stop chains
|
|
command: |
|
|
./scripts/httpserver/stop.sh
|
|
./scripts/socketserver/stop.sh
|
|
./scripts/tendermint/all_stop.sh
|
|
./scripts/simapp44/stop.sh
|
|
./scripts/simapp44/slow_stop.sh
|
|
./scripts/wasmd/stop.sh
|
|
test-chrome:
|
|
machine:
|
|
# We can't use a containerized environment since it requires remote docker to start custom containers.
|
|
# However, we can't access the remote docker's network from the primary container. This is a
|
|
# feature, as documented in https://circleci.com/docs/2.0/building-docker-images/#separation-of-environments
|
|
# As a consequence, we cannot use the circleci CLI for this job because "You cannot use the machine
|
|
# executor in local jobs." (https://circleci.com/docs/2.0/local-cli/#limitations-of-running-jobs-locally)
|
|
#
|
|
# Available images: https://circleci.com/developer/machine/image/ubuntu-2004
|
|
image: ubuntu-2004:2023.10.1
|
|
resource_class: large
|
|
steps:
|
|
- browser-tools/install-chrome # Slow because apt update but what can you do 🤷
|
|
- run:
|
|
name: Install Git Large File Storage (LFS)
|
|
# In the current image, `sudo apt install git-lfs` requires `sudo apt update` which is too slow
|
|
command: |
|
|
wget -O "$HOME/git-lfs.deb" https://packagecloud.io/github/git-lfs/packages/ubuntu/focal/git-lfs_2.13.3_amd64.deb/download.deb
|
|
sudo dpkg -i "$HOME/git-lfs.deb"
|
|
- checkout
|
|
- run: # start early for less wait time below
|
|
name: Start wasmd
|
|
command: ./scripts/wasmd/start.sh
|
|
background: true
|
|
- run:
|
|
name: Start simapp
|
|
command: ./scripts/simapp44/start.sh
|
|
background: true
|
|
- run:
|
|
name: Start slow simapp
|
|
command: ./scripts/simapp44/slow_start.sh
|
|
background: true
|
|
- run:
|
|
name: Start Tendermint blockchains
|
|
command: ./scripts/tendermint/all_start.sh
|
|
background: true
|
|
- attach_workspace:
|
|
at: /tmp/builds
|
|
- run:
|
|
name: Merge build folders into project (merge with hardlinks)
|
|
command: cp --recursive --link /tmp/builds/* .
|
|
- run:
|
|
# The images comes with preinstalled nvm, which does not work well with non-login shells
|
|
name: Uninstall nvm
|
|
# Moving to trash is faster than deleting (gvfs-trash is not installed on this image)
|
|
command: |
|
|
nvm --version && nvm ls
|
|
mkdir -p ~/.local/share/Trash && mv "$NVM_DIR" ~/.npm ~/.local/share/Trash
|
|
- run:
|
|
name: Install nodejs
|
|
# In the current image, `sudo apt install nodejs` requires `sudo apt update` which is too slow.
|
|
# Follow instructions of https://deb.nodesource.com/ except the last step. Then run
|
|
# `apt download --print-uris nodejs` to get a download URL.
|
|
command: |
|
|
wget -O "$HOME/nodejs.deb" https://deb.nodesource.com/node_18.x/pool/main/n/nodejs/nodejs_18.17.1-1nodesource1_amd64.deb
|
|
sudo dpkg -i "$HOME/nodejs.deb"
|
|
- run:
|
|
name: Install yarn
|
|
command: |
|
|
wget -O "$HOME/yarn.deb" https://dl.yarnpkg.com/debian/pool/main/y/yarn/yarn_1.22.15_all.deb
|
|
sudo dpkg -i "$HOME/yarn.deb"
|
|
- run:
|
|
name: Version information
|
|
command: echo "node $(node --version)"; echo "yarn $(yarn --version)"
|
|
- run:
|
|
name: Install libusb
|
|
# In the current image, `sudo apt install libusb-1.0-0-dev` requires `sudo apt update` which is too slow
|
|
command: |
|
|
wget -O "$HOME/libusb.deb" http://de.archive.ubuntu.com/ubuntu/pool/main/libu/libusb-1.0/libusb-1.0-0-dev_1.0.23-2build1_amd64.deb
|
|
sudo dpkg -i "$HOME/libusb.deb"
|
|
- run:
|
|
name: Install libudev-dev
|
|
# See https://packages.ubuntu.com/focal/libudev-dev (Ubuntu 20.04)
|
|
command: |
|
|
wget -O "$HOME/libudev1.deb" http://security.ubuntu.com/ubuntu/pool/main/s/systemd/libudev1_245.4-4ubuntu3.20_amd64.deb
|
|
wget -O "$HOME/libudev-dev.deb" http://security.ubuntu.com/ubuntu/pool/main/s/systemd/libudev-dev_245.4-4ubuntu3.20_amd64.deb
|
|
sudo dpkg -i "$HOME/libudev1.deb"
|
|
sudo dpkg -i "$HOME/libudev-dev.deb"
|
|
- run:
|
|
name: Install Dependencies
|
|
command: yarn install --immutable --immutable-cache --check-cache
|
|
- run:
|
|
name: Initialize wasmd (deploy contracts and friends)
|
|
command: ./scripts/wasmd/init.sh
|
|
- run:
|
|
name: Start socket server
|
|
command: ./scripts/socketserver/start.sh
|
|
- run:
|
|
name: Start http server
|
|
command: ./scripts/httpserver/start.sh
|
|
- run:
|
|
environment:
|
|
HTTPSERVER_ENABLED: 1
|
|
SIMAPP44_ENABLED: 1
|
|
SLOW_SIMAPP44_ENABLED: 1
|
|
TENDERMINT_ENABLED: 1
|
|
SOCKETSERVER_ENABLED: 1
|
|
SKIP_BUILD: 1
|
|
WASMD_ENABLED: 1
|
|
command: yarn test-chrome
|
|
- run:
|
|
name: Stop chains
|
|
command: |
|
|
./scripts/httpserver/stop.sh
|
|
./scripts/socketserver/stop.sh
|
|
./scripts/tendermint/all_stop.sh
|
|
./scripts/simapp44/stop.sh
|
|
./scripts/simapp44/slow_stop.sh
|
|
./scripts/wasmd/stop.sh
|
|
coverage:
|
|
machine:
|
|
# We can't use a containerized environment since it requires remote docker to start custom containers.
|
|
# However, we can't access the remote docker's network from the primary container. This is a
|
|
# feature, as documented in https://circleci.com/docs/2.0/building-docker-images/#separation-of-environments
|
|
# As a consequence, we cannot use the circleci CLI for this job because "You cannot use the machine
|
|
# executor in local jobs." (https://circleci.com/docs/2.0/local-cli/#limitations-of-running-jobs-locally)
|
|
#
|
|
# Available images: https://circleci.com/developer/machine/image/ubuntu-2004
|
|
image: ubuntu-2004:2023.10.1
|
|
resource_class: large
|
|
steps:
|
|
- run:
|
|
name: Install Git Large File Storage (LFS)
|
|
# In the current image, `sudo apt install git-lfs` requires `sudo apt update` which is too slow
|
|
command: |
|
|
wget -O "$HOME/git-lfs.deb" https://packagecloud.io/github/git-lfs/packages/ubuntu/focal/git-lfs_2.13.3_amd64.deb/download.deb
|
|
sudo dpkg -i "$HOME/git-lfs.deb"
|
|
- checkout
|
|
- run: # start early for less wait time below
|
|
name: Start wasmd
|
|
command: ./scripts/wasmd/start.sh
|
|
background: true
|
|
- run:
|
|
name: Start simapp
|
|
command: ./scripts/simapp44/start.sh
|
|
background: true
|
|
- run:
|
|
name: Start slow simapp
|
|
command: ./scripts/simapp44/slow_start.sh
|
|
background: true
|
|
- run:
|
|
name: Start Tendermint blockchains
|
|
command: ./scripts/tendermint/all_start.sh
|
|
background: true
|
|
- attach_workspace:
|
|
at: /tmp/builds
|
|
- run:
|
|
name: Merge build folders into project (merge with hardlinks)
|
|
command: cp --recursive --link /tmp/builds/* .
|
|
- run:
|
|
# The images comes with preinstalled nvm, which does not work well with non-login shells
|
|
name: Uninstall nvm
|
|
# Moving to trash is faster than deleting (gvfs-trash is not installed on this image)
|
|
command: |
|
|
nvm --version && nvm ls
|
|
mkdir -p ~/.local/share/Trash && mv "$NVM_DIR" ~/.npm ~/.local/share/Trash
|
|
- run:
|
|
name: Install nodejs
|
|
# In the current image, `sudo apt install nodejs` requires `sudo apt update` which is too slow.
|
|
# Follow instructions of https://deb.nodesource.com/ except the last step. Then run
|
|
# `apt download --print-uris nodejs` to get a download URL.
|
|
command: |
|
|
wget -O "$HOME/nodejs.deb" https://deb.nodesource.com/node_18.x/pool/main/n/nodejs/nodejs_18.17.1-1nodesource1_amd64.deb
|
|
sudo dpkg -i "$HOME/nodejs.deb"
|
|
- run:
|
|
name: Install yarn
|
|
command: |
|
|
wget -O "$HOME/yarn.deb" https://dl.yarnpkg.com/debian/pool/main/y/yarn/yarn_1.22.15_all.deb
|
|
sudo dpkg -i "$HOME/yarn.deb"
|
|
- run:
|
|
name: Version information
|
|
command: echo "node $(node --version)"; echo "yarn $(yarn --version)"
|
|
- run:
|
|
name: Install libusb
|
|
# In the current image, `sudo apt install libusb-1.0-0-dev` requires `sudo apt update` which is too slow
|
|
command: |
|
|
wget -O "$HOME/libusb.deb" http://de.archive.ubuntu.com/ubuntu/pool/main/libu/libusb-1.0/libusb-1.0-0-dev_1.0.23-2build1_amd64.deb
|
|
sudo dpkg -i "$HOME/libusb.deb"
|
|
- run:
|
|
name: Install libudev-dev
|
|
# See https://packages.ubuntu.com/focal/libudev-dev (Ubuntu 20.04)
|
|
command: |
|
|
wget -O "$HOME/libudev1.deb" http://security.ubuntu.com/ubuntu/pool/main/s/systemd/libudev1_245.4-4ubuntu3.20_amd64.deb
|
|
wget -O "$HOME/libudev-dev.deb" http://security.ubuntu.com/ubuntu/pool/main/s/systemd/libudev-dev_245.4-4ubuntu3.20_amd64.deb
|
|
sudo dpkg -i "$HOME/libudev1.deb"
|
|
sudo dpkg -i "$HOME/libudev-dev.deb"
|
|
- run:
|
|
name: Install Dependencies
|
|
command: yarn install --immutable --immutable-cache --check-cache
|
|
- run:
|
|
name: Initialize wasmd (deploy contracts and friends)
|
|
command: ./scripts/wasmd/init.sh
|
|
- run:
|
|
name: Start socket server
|
|
command: ./scripts/socketserver/start.sh
|
|
- run:
|
|
name: Start http server
|
|
command: ./scripts/httpserver/start.sh
|
|
- run:
|
|
environment:
|
|
HTTPSERVER_ENABLED: 1
|
|
SIMAPP44_ENABLED: 1
|
|
SLOW_SIMAPP44_ENABLED: 1
|
|
TENDERMINT_ENABLED: 1
|
|
SOCKETSERVER_ENABLED: 1
|
|
SKIP_BUILD: 1
|
|
WASMD_ENABLED: 1
|
|
command: yarn coverage
|
|
- run:
|
|
name: Upload coverage report
|
|
command: npx codecov
|
|
- run:
|
|
name: Stop chains
|
|
command: |
|
|
./scripts/httpserver/stop.sh
|
|
./scripts/socketserver/stop.sh
|
|
./scripts/tendermint/all_stop.sh
|
|
./scripts/simapp44/stop.sh
|
|
./scripts/simapp44/slow_stop.sh
|
|
./scripts/wasmd/stop.sh
|
|
docs-build:
|
|
docker:
|
|
- image: cimg/node:18.20
|
|
steps:
|
|
- run:
|
|
name: Install Git Large File Storage (LFS)
|
|
command: sudo apt-get install git-lfs
|
|
- checkout
|
|
- attach_workspace:
|
|
at: /tmp/builds
|
|
- run:
|
|
name: Merge build folders into project (merge with hardlinks)
|
|
command: cp --recursive --link /tmp/builds/* .
|
|
- run:
|
|
name: Version information
|
|
command: echo "node $(node --version)"; echo "yarn $(yarn --version)"
|
|
- run:
|
|
name: Install libusb
|
|
command: |
|
|
sudo apt update
|
|
sudo apt install libusb-1.0-0-dev
|
|
- run:
|
|
name: Install Dependencies
|
|
command: yarn install --immutable --immutable-cache --check-cache
|
|
- run:
|
|
name: Build package docs
|
|
command: yarn docs
|
|
- run:
|
|
name: Copy docs into deployment folder
|
|
command: ./scripts/docs/copy_docs.sh
|
|
- persist_to_workspace:
|
|
root: .
|
|
paths: docs_deployment
|
|
docs-deploy:
|
|
docker:
|
|
- image: cimg/node:18.20
|
|
steps:
|
|
- attach_workspace:
|
|
at: .
|
|
- add_ssh_keys:
|
|
fingerprints:
|
|
- "a7:b3:94:4a:9e:e1:30:fa:ca:22:d1:db:a1:78:d6:e4"
|
|
- run:
|
|
name: Add GitHub to known hosts
|
|
command: |
|
|
mkdir -p ~/.ssh
|
|
echo 'github.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==' >> ~/.ssh/known_hosts
|
|
- run:
|
|
name: Deploy to GitHub pages
|
|
# Version pinned to 3.0.0 because of https://github.com/tschaub/gh-pages/issues/354
|
|
command: npx gh-pages@3.0.0 --message "Update docs [skip ci]" --dist docs_deployment --user "CI deployment <ci@cosmwasm.com>" --repo "git@github.com:cosmos/cosmjs.git"
|
|
lint:
|
|
docker:
|
|
- image: cimg/node:18.20
|
|
steps:
|
|
- run:
|
|
name: Install Git Large File Storage (LFS)
|
|
command: sudo apt-get install git-lfs
|
|
- checkout
|
|
- attach_workspace:
|
|
at: /tmp/builds
|
|
- run:
|
|
name: Merge build folders into project (merge with hardlinks)
|
|
command: cp --recursive --link /tmp/builds/* .
|
|
- run:
|
|
name: Install shfmt
|
|
command: |
|
|
sudo wget https://github.com/mvdan/sh/releases/download/v3.2.1/shfmt_v3.2.1_linux_amd64 -O /usr/local/bin/shfmt
|
|
sudo chmod +x /usr/local/bin/shfmt
|
|
shfmt --version
|
|
- run:
|
|
name: Version information
|
|
command: echo "node $(node --version)"; echo "yarn $(yarn --version)"
|
|
- run:
|
|
name: Install libusb
|
|
command: |
|
|
sudo apt update
|
|
sudo apt install libusb-1.0-0-dev
|
|
- run:
|
|
name: Install Dependencies
|
|
command: yarn install --immutable --immutable-cache --check-cache
|
|
- run:
|
|
name: Lint
|
|
command: yarn lint
|
|
- run:
|
|
name: Format text
|
|
command: yarn format-text
|
|
- run:
|
|
name: Format shell scripts
|
|
command: yarn format-shell
|
|
faucet-docker:
|
|
docker:
|
|
- image: cimg/go:1.17.8
|
|
steps:
|
|
- run:
|
|
name: Install Git Large File Storage (LFS)
|
|
command: |
|
|
sudo apt update
|
|
sudo apt install git-lfs
|
|
- checkout
|
|
- setup_remote_docker:
|
|
version: default
|
|
- run:
|
|
name: Build faucet Docker image
|
|
# Use ${CIRCLE_TAG}
|
|
command: |
|
|
docker build --pull -t "confio/faucet:$CIRCLE_SHA1" -f packages/faucet/Dockerfile .
|
|
- run:
|
|
name: Check docker image can be executed
|
|
command: |
|
|
docker run --rm "confio/faucet:$CIRCLE_SHA1" version
|
|
docker run --rm "confio/faucet:$CIRCLE_SHA1" generate
|
|
# - run:
|
|
# name: Push image to Docker Hub
|
|
# command: |
|
|
# docker login --password-stdin -u "$DOCKER_USER" \<<<"$DOCKER_PASS"
|
|
# docker push "confio/faucet:$CIRCLE_SHA1"
|
|
# docker logout
|