Skip to content

Commit

Permalink
Add sdk test job that runs against an active server
Browse files Browse the repository at this point in the history
This is the same as the `test-against-latest-api` CircleCI job
in the sdk repository.
  • Loading branch information
legoktm committed Jan 2, 2024
1 parent 4c084ab commit 8798207
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 0 deletions.
38 changes: 38 additions & 0 deletions .github/workflows/sdk.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: SDK
on: [push, pull_request]

defaults:
run:
shell: bash

jobs:
sdk-with-server:
runs-on: ubuntu-latest
env:
DOCKERIZE_VERSION: "v0.7.0"
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v4
with:
repository: "freedomofpress/securedrop"
path: "securedrop-server"
- uses: actions/setup-python@v5
with:
python-version: "3.9"
- name: Install dependencies
run: |
pip install poetry==1.6.1
wget https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSION/dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz &&
tar -C /usr/local/bin -xzvf dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz &&
rm dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz
- name: Run tests without VCR cassettes
run: |
# Start the server in the background
NUM_SOURCES=5 make -C securedrop-server dev &
# And install deps
poetry -C client install --no-ansi
# Wait for server to come up
dockerize -wait http://127.0.0.1:8080 -timeout 5m
# Run tests
rm client/tests/sdk/data/*.yml
make -C client test-sdk
5 changes: 5 additions & 0 deletions client/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@ clean: ## Clean the workspace of generated resources
TESTS ?= tests
ITESTS ?= tests/integration
FTESTS ?= tests/functional
STESTS ?= tests/sdk
TESTOPTS ?= -v --cov-config .coveragerc --cov-report html --cov-report term-missing --cov=securedrop_client --cov-fail-under 90
RANDOM_SEED ?= $(shell bash -c 'echo $$RANDOM')

Expand Down Expand Up @@ -104,6 +105,10 @@ test-integration: ## Run the integration tests
test-functional: ## Run the functional tests
@./test-functional.sh

.PHONY: test-sdk
test-sdk: ## Run just the sdk tests
@poetry run pytest -v $(STESTS)

.PHONY: lint
lint: ## Run the linters
@poetry run flake8 securedrop_client tests
Expand Down

0 comments on commit 8798207

Please sign in to comment.