run cypress will all testcases #24
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
# ----------------------------------------------------------------------------- | |
# Copyright (C) TOSHIBA CORPORATION, 2024. Part of the SW360 Frontend Project. | |
# Copyright (C) Toshiba Software Development (Vietnam) Co., Ltd., 2024. Part of the SW360 Frontend Project. | |
# | |
# This program and the accompanying materials are made | |
# available under the terms of the Eclipse Public License 2.0 | |
# which is available at https://www.eclipse.org/legal/epl-2.0/ | |
# | |
# SPDX-License-Identifier: EPL-2.0 | |
# | |
# ----------------------------------------------------------------------------- | |
name: SW360-Frontend Build and Automation Test | |
on: | |
push: | |
branches: [ "test/ci-cypress" ] | |
pull_request: | |
branches: [ "test/ci-cypress" ] | |
workflow_dispatch: | |
permissions: write-all | |
env: | |
COUCHDB_USER: admin | |
COUCHDB_PASSWORD: password | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
submodules: 'true' | |
ssh-key: ${{ secrets.SUBMODULE_ACCESS_TOKEN }} | |
- name: Set environment variables | |
run: | | |
echo _JAVA_OPTIONS= '-Djdk.util.zip.disableZip64ExtraFieldValidation=true' >> $GITHUB_ENV | |
cat ./sw360/.versions >> $GITHUB_ENV | |
- name: Setup CouchDB | |
run: | | |
cd ./sw360 | |
scripts/startCouchdbForTests.sh | |
cd ../ | |
- name: Update properties with DB credentials | |
run: | | |
cd ./sw360 | |
sudo mkdir -p /etc/sw360 | |
sudo cp ./build-configuration/test-resources/couchdb-test.properties /etc/sw360/ | |
sudo cp ./scripts/sw360BackendRestDockerConfig/etc_sw360/rest-test.properties /etc/sw360/ | |
sudo sed -i 's/^couchdb.user\s*=/& '${COUCHDB_USER}'/' /etc/sw360/couchdb-test.properties | |
sudo sed -i 's/^couchdb.password\s*=/& '${COUCHDB_PASSWORD}'/' /etc/sw360/couchdb-test.properties | |
cd ../ | |
- name: Prepare build environment | |
run: | | |
sudo apt-get update -qq | |
sudo DEBIAN_FRONTEND=noninteractive apt-get install -yq python3-pip build-essential libboost-dev libboost-test-dev libboost-program-options-dev libevent-dev automake libtool flex bison pkg-config libssl-dev git cmake | |
pip install mkdocs mkdocs-material | |
- name: Set up JDK 11 | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '11' | |
distribution: 'temurin' | |
check-latest: true | |
cache: 'maven' | |
- name: Cache Thrift | |
id: cache-thrift | |
uses: actions/cache@v4 | |
with: | |
path: | | |
/usr/local/bin/thrift | |
/usr/share/thrift/${{ env.THRIFT_VERSION }} | |
key: ${{ runner.os }}-thrift-${{ env.THRIFT_VERSION }} | |
restore-keys: | | |
${{ runner.os }}-thrift-${{ env.THRIFT_VERSION }} | |
- name: Install Thrift | |
if: steps.cache-thrift.outputs.cache-hit != 'true' | |
run: | | |
cd ./sw360 | |
chmod +x scripts/install-thrift.sh | |
bash scripts/install-thrift.sh | |
cd ../ | |
- name: Build SW360 | |
run: | | |
cd ./sw360 | |
mvn clean install --no-transfer-progress -P deploy -Dhelp-docs=true -Dbase.deploy.dir=. -Dliferay.deploy.dir=${PWD}/deploy -Dbackend.deploy.dir=${PWD}/deploy/webapps -Drest.deploy.dir=${PWD}/deploy/webapps -DskipTests | |
cd ../ | |
- name: Deploy Backend and Rest Server | |
run: | | |
cd ./sw360 | |
sudo docker build -t sw360backendrest -f sw360BackendRest.Dockerfile . | |
sudo docker run -dt --network=host sw360backendrest | |
bash scripts/sw360BackendRestDockerConfig/scripts/checkDeploymentIsSuccess.sh | |
cd ../ | |
- name: Create users and oauth client | |
run: | | |
cd ./sw360 | |
bash scripts/sw360BackendRestDockerConfig/scripts/createUserAndOauthClient.sh | |
cd ../ | |
- name: Start frontend | |
run : | | |
npm ci | |
npm run lint | |
npm run build | |
npm i nohup -g | |
nohup npm start & | |
- name: Install Nodejs | |
run: | | |
sudo apt-get update | |
curl -sL https://deb.nodesource.com/setup_20.x | sudo -E bash - | |
sudo apt install nodejs -y | |
nodejs -v | |
npm -v | |
- name: Install Google Chrome | |
run: | | |
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb | |
sudo dpkg -i google-chrome-stable_current_amd64.deb | |
google-chrome --version | |
- name: Install dependencies of running sw360-frontend | |
run: | | |
sudo apt-get install -y libgtk2.0-0 libgtk-3-0 libgbm-dev libnotify-dev libnss3 libxss1 libasound2 libxtst6 xauth xvfb jq | |
npm i | |
- name: Run cypress | |
run: | | |
npx cypress run --browser chrome |