Skip to content

Monorepo

Monorepo #5

Workflow file for this run

name: ci
on:
pull_request:
branches:
- develop
- main
concurrency:
group: ${{ github.workflow }}-${{ github.event_name == 'pull_request_target' && github.event.pull_request.number || github.ref_name }}
cancel-in-progress: ${{ github.event_name == 'pull_request_target' }}
jobs:
authorize:
environment:
${{ (github.event_name == 'pull_request_target' &&
github.event.pull_request.head.repo.full_name != github.repository) &&
'external' || 'internal' }}
runs-on: ubuntu-latest
steps:
- run: echo ✓
prepare:
needs: authorize
runs-on: macos-latest-xlarge
steps:
- uses: actions/checkout@v3
with:
ref: ${{ github.event.pull_request.head.sha }}
- uses: ./.github/actions/build
with:
project-id: ${{ secrets.PROJECT_ID }}
cache-key: ci
test:
needs: prepare
runs-on: macos-latest-xlarge
timeout-minutes: 15
strategy:
fail-fast: false
matrix:
type: [integration-tests, relay-tests, unit-tests]
steps:
- uses: actions/checkout@v3
with:
ref: ${{ github.event.pull_request.head.sha }}
- uses: actions/cache/restore@v3
with:
path: |
products.tar
key: ${{ runner.os }}-deriveddata-ci-${{ github.event.pull_request.head.sha }}
- name: Untar DerivedDataCache
shell: bash
run: test -f products.tar && tar xPpf products.tar || echo "No artifacts to untar"
# Package Unit tests
- name: Run tests
if: matrix.type == 'unit-tests'
shell: bash
run: make unit_tests
# Integration tests
- name: Run integration tests
if: matrix.type == 'integration-tests'
shell: bash
run: make integration_tests RELAY_HOST=relay.walletconnect.com PROJECT_ID=${{ secrets.PROJECT_ID }} CAST_HOST=notify.walletconnect.com EXPLORER_HOST=explorer-api.walletconnect.com GM_DAPP_PROJECT_ID=${{ secrets.GM_DAPP_PROJECT_ID }} GM_DAPP_PROJECT_SECRET=${{ secrets.GM_DAPP_PROJECT_SECRET }} GM_DAPP_HOST=wc-notify-swift-integration-tests-prod.pages.dev JS_CLIENT_API_HOST=test-automation-api.walletconnect.com
# Relay Integration tests
- name: Run Relay integration tests
if: matrix.type == 'relay-tests'
shell: bash
run: make relay_tests RELAY_HOST=relay.walletconnect.com PROJECT_ID=${{ secrets.PROJECT_ID }}
- name: Publish Test Report
uses: mikepenz/action-junit-report@v3
if: success() || failure()
with:
check_name: ${{ matrix.type }} junit report
report_paths: 'test_results/report.junit'
- name: Zip test artifacts
if: always()
shell: bash
run: test -d "test_results" && zip artifacts.zip -r ./test_results || echo "Nothing to zip"
- name: Upload test artifacts
if: always()
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.type }} test_results
path: ./artifacts.zip
if-no-files-found: warn