Skip to content

Typofixes

Typofixes #1077

Workflow file for this run

name: CI
on: [push, pull_request]
env:
HTTPTOOLKIT_SERVER_DISABLE_AUTOUPDATE: 1 # Don't try to autoupdate during tests etc
jobs:
build:
name: Build & test
runs-on: ubuntu-22.04
container:
image: httptoolkit/act-build-base:v3.0.0
options: "--privileged" # Required for DIND tests
env:
DIND_HOST: unix:///tmp/docker.sock
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20.11.1
- run: npm install -g npm@^8
- name: Set up JDK 11 for Java testing
uses: actions/setup-java@v4
with:
java-version: 11
distribution: adopt-hotspot
- run: npm ci
env:
NPM_CONFIG_UNSAFE_PERM: true
- run: npm run build:src
- name: Prepare test environment
run: |
# Fix annoying Yarn issue: https://github.com/yarnpkg/yarn/issues/7866
curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
# Ditto but for Google:
curl -sL https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
sudo apt-get update
sudo apt-get install -y p7zip-full xterm
wget https://downloads.slack-edge.com/linux_releases/slack-desktop-4.12.2-amd64.deb
sudo apt install -y ./slack-desktop-4.12.2-amd64.deb
sudo cp test/no-sandbox-docker-wrapper.sh /usr/local/bin/google-chrome
sudo cp test/no-sandbox-docker-wrapper.sh /usr/local/bin/slack
# Fix $HOME perms to make Firefox happy
sudo chown $(whoami) $HOME
# Start a DIND docker host, running in the background
sudo dockerd -H $DIND_HOST &
sleep 5
# Pre-pull lots of the Docker images we'll want to use later
echo node:14 golang:1.16 openjdk:16-alpine3.13 python:3.9-slim ruby:alpine3.13 php:8.0-apache |
DOCKER_HOST=$DIND_HOST xargs -P10 -n1 docker pull
- run: DOCKER_HOST=$DIND_HOST xvfb-run npm run test
- run: npm run build:release
env:
SENTRY_AUTH_TOKEN: ${{ (github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') && secrets.SENTRY_AUTH_TOKEN) || '' }}
SENTRY_ORG: http-toolkit
SENTRY_PROJECT: httptoolkit-server
NPM_CONFIG_UNSAFE_PERM: true
- run: DOCKER_HOST=$DIND_HOST xvfb-run npm run test:integration:release
- uses: actions/upload-artifact@v4
with:
name: distributables
path: build/dist/*
if-no-files-found: error
- uses: actions/upload-artifact@v4
with:
name: test-scripts
path: test/distributables-test
if-no-files-found: error
test-distributables:
needs: build
strategy:
matrix:
include:
- platform: Ubuntu 24.04
os: "ubuntu-24.04"
test-script: "./unix.sh linux"
- platform: Ubuntu 22.04
os: "ubuntu-22.04"
test-script: "./unix.sh linux"
- platform: Ubuntu 20.04
os: "ubuntu-20.04"
test-script: "./unix.sh linux"
- platform: MacOS 14 (M1)
os: "macos-14"
test-script: "./unix.sh darwin"
- platform: MacOS 13
os: "macos-13"
test-script: "./unix.sh darwin"
- platform: MacOS 12
os: "macos-12"
test-script: "./unix.sh darwin"
- platform: Windows 2022
os: "windows-2022"
test-script: ".\\windows.bat"
- platform: Windows 2019
os: "windows-2019"
test-script: ".\\windows.bat"
fail-fast: false
name: Test on ${{ matrix.platform }}
runs-on: ${{ matrix.os }}
steps:
- name: Get our distributables
uses: actions/download-artifact@v4
with:
name: distributables
path: distributables
- name: Get the test scripts
uses: actions/download-artifact@v4
with:
name: test-scripts
path: .
- name: Make the test script executable
if: matrix.platform != 'Windows'
run: chmod +x unix.sh
- name: Test the server build
run: ${{ matrix.test-script }}
publish:
name: Publish a release
runs-on: "ubuntu-22.04"
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
needs:
- build
- test-distributables
steps:
- name: Get our distributables
uses: actions/download-artifact@v4
with:
name: distributables
path: distributables
- name: Upload server release
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: ./distributables/*/*
file_glob: true
tag: ${{ github.ref }}
- name: Upload latest manifest
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: ./distributables/latest-manifest/*
file_glob: true
tag: latest-manifest
overwrite: true