Skip to content

Commit

Permalink
Add GUI action (#2)
Browse files Browse the repository at this point in the history
  • Loading branch information
soulgalore committed May 25, 2024
1 parent fe60429 commit 511193d
Show file tree
Hide file tree
Showing 5 changed files with 87 additions and 5 deletions.
18 changes: 15 additions & 3 deletions .github/workflows/api.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,14 +27,26 @@ jobs:
- name: Start the server
run: |
npm install --prefix server
node server/app.js &
node server/app.js > server.log 2>&1 &
- name: Start the testrunner
run: |
npm install --prefix testrunner
node testrunner/app.js &
node testrunner/app.js > testrunner.log 2>&1 &
- name: Install sitespeed.io globally
run: npm install sitespeed.io -g
- name: Show versions
run: |
docker --version
sitespeed.io --version
- name: Run a test
run: |
git clone https://github.com/sitespeedio/sitespeed.io.git
cd sitespeed.io
npm install
bin/sitespeed.js https://www.wikipedia.org -n 1 --api.hostname 127.0.0.1 --api.location default --headless --api.json
bin/sitespeed.js https://www.wikipedia.org -n 1 --api.hostname 127.0.0.1 --api.location default --headless --api.json
- name: Display Server log
if: failure() || success()
run: cat server.log
- name: Display testrunner log
if: failure() || success()
run: cat testrunner.log
52 changes: 52 additions & 0 deletions .github/workflows/gui.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: Test the GUI
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: '20.x'
- uses: actions/checkout@v4
- name: Install Chrome
run: |
wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
sudo apt-get update
sudo apt-get --only-upgrade install google-chrome-stable
google-chrome --version
- name: Start dependencies
run: docker-compose -f docker-compose.yml up -d
- name: Start the server
run: |
npm install --prefix server
node server/app.js > server.log 2>&1 &
- name: Start the testrunner
run: |
npm install --prefix testrunner
node testrunner/app.js --logging.verbose true > testrunner.log 2>&1 &
- name: Install sitespeed.io globally
run: npm install sitespeed.io -g
- name: Show versions
run: |
docker --version
sitespeed.io --version
- name: Run a test
run: |
git clone https://github.com/sitespeedio/sitespeed.io.git
cd sitespeed.io
npm install
bin/sitespeed.js ../test/scripts/addatest.mjs --multi -n 1 --headless
- name: Display Server log
if: failure() || success()
run: cat server.log
- name: Display testrunner log
if: failure() || success()
run: cat testrunner.log
16 changes: 16 additions & 0 deletions test/scripts/addatest.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
/**
* @param {import('browsertime').BrowsertimeContext} context
* @param {import('browsertime').BrowsertimeCommands} commands
*/
export default async function (context, commands) {
await commands.navigate('http://127.0.0.1:3000/');
await commands.addText.byId('https://www.wikipedia.org', 'url');
await commands.select.selectByIdAndValue('iterations', 1);
await commands.mouse.singleClick.byXpath('/html/body/section/div/div[2]/ul/li[2]');
await commands.wait.byId('commandlinearea', 5000);
await commands.addText.byId('--headless', 'commandlinearea');
await commands.measure.start('RunTest');
await commands.click.byIdAndWait('submittest');
await commands.wait.byXpath('/html/body/div[2]/h1',30000);
return commands.measure.stop();
}
3 changes: 2 additions & 1 deletion testrunner/src/testrunners/docker-testrunner.js
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ export default async function runJob(job) {
logger,
dockerLogger
);
logger.info('Finished with job');
logger.info('Finished with job with exit code: ' + testResult.exitCode);
const resultQueue = await queueHandler.getQueue('result');
let runTime = testResult.result.timestamp;
if (
Expand Down Expand Up @@ -174,6 +174,7 @@ async function runDocker(

await process;
} catch (error) {
logger.error('Could not run Docker:' + error);
exitCode = error.exitCode;
}

Expand Down
3 changes: 2 additions & 1 deletion testrunner/src/testrunners/testrunner.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ export default async function runJob(job) {
configFilePath,
logger
);
logger.info('Finished job');
logger.info('Finished job with exitCode %s', testResult.exitCode);
const resultQueue = await queueHandler.getQueue('result');

let runTime = testResult.result.timestamp;
Expand Down Expand Up @@ -130,6 +130,7 @@ async function runTest(job, workingDirectory, configFileName, logger) {
await process;
} catch (error) {
// if sitespeed.io exits with 0 zero, execa will throw an error
logger.error('Could not run sitespeed.io', error);
exitCode = error.exitCode;
}
try {
Expand Down

0 comments on commit 511193d

Please sign in to comment.