Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
91 changes: 91 additions & 0 deletions .github/workflows/integration_tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
name: Integration tests

on:
workflow_dispatch:
inputs:
platforms:
description: 'CSV of Desktop, Android and/or iOS'
default: 'Desktop'
required: true
apis:
description: 'CSV of apis to build and test'
default: 'admob,analytics,auth,database,dynamic_links,firestore,functions,instance_id,messaging,remote_config,storage'
required: true
operating_systems:
description: 'JSON list of VMs to run on'
default: '["ubuntu-latest","windows-latest","macos-latest"]'
required: true

env:
CCACHE_DIR: ${{ github.workspace }}/ccache_dir

jobs:
build:
name: ${{ matrix.os }}-${{ matrix.build_type }}-${{ matrix.architecture }}-${{ matrix.python_version }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: ${{ fromJson(github.event.inputs.operating_systems) }}
build_type: ["Debug"]
architecture: ["x64",]
python_version: [3.7]
include:
- os: windows-latest
architecture: "x64"
vcpkg_triplet: "x64-windows-static"
msbuild_platform: "x64"
- os: ubuntu-latest
architecture: "x64"
vcpkg_triplet: "x64-linux"
- os: macos-latest
architecture: "x64"
vcpkg_triplet: "x64-osx"

steps:
- uses: actions/checkout@v2
with:
submodules: true

- name: Set env variables for subsequent steps (all)
run: |
echo "::set-env name=VCPKG_RESPONSE_FILE::external/vcpkg_${{ matrix.vcpkg_triplet }}_response_file.txt"
echo "::set-env name=MATRIX_UNIQUE_NAME::${{ matrix.os }}-${{ matrix.build_type }}-${{ matrix.architecture }}-${{ matrix.python_version }}"
- name: Cache vcpkg C++ dependencies
id: cache_vcpkg
uses: actions/cache@v2
with:
path: external/vcpkg/installed
key: dev-vcpkg-${{ matrix.vcpkg_triplet }}-${{ hashFiles(format('{0}', env.VCPKG_RESPONSE_FILE)) }}-${{ hashFiles('.git/modules/external/vcpkg/HEAD') }}

- name: Cache ccache files
if: startsWith(matrix.os, 'ubuntu') || startsWith(matrix.os, 'macos')
id: cache_ccache
uses: actions/cache@v2
with:
path: ccache_dir
key: dev-test-ccache-${{ env.MATRIX_UNIQUE_NAME }}

- name: Setup python
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python_version }}
architecture: ${{ matrix.architecture }}

- name: Install SDK prerequisites
run: |
python scripts/gha/install_prereqs_desktop.py

- name: Prepare for integration tests
run: |
pip install -r testing/integration_testing/requirements.txt
python testing/integration_testing/restore_secrets.py --passphrase ${{ secrets.TEST_SECRET }}

- name: Build and run integration tests
run: |
python testing/integration_testing/build_testapps.py \
--testapps ${{ github.event.inputs.apis }} \
--platforms ${{ github.event.inputs.platforms }} \
--output_directory ${{ github.workspace }} \
--execute_desktop_testapp \
--noadd_timestamp