Skip to content

WALLET-412: Run UI-based tests in CI #88

WALLET-412: Run UI-based tests in CI

WALLET-412: Run UI-based tests in CI #88

Workflow file for this run

name: Wallet Frontend Application CI
on:
pull_request: {}
push:
branches: [ main ]
env:
CI: true
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
lint:
uses: inrupt/typescript-sdk-tools/.github/workflows/reusable-lint.yml@v3
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ ubuntu-latest, windows-latest ]
node-version: [ "20.x" ]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
- run: npm ci
ui-tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
- uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: 17
cache: 'gradle'
- run: echo "${{ secrets.ENCRYPTED_KEYSTORE }}" > wallet.keystore.asc
- run: gpg -d --passphrase "${{ secrets.KEYSTORE_DECRYPTION_KEY }}" --batch wallet.keystore.asc > wallet.keystore
- run: npm ci
# Build the test apk to be loaded in the container.
- run: npx expo prebuild --platform android
env:
SIGNING_CONFIG_PATH: ${{ github.workspace }}/android-config/signing-config.gradle
- run: npx detox build --configuration android.emu.release
# Build the docker image containing the Android emulator and all the test dependencies.
- run: |
docker build \
--network=host \
--tag inrupt-wallet-frontend-ui-tests:test \
--env KEYSTORE_PATH=${{ github.workspace }}/wallet.keystore
--env KEYSTORE_PASSWORD="${{ secrets.KEYSTORE_PASSWORD }}"
.
# Run the Detox tests in the emulator container.
- run: |
docker run \
--env EXPO_PUBLIC_LOGIN_URL="https://datawallet.inrupt.com/oauth2/authorization/wallet-app" \
--env EXPO_PUBLIC_WALLET_API="https://datawallet.inrupt.com" \
# FIXME read these from secrets, this is just for initial testing
--env TEST_ACCOUNT_USERNAME="some-username" \
--env TEST_ACCOUNT_PASSWORD="some-password" \
inrupt-wallet-frontend-ui-tests:test
sonarqube:
name: run sonarqube
if: ${{ github.actor != 'dependabot[bot]' }}
needs: [build]
runs-on: ubuntu-latest
steps:
- name: Checking out
uses: actions/checkout@v4
with:
# Disabling shallow clone is recommended for improving relevancy of reporting
fetch-depth: 0
- name: SonarQube Scan
uses: kitabisa/[email protected]
with:
host: ${{ secrets.SONARQUBE_HOST }}
login: ${{ secrets.SONARQUBE_DEV_INRUPT_COM_GITHUB_TOKEN }}