mirror of
https://github.com/codex-storage/bittorrent-benchmarks.git
synced 2025-02-13 11:36:28 +00:00
add CI flow, fix broken import
This commit is contained in:
parent
55487c5a75
commit
84c02e3745
66
.github/workflows/ci.yml
vendored
Normal file
66
.github/workflows/ci.yml
vendored
Normal file
@ -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,7 +3,6 @@ import sys
|
||||
from pathlib import Path
|
||||
from typing import Dict
|
||||
|
||||
import typer
|
||||
from pydantic_core import ValidationError
|
||||
|
||||
from benchmarks.core.config import ConfigParser, ExperimentBuilder
|
||||
@ -13,8 +12,6 @@ from benchmarks.deluge.config import DelugeExperimentConfig
|
||||
config_parser = ConfigParser()
|
||||
config_parser.register(DelugeExperimentConfig)
|
||||
|
||||
app = typer.Typer()
|
||||
|
||||
|
||||
def cmd_list(experiments: Dict[str, ExperimentBuilder[Experiment]], _):
|
||||
"""
|
||||
|
@ -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__)
|
||||
|
||||
|
@ -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"]
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user