Skip to content

Commit

Permalink
add CI flow, fix broken import
Browse files Browse the repository at this point in the history
  • Loading branch information
gmega committed Dec 2, 2024
1 parent 55487c5 commit 84c02e3
Show file tree
Hide file tree
Showing 4 changed files with 79 additions and 8 deletions.
66 changes: 66 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
name: Test and Build

on:
push:
branches:
- master

workflow_dispatch:

env:
DOCKER_FILE: bittorrent-benchmarks.Dockerfile
DOCKER_REPO: codexstorage/bittorrent-benchmarks

jobs:
test-and-build:
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Setup Docker Metadata
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.DOCKER_REPO }}
flavor: |
latest=true
tags: |
type=sha
- name: Build Test Image
uses: docker/build-push-action@v6
with:
context: .
file: ${{ env.DOCKER_FILE }}
push: false
load: true
tags: bittorrent-benchmarks:test
build-args: |
BUILD_TYPE=test
- name: Type Check
run: |
docker run --rm --entrypoint mypy bittorrent-benchmarks:test .
- name: Run Unit Tests
run: |
docker run --rm --entrypoint pytest bittorrent-benchmarks:test -m "not integration"
- name: Build and Push Prod. Image
uses: docker/build-push-action@v6
with:
context: .
file: ${{ env.DOCKER_FILE }}
push: ${{ github.event_name != 'pull_request' }}
tags: bittorrent-benchmarks:latest
labels: ${{ steps.meta.outputs.labels }}
3 changes: 0 additions & 3 deletions benchmarks/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
from pathlib import Path
from typing import Dict

import typer
from pydantic_core import ValidationError

from benchmarks.core.config import ConfigParser, ExperimentBuilder
Expand All @@ -13,8 +12,6 @@
config_parser = ConfigParser()
config_parser.register(DelugeExperimentConfig)

app = typer.Typer()


def cmd_list(experiments: Dict[str, ExperimentBuilder[Experiment]], _):
"""
Expand Down
4 changes: 1 addition & 3 deletions benchmarks/core/experiments/experiments.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,9 @@
from abc import ABC, abstractmethod
from collections.abc import Iterable

from mypy.graph_utils import TypeVar

import logging

from typing_extensions import Generic
from typing_extensions import Generic, TypeVar

logger = logging.getLogger(__name__)

Expand Down
14 changes: 12 additions & 2 deletions bittorrent-benchmarks.Dockerfile
Original file line number Diff line number Diff line change
@@ -1,15 +1,25 @@
FROM python:3.12-slim

ARG BUILD_TYPE="test"

RUN pip install poetry && poetry config virtualenvs.create false

RUN mkdir /opt/bittorrent-benchmarks
WORKDIR /opt/bittorrent-benchmarks

RUN echo "CU"

COPY pyproject.toml poetry.lock ./
RUN poetry install --no-root
RUN if [ "$BUILD_TYPE" = "production" ]; then \
echo "Image is a production build"; \
poetry install --only main --no-root; \
else \
echo "Image is a test build"; \
poetry install --no-root; \
fi

COPY . .
RUN poetry install
RUN poetry install --only main

ENTRYPOINT ["/usr/local/bin/bittorrent-benchmarks", "/opt/bittorrent-benchmarks/experiments.yaml"]

0 comments on commit 84c02e3

Please sign in to comment.