Skip to content

change ci/cd

change ci/cd #334

Workflow file for this run

---
name: ci-rust-sdk
on:
push:
branches: [dev, cid_cd_tests, 'feat*', 'release-*']
paths-ignore:
- '**.md'
pull_request:
branches: [dev, cid_cd_tests, 'feat*', 'release-*']
paths-ignore:
- '**.md'
jobs:
build_and_test:
strategy:
matrix:
#https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources
os: [ubuntu-22.04]
node-version: [20.x]
runs-on: ${{ matrix.os }}
env:
RPC_ADDRESS: http://127.0.0.1:11101
EVENT_ADDRESS: http://127.0.0.1:18101/events
SPECULTATIVE_ADDRESS: http://127.0.0.1:25101
# services:
# # Label used to access the service container
# casper-nctl:
# # Docker Hub image
# image: gregoshop/casper-nctl:2.0
# ports:
# - 11101-11105:11101-11105
# - 14101-14105:14101-14105
# - 18101-18105:18101-18105
# - 25101-25105:25101-25105
# - 28101-28105:28101-28105
# volumes:
# - ./assets/users:/app/casper-nctl/assets/net-1/users/
steps:
# Replace by above service with docker image of stable 2.0
- name: Clone casper-nctl-2-docker repository
run: |
git clone https://github.com/gRoussac/casper-nctl-2-docker.git
- name: Build and start the service
run: |
cd casper-nctl-2-docker
make build-start 2.0
cd ..
- name: Wait for the service to be ready
run: |
echo "Waiting for the service to be ready on port 11101..."
for i in {1..30}; do # wait for up to 30 seconds
if nc -z localhost 11101; then
echo "Service is up!"
echo "Wait 45s for nctl to boot and create keys"
sleep 45 # - name: wait for up to 45 seconds for an era like
break
fi
echo "Waiting..."
sleep 1
done
# Check if the service is still not ready after 30 seconds
if ! nc -z localhost 11101; then
echo "Service did not start in time!"
exit 1
fi
# - name: List files in the users directory
# run: |
# echo "Listing files in the users directory of the service container..."
# docker exec ${{ job.services.casper-nctl.id }} ls /app/casper-nctl/assets/net-1/users/
# - name: List files in user-1 directory
# run: |
# echo "Listing files in ./assets/users/user-1/:"
# ls -la ./casper-nctl-2-docker/assets/users/user-1/
# WARNING: These accounts, and their private keys, are now publicly known.
# Any funds sent to them on Mainnet or any other live network WILL BE LOST.
- name: Set SECRET_KEY_USER_1 and SECRET_KEY_USER_2 environment variables
run: |
echo "SECRET_KEY_USER_1=$(sed -n '2p' ./casper-nctl-2-docker/assets/users/user-1/secret_key.pem)" >> $GITHUB_ENV
echo "SECRET_KEY_USER_2=$(sed -n '2p' ./casper-nctl-2-docker/assets/users/user-2/secret_key.pem)" >> $GITHUB_ENV
- name: Delete user-1 directory
run: |
echo "Deleting ./casper-nctl-2-docker directories..."
sudo rm -rf ./casper-nctl-2-docker
- name: Print GITHUB_ENV
run: |
echo "Contents of GITHUB_ENV:"
cat $GITHUB_ENV
- uses: actions/checkout@v2
- name: Swatinem cache
uses: Swatinem/rust-cache@cb2cf0cc7c5198d3364b9630e2c3d457f160790c #v1.4.0
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
profile: minimal
components: rustfmt, clippy
target: wasm32-unknown-unknown
- name: Fmt
uses: actions-rs/cargo@v1
with:
command: fmt
args: -- --check
- name: Audit
uses: actions-rs/cargo@v1
with:
command: audit
args: --deny warnings
- name: Lint
run: make check-lint
- name: Unit Tests
run: make test
- name: Integration Tests
run: make integration-test
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@5b949b50c3461bbcd5a540b150c368278160234a #v3.4.0
with:
node-version: ${{ matrix.node-version }}
registry-url: 'https://registry.npmjs.org'
- name: E2E Tests
run: make e2e-test
- name: Build lib for all targets
uses: actions-rs/cargo@v1
with:
command: build
args: --lib --all-targets
- name: Doc
run: make doc
- name: Github pages 🚀
uses: JamesIves/github-pages-deploy-action@ba1486788b0490a235422264426c45848eac35c6 #v4.4.1
with:
folder: docs # The folder the action should deploy.
target-folder: condor
commit-message: 'Deploy documentation for ${{ github.ref_name }}'
# - name: Install Electron
# run: |
# sudo apt-get install --no-install-recommends -y libopenjp2-tools
# sudo dpkg --add-architecture i386
# sudo mkdir -pm755 /etc/apt/keyrings
# sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key
# sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/jammy/winehq-jammy.sources
# sudo apt update
# sudo apt install --install-recommends winehq-stable
# - name: Install Wasm Pack
# run: curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
# - name: Build packages and apps
# run: make build