Skip to content
name: Deploy cosmwasm contracts to Contestine testnet
on:
push:
branches:
- "main"
- "466-initiate-btp-node-for-archway-on-icon-testnet"
jobs:
deploy-contracts-testnet:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
with:
submodules: true
# Install and setup go
- name: Set up Go 1.19
uses: actions/setup-go@v2
with:
go-version: 1.19
# setup gopath
- name: Set PATH
run: |
echo "$(go env GOPATH)/bin" >> $GITHUB_PATH
shell: bash
- name: Import GPG key
uses: crazy-max/ghaction-import-gpg@v5
with:
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
fingerprint: "C787AB518A0C08B7AE1E1ADA2809A1A84E32159A"
trust_level: 5
# - name: Install stable toolchain
# uses: actions-rs/toolchain@v1
# with:
# toolchain: 1.69.0
# target: wasm32-unknown-unknown
# override: true
# profile: minimal
# - name: Cache Rust dependencies
# uses: Swatinem/rust-cache@v2
- name: Download and Install archwayd
working-directory: contracts/cosmwasm-vm/archway
run: make install
- name: Retrieve the secret and decode it to a file
env:
CONSTANTINE_TESTNET_KEY: ${{ secrets.CONSTANTINE_TESTNET_KEY }}
CONSTANTINE_PASSPHRASE: ${{ secrets.CONSTANTINE_PASSPHRASE }}
run: |
export GNUPGHOME="$(mktemp -d)"
echo "Create gpg "
cat >foo <<EOF
%echo Generating a basic OpenPGP key
Key-Type: DSA
Key-Length: 1024
Subkey-Type: ELG-E
Subkey-Length: 1024
Name-Real: constantine
Name-Comment: archway testnet
Name-Email: [email protected]
Expire-Date: 0
Passphrase: abc
# Do a commit here, so that we can later print "done" :-)
%commit
%echo done
EOF
gpg --batch --generate-key foo
# archwayd keys list
# docker run --rm -it -v ~/.archway:/root/.archway ghcr.io/archway-network/archwayd:v1.0.1 keys list
gpg --list-secret-keys
pass init C787AB518A0C08B7AE1E1ADA2809A1A84E32159A
echo "Installing expect"
sudo apt-get update >/dev/null
sudo apt-get install expect >/dev/null
echo $CONSTANTINE_TESTNET_KEY | base64 -d > temp.key
gpgconf --kill gpg-agent
# rm ~/.gnupg/S.*
# gpg-connect-agent reloadagent /bye
# sleep 5
# bash ./scripts/import_key.expect
echo "$CONSTANTINE_PASSPHRASE" | /home/runner/go/bin/archwayd keys import constantine3_wallet temp.key
# which expect
# /usr/bin/expect <<EOD
# set timeout 60
# spawn /home/runner/go/bin/archwayd keys import constantine3_wallet key.json
# expect "Enter passphrase to decrypt your key:"
# send "12345678\r"
# expect eof
# EOD
# echo "CONSTANTINE_PASSPHRASE" | archwayd keys import constantine3_wallet key.json
archwayd keys list
# - name: Compile WASM
# run: |
# rustup component add rustfmt --toolchain 1.69.0-x86_64-unknown-linux-gnu
# rustup component add clippy --toolchain 1.69.0-x86_64-unknown-linux-gnu
# bash ./optimize_build.sh
# - name: Check WASM Size
# run: |
# max_size=800
# echo "Check if size of wasm file exceeds $max_size kilobytes..."
# for file in artifacts/*.wasm
# do
# size=$(du -k "$file" | awk '{print $1}')
# if [[ $size -gt $max_size ]]; then
# echo "Error: $file : $size KB has exceeded maximum contract size limit of 800KB."
# exit 1
# fi
# echo "$file : $size KB"
# done
# echo "The size of all contracts is well within the 800 KB limit."
# - name: Deploy WASM
# run: |
# container=$(docker ps --format '{{.Names}}')
# rm -rf artifacts/cw_common.wasm
# cp -r {artifacts,scripts/deploy_cosmwasm.sh} contracts/cosmwasm-vm/archway/contracts
# docker ps -a
# docker exec $container chmod +x /contracts/deploy_cosmwasm.sh
# docker exec $container /contracts/deploy_cosmwasm.sh