diff --git a/.github/workflows/test-deploy-e2e.yaml b/.github/workflows/test-deploy-e2e.yaml new file mode 100644 index 00000000000..ad9fc5d48a2 --- /dev/null +++ b/.github/workflows/test-deploy-e2e.yaml @@ -0,0 +1,73 @@ +name: CI/CD + +on: + workflow_dispatch: + inputs: + environment: + description: 'Environment to run e2e tests against' + type: choice + required: true + default: 'dev-preprod' + options: + - dev-mainnet + - dev-preprod + - dev-preview + - staging-preprod + pull_request: + push: + branches: ['master'] + tags: ['*.*.*'] + +env: + TL_DEPTH: ${{ github.event.pull_request.head.repo.fork && '0' || fromJson(vars.TL_DEPTH) }} + TL_LEVEL: ${{ github.event.pull_request.head.repo.fork && 'info' || vars.TL_LEVEL }} + # ----------------------------------------------------------------------------------------- + +jobs: + build_and_test: + strategy: + matrix: + os: [ubuntu-20.04] + runs-on: ${{ matrix.os }} + steps: + - name: 📥 Checkout repository + uses: actions/checkout@v3 + + - name: Generate .env file + working-directory: ./packages/e2e/ + run: | + networkMagic=$(jq --arg environment "${{ inputs.environment }}" <<< '{"dev-preprod":1, "dev-preview":2, "dev-mainnet":764824073, "staging-preprod":1}' '.[$environment]') + ./src/scripts/generate-dotenv.sh ${{ inputs.environment }} + echo "KEY_MANAGEMENT_PARAMS='$(jq --argjson networkMagic $networkMagic --arg mnemonic "${{ secrets.MNEMONIC }}" <<< '{"bip32Ed25519": "Sodium", "accountIndex": 0, "chainId":{"networkId": 0, "networkMagic": 0}, "passphrase":"some_passphrase","mnemonic":"mnemonics"}' '.mnemonic=$mnemonic | .chainId.networkMagic=$networkMagic')'" >> .env + + - name: 🧰 Setup Node.js + uses: actions/setup-node@v3 + with: + node-version: 18.12.0 + + - name: 🔨 Build + run: | + yarn install --immutable --inline-builds --mode=skip-build + yarn build:cjs + docker build --no-cache . + env: + NODE_OPTIONS: '--max_old_space_size=8192' + + - name: 🌐 Setup local test network + working-directory: packages/e2e + run: | + yarn local-network:up -d + env: + CARDANO_NODE_CHAINDB_LOG_LEVEL: 'Warning' + CARDANO_NODE_LOG_LEVEL: 'Warning' + OGMIOS_PORT: '1340' + OGMIOS_URL: 'ws://ogmios:1340' + POSTGRES_PORT: '5435' + + - name: Wait for network init + run: | + yarn workspace @cardano-sdk/e2e wait-for-network-init + + - name: 🔬 Test - e2e - wallet at epoch 0 + run: | + yarn workspace @cardano-sdk/e2e test:wallet