Tests In Browser|API|Marketplace #89
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This workflow will build and run In Browser Selenium Web Driver Tests | |
# | |
# For more samples to get started with GitHub Action workflows to deploy to Azure, refer to https://github.com/Azure/actions-workflow-samples | |
name: Test|In Browser|Marketplace | |
on: | |
#manually trigger deploy | |
workflow_dispatch: | |
# Trigger the workflow on push | |
#push: | |
# branches: | |
# - develop | |
# - main | |
#pull_request: | |
# branches: | |
# - develop | |
# - main | |
env: | |
# set this to the path to your solution file | |
SOLUTION_DIRECTORY: './' | |
# Solution file name | |
SOLUTION_FILE: 'CESMII.Marketplace.sln' | |
# Set this to the path to your test project file | |
PROJECT_DIRECTORY: './api/Tests/CESMII.Marketplace.InBrowser.Tests/' | |
# Test project file to use | |
PROJECT_NAME: 'CESMII.Marketplace.InBrowser.Tests' | |
# set this to the .NET core version to use | |
NETCORE_VERSION: "6.0.x" | |
# set this to the NODE JS version to use | |
NODEJS_VERSION: "16.17.0" | |
# set this to npm working directory | |
NPM_WORKING_DIRECTORY: 'frontend' | |
# Cloud Library Password | |
CLOUDLIB_PASSWORD: 'NotUsedAnymore' | |
# Access to our MongoDB | |
MONGODB_CONNECTION: "mongodb://localhost:27017" | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
#- name: CloudLib - Start PostgreSQL on Ubuntu | |
# run: | | |
# sudo systemctl start postgresql.service | |
# pg_isready | |
#- name: CloudLib - Create additional Postgres user | |
# run: | | |
# sudo -u postgres psql --command="CREATE USER testuser SUPERUSER PASSWORD 'password'" --command="\du" | |
#- name: CloudLib - Create test database with proper collation | |
# run: | | |
# sudo -u postgres psql --command="create database cloudlib_test with LC_COLLATE = 'en_US.UTF8' LC_CTYPE = 'en_US.UTF8' TEMPLATE template0" | |
#- name: CloudLib - List existing databases | |
# run: | | |
# sudo -u postgres psql -l --command="\du" | |
#- name: 🤘 CloudLib - checkout repo | |
# uses: actions/checkout@v2 | |
# with: | |
# repository: cesmii/CESMII-CloudLibrary | |
# path: main | |
# fetch-depth: 0 | |
#- name: ⚙ CloudLib -Install DotNet (version 6.0.x) | |
# uses: actions/setup-dotnet@v1 | |
# with: | |
# dotnet-version: '6.0.x' | |
#- name: CloudLib - Restore dependencies in UACloudLibraryServer | |
# working-directory: ./main/UACloudLibraryServer | |
# run: dotnet restore | |
#- name: CloudLib - Restore dependencies Opc.Ua.CloudLib.Client | |
# run: dotnet restore | |
# working-directory: ./main/Opc.Ua.CloudLib.Client | |
#- name: CloudLib - Restore dependencies SampleConsoleClient | |
# run: dotnet restore | |
# working-directory: ./main/SampleConsoleClient | |
#- name: CloudLib - Restore dependencies CloudLibClientTests | |
# run: dotnet restore | |
# working-directory: ./main/Tests/CloudLibClientTests | |
#- name: CloudLib - Restore dependencies CloudLibSync | |
# working-directory: ./main/CloudLibSync | |
# run: dotnet restore | |
#- name: CloudLib - Restore dependencies CloudLibSyncAzureFunction | |
# working-directory: ./main/CloudLibSyncAzureFunction | |
# run: dotnet restore | |
#- name: CloudLib - Build | |
# run: dotnet build ./main/UA-CloudLibrary.sln --configuration Release --no-restore | |
#- name: CloudLib - Start up UA Cloud Library Server | |
# env: | |
# ServicePassword: ${{env.CLOUDLIB_PASSWORD}} | |
# # Connection string for PostgreSQL from Cloud Library | |
# CloudLibraryPostgreSQL: 'Server=localhost;Username=testuser;Database=cloudlib_test;Port=5432;Password=password;SSLMode=Prefer;Include Error Detail=true' | |
# PostgreSQLEndpoint: 'localhost' | |
# PostgreSQLUsername: 'testuser' | |
# PostgreSQLPassword: 'password' | |
# run: | | |
# dotnet ./main/UACloudLibraryServer/bin/Release/net6.0/UA-CloudLibrary.dll & | |
# # This takes over 10 minutes to run. | |
#- name: CloudLib - Test | |
# run: dotnet test ./main/UA-CloudLibrary.sln --no-build --configuration Release --verbosity normal -l:"console;verbosity=normal" | |
#- name: CloudLib - List databases after test run | |
# run: | | |
# sudo -u postgres psql -l --command="\du" | |
- name: Marketplace API - Check out the repo | |
uses: actions/checkout@v2 | |
with: | |
submodules: true | |
#- name: Start MongoDB | |
# run: docker run -d --name mongodb \ | |
# mongo:latest | |
#-p 27017:27017 \ | |
#-e MONGO_INIT_DATABASE=snapshot_marketplace_db_2023-07-19 \ | |
#-e MONGO_INITDB_ROOT_USERNAME=testuser \ | |
#-e MONGO_INITDB_ROOT_PASSWORD=password \ | |
- name: Create mongoDB Docker container | |
run: docker run -d -p 27017:27017 -e MONGO_INIT_DATABASE=snapshot_marketplace_db_2023-07-19 -e MONGO_INITDB_ROOT_USERNAME=testuser -e MONGO_INITDB_ROOT_PASSWORD=password mongo:latest | |
- name: Setup mongodb-tools | |
run: | | |
wget https://fastdl.mongodb.org/tools/db/mongodb-database-tools-ubuntu2204-x86_64-100.6.1.deb | |
sudo apt install ./mongodb-database-tools-*-100.6.1.deb | |
mongorestore --version | |
- name: Add data to MarketplaceItem collection | |
run: mongorestore /db:snapshot_marketplace_db_2023-07-19 /collection:MarketplaceItem /uri:"mongodb://localhost:27017" test-data/MarketplaceItem.bson | |
#- name: Add data to LookupItem | |
# run: mongorestore --nsInclude=snapshot_marketplace_db_2023-07-19.LookupItem ./test-data/LookupItem.bson | |
- name: PROCESS INQUIRY #1 ------------------------ | |
run: | | |
ps ax | |
- name: Marketplace API - Set up dotnet core ${{ env.NETCORE_VERSION }} | |
uses: actions/setup-dotnet@v1 | |
with: | |
dotnet-version: ${{ env.NETCORE_VERSION }} | |
- name: PROCESS INQUIRY #2 ------------------------ | |
run: | | |
ps ax | |
- name: Marketplace API - Restore dependencies (${{env.SOLUTION_FILE}}) | |
run: dotnet restore ${{env.SOLUTION_FILE}} | |
working-directory: ${{env.SOLUTION_DIRECTORY}} | |
- name: PROCESS INQUIRY #3 ------------------------ | |
run: | | |
ps ax | |
- name: Marketplace API - Build (${{env.SOLUTION_FILE}}) | |
run: dotnet build ${{env.SOLUTION_FILE}} --configuration Release --no-restore | |
- name: PROCESS INQUIRY #4 ------------------------ | |
run: | | |
ps ax | |
- name: Marketplace API - Start up Marketplace Server | |
env: | |
DBCONN: ${{ env.MONGODB_CONNECTION }} | |
SERVICEPASSWORD: ${{env.CLOUDLIB_PASSWORD}} | |
EnableCloudLibSearch: false | |
run: | | |
./api/CESMII.Marketplace.API/bin/Release/net6.0/CESMII.Marketplace.API $DBCONN $SERVICEPASSWORD & | |
- name: PROCESS INQUIRY #5 ------------------------ | |
run: | | |
ps ax | |
# Call Marketplace Api sure that someone's at home. | |
- name: Test | |
run: dotnet test ./CESMII.Marketplace.RestApi/CESMII.Marketplace.RestApi.csproj | |
- name: PROCESS INQUIRY #6 ------------------------ | |
run: | | |
ps ax | |
#- name: Add other libraries and all that jazz ========================================= | |
# run: | | |
# sudo apt update -y | |
# sudo apt-get install -y gconf-service libasound2 libcairo2 libcups2 libfontconfig1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget libgbm-dev | |
#- name: PROCESS INQUIRY #6 ------------------------ | |
# run: | | |
# ps ax | |
#- name: FrontEnd - Setup chrome driver | |
# uses: browser-actions/setup-chrome@latest | |
#- name: PROCESS INQUIRY #7 ------------------------ | |
# run: | | |
# ps ax | |
#- name: FrontEnd - Start browser and fetch version | |
# run: chrome --version | |
#- name: PROCESS INQUIRY #8 ------------------------ | |
# run: | | |
# ps ax | |
#- name: FrontEnd - Use Node.js version (${{env.NODEJS_VERSION}}) | |
# uses: actions/setup-node@v1 | |
# with: | |
# node-version: ${{env.NODEJS_VERSION}} | |
#- name: PROCESS INQUIRY #9 ------------------------ | |
# run: | | |
# ps ax | |
#- name: FrontEnd - Build React Code - npm install, build | |
# working-directory: ${{env.NPM_WORKING_DIRECTORY}} | |
# env: | |
# CI: '' #when process-env-ci is true, warnings are ignored and not treated as errors | |
# run: | | |
# npm install | |
# npm run build:in-browser-test | |
# npm run start-in-browser-test & | |
#- name: PROCESS INQUIRY #10 ------------------------ | |
# run: | | |
# ps ax | |
##- name: Docker - launch standalone chrome browser | |
## run: | | |
## docker run -d -p 4444:4444 selenium/standalone-chrome | |
#- name: In-Browser Testing - Restore dependencies CESMII.Marketplace.InBrowser.Tests | |
# working-directory: ${{env.SOLUTION_DIRECTORY}} | |
# run: dotnet restore | |
#- name: PROCESS INQUIRY #11 ------------------------ | |
# run: | | |
# ps ax | |
#- name: In-Browser Testing - Run Test on project (${{env.PROJECT_NAME}}) | |
# run: dotnet test ${{env.SOLUTION_DIRECTORY}}api/Tests/CESMII.Marketplace.InBrowser.Tests/${{env.PROJECT_NAME}}.csproj --configuration Staging --verbosity normal -l:"console;verbosity=normal" | |
# working-directory: ${{env.SOLUTION_DIRECTORY}} |