Skip to content

PR tests

PR tests #977

Workflow file for this run

name: PR tests
on:
pull_request:
branches:
- main
- release/*
paths:
- "starship/**"
- "!starship/docker/**"
- ".github/workflows/pr-tests.yaml"
types: [opened, reopened, synchronize, ready_for_review]
push:
branches:
- main
- release/*
paths:
- "starship/**"
- ".github/workflows/e2e-tests.yaml"
# Run every day at 18:00 UTC
schedule:
- cron: '0 18 * * *'
workflow_dispatch: {}
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-pr-tests
cancel-in-progress: true
jobs:
pr-test:
if: github.event_name != 'pull_request' || !github.event.pull_request.draft
runs-on: ubuntu-latest
timeout-minutes: 30
strategy:
matrix:
config-file:
- "one-chain-custom-scripts.yaml"
- "one-chain.yaml"
- "one-custom-chain.yaml"
- "multi-validator.yaml"
- "simapp.yaml"
- "one-chain-starship-faucet.yaml"
- "multi-validator-starship-faucet.yaml"
- "one-chain-cometmock.yaml"
- "one-cosmoshub-starship-faucet.yaml"
fail-fast: true
max-parallel: 3
env:
CONFIG_FILE: "starship/tests/e2e/configs/${{ matrix.config-file }}"
steps:
- name: Checkout
uses: actions/checkout@v2
- uses: actions/setup-go@v4
with:
go-version: "1.21"
check-latest: true
- name: Create yarn.lock and package.json file if not exists
run: |
if [ ! -f $GITHUB_WORKSPACE/yarn.lock ]; then
echo 'Creating temporary yarn.lock file'
echo '' > $GITHUB_WORKSPACE/yarn.lock
fi
if [ ! -f $GITHUB_WORKSPACE/package.json ]; then
echo 'Creating temporary package.json file'
echo '{}' > $GITHUB_WORKSPACE/package.json
fi
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "20.x"
cache: "yarn"
- name: Install starship CLI
run: |
cd clients/js
yarn
yarn build
chmod +x node_modules/.bin/starship
echo "PATH=$GITHUB_WORKSPACE/clients/js/node_modules/.bin:$PATH" >> $GITHUB_ENV
- name: Setup Test infra
id: starship-action
uses: cosmology-tech/[email protected]
with:
config: ${{ env.CONFIG_FILE }}
chart: ./starship/charts/devnet
cli-version: 0.0.0
- name: Run tests
run: |
cd tests/e2e/ && go test -v ./...
env:
TEST_CONFIG_FILE: ${{ env.CONFIG_FILE }}
working-directory: starship
# todo: change this to be post step of the action
- name: Cleanup cluster
if: always()
run: |
helm delete $DEVNET_NAME --debug --namespace $DEVNET_NAMESPACE --wait || true
kubectl delete namespace $DEVNET_NAMESPACE --wait=true || true
env:
DEVNET_NAME: ${{ steps.starship-action.outputs.name }}
DEVNET_NAMESPACE: ${{ steps.starship-action.outputs.namespace }}
working-directory: starship