Skip to content

Chrome 152, Firefox 154, Edge 151 #1435

Chrome 152, Firefox 154, Edge 151

Chrome 152, Firefox 154, Edge 151 #1435

Workflow file for this run

name: Test upload functionality
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
if: ${{ !contains(github.event.head_commit.message, 'docs:') }}
steps:
- name: Harden Runner
uses: step-security/harden-runner@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4
with:
egress-policy: audit
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- name: Use Node.js
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6
with:
node-version: '24.x'
cache: 'npm'
- name: Install sitespeed.io
run: npm ci
- 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: Setup SSH/SCP container
# Use a pre-built linuxserver/openssh-server image instead of an
# apt-build on every CI run — Ubuntu's public mirrors have flaked
# repeatedly during `apt-get update` here. The user's home is
# /config (linuxserver convention), which is why the test below
# uses --scp.destinationPath /config/ rather than /home/scpuser/.
# We install rsync inside the container so the rsync plugin test
# below can use it on the receiving side.
run: |
docker run -d --name ssh-test -p 2222:2222 \
-e PUID=1000 -e PGID=1000 \
-e USER_NAME=scpuser \
-e USER_PASSWORD=password \
-e PASSWORD_ACCESS=true \
lscr.io/linuxserver/openssh-server:latest
for i in $(seq 1 20); do
if docker exec ssh-test apk --version >/dev/null 2>&1; then break; fi
sleep 1
done
docker exec ssh-test apk add --no-cache rsync
- name: Setup GCS container
run: |
docker run -d -p 8081:8081 fsouza/fake-gcs-server:1.50 -scheme http -port 8081 -external-url http://localhost:8081 -backend memory
curl -X POST -H "Content-Type: application/json" \
-d '{"name": "sitespeed"}' \
http://127.0.0.1:8081/storage/v1/b?project=sitespeed
- name: Setup minio/S3 container
run: |
docker compose -f test/docker/docker-compose.minio.yml up -d
- name: Install local HTTP server
run: npm install serve -g
- name: Start local HTTP server
run: (serve test/data/html/ -l 3001&)
- name: Install sshpass for the rsync password test
run: sudo apt-get install -y sshpass
- name: Run Chrome test sending data using scp
run: bin/sitespeed.js http://127.0.0.1:3001/simple/ --xvfb -n 1 --scp.host localhost --scp.port 2222 --scp.username scpuser --scp.password password --scp.destinationPath /config/
- name: Run Chrome test sending data using rsync
run: bin/sitespeed.js http://127.0.0.1:3001/simple/ --xvfb -n 1 --rsync.host localhost --rsync.port 2222 --rsync.username scpuser --rsync.password password --rsync.destinationPath /config/
- name: Run Chrome test sending data to GCS
run: STORAGE_EMULATOR_HOST="http://localhost:8081" node bin/sitespeed.js http://127.0.0.1:3001/simple/ --xvfb -n 1 --gcs.bucketname sitespeed --gcs.projectId sitespeed
- name: Run Chrome test sending data to S3
run: node bin/sitespeed.js http://127.0.0.1:3001/simple/ --xvfb -n 1 --s3.endpoint http://127.0.0.1:9000 --s3.bucketname sitespeedio --s3.key user --s3.secret password --s3.region motown