From 75ab1611a3be425b4cd50a3ffe36501bd67c93de Mon Sep 17 00:00:00 2001 From: Mihai Date: Mon, 4 Mar 2024 22:35:55 -0500 Subject: [PATCH] initial commit --- .github/workflows/docker.yml | 52 ----------- .github/workflows/jobs.yml | 172 +++++++++++++++++++++++++++++++++++ .github/workflows/lint.yml | 54 ----------- .github/workflows/static.yml | 39 -------- .github/workflows/test.yml | 73 --------------- 5 files changed, 172 insertions(+), 218 deletions(-) delete mode 100644 .github/workflows/docker.yml create mode 100644 .github/workflows/jobs.yml delete mode 100644 .github/workflows/lint.yml delete mode 100644 .github/workflows/static.yml delete mode 100644 .github/workflows/test.yml diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml deleted file mode 100644 index 60eccc13a7..0000000000 --- a/.github/workflows/docker.yml +++ /dev/null @@ -1,52 +0,0 @@ -name: "Docker: Build and push agent0 image" - -on: - workflow_dispatch: - push: - branches: - - main - -env: - REGISTRY: ghcr.io - IMAGE_NAME: ${{ github.repository }}/agent0 - -jobs: - build-and-push: - runs-on: ubuntu-latest - permissions: - contents: read - packages: write - steps: - - name: Check out code - uses: actions/checkout@v3 - with: - submodules: recursive - token: ${{secrets.GITHUB_TOKEN}} - - - name: Log in to the Container registry - uses: docker/login-action@v2.2.0 - with: - registry: ${{ env.REGISTRY }} - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Extract metadata (tags, labels) for Docker - id: meta - uses: docker/metadata-action@v4.5.0 - with: - images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} - tags: | - # Add a version tag when a valid semver tag is pushed. - type=semver,pattern={{version}} - # Add the edge tag to every image to represent the latest commit to main - type=edge,branch=main - - - name: Build and push Docker image - uses: docker/build-push-action@v4.1.0 - with: - context: . - push: true - file: ./Dockerfile - tags: | - ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} diff --git a/.github/workflows/jobs.yml b/.github/workflows/jobs.yml new file mode 100644 index 0000000000..32d80c0919 --- /dev/null +++ b/.github/workflows/jobs.yml @@ -0,0 +1,172 @@ +name: setup + +on: + push: + branches: + - main + pull_request: + +jobs: + setup-and-upload: + name: Set up virtual environment + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Setup Python + uses: actions/setup-python@v4 + with: + python-version: '3.10' + - name: install uv + run: curl -LsSf https://astral.sh/uv/install.sh | sh + - name: install venv + run: uv venv .venv -p 3.10 + - name: install requirements + run: | + source .venv/bin/activate + uv pip install --upgrade -r requirements.txt + uv pip install --upgrade -r requirements-rl.txt + uv pip install --upgrade -r requirements-dev.txt + - name: Upload virtual environment + uses: actions/upload-artifact@v3 + with: + name: venv + path: .venv + + lint: + name: Lint + runs-on: ubuntu-latest + needs: setup-and-upload + steps: + - uses: actions/checkout@v3 + with: + token: ${{github.token}} + - name: Download virtual environment + uses: actions/download-artifact@v3 + with: + name: venv + path: .venv + - name: run black + run: | + source .venv/bin/activate + python -m black --config pyproject.toml --check --diff . + - name: get all Python files + id: list_files + run: | + echo "files=$(git ls-files '*.py' '*.pyi' | xargs)" >> $GITHUB_OUTPUT + - name: run Pylint on files + run: | + source .venv/bin/activate + files="${{ steps.list_files.outputs.files }}" + if [ -n "$files" ]; then + pylint --rcfile=.pylintrc $files + else + echo "No Python files found." + fi + + static: + name: Static + runs-on: ubuntu-latest + needs: setup-and-upload + steps: + - uses: actions/checkout@v3 + with: + token: ${{github.token}} + - name: Download virtual environment + uses: actions/download-artifact@v3 + with: + name: venv + path: .venv + - name: Analyse code with pyright + run: | + source .venv/bin/activate + python -m pyright $(git ls-files '*.py' '*.pyi') + + test: + name: Test + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + token: ${{github.token}} + - name: install node + uses: actions/setup-node@v3 + with: + node-version: 16.x + - name: install packages + uses: borales/actions-yarn@v4 + with: + cmd: install # will run `yarn install` command + env: + # A warning is thrown here unnecessarily. tracking issue here: + # https://github.com/github/vscode-github-actions/issues/222 + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} # if needed + - name: install foundry + uses: foundry-rs/foundry-toolchain@v1 + with: + version: nightly + - name: set up python + uses: actions/setup-python@v4 + with: + python-version: "3.10" + cache: "pip" + token: ${{github.token}} + - name: Download virtual environment + uses: actions/download-artifact@v3 + with: + name: venv + path: .venv + - name: run pytest with coverage + run: | + source .venv/bin/activate + IN_CI=true coverage run -m pytest + - name: generate coverage report + run: | + source .venv/bin/activate + coverage xml -i + coverage html -i + - name: upload coverage report to Codecov + uses: codecov/codecov-action@v3 + with: + flags: unittests + fail_ci_if_error: true + # A warning is thrown here unnecessarily. tracking issue here: + # https://github.com/github/vscode-github-actions/issues/222 + token: ${{ secrets.CODECOV_TOKEN }} + + docker: + name: Docker image + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + steps: + - name: Check out code + uses: actions/checkout@v3 + with: + submodules: recursive + token: ${{secrets.GITHUB_TOKEN}} + - name: Log in to the Container registry + uses: docker/login-action@v2.2.0 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + - name: Extract metadata (tags, labels) for Docker + id: meta + uses: docker/metadata-action@v4.5.0 + with: + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + tags: | + # Add a version tag when a valid semver tag is pushed. + type=semver,pattern={{version}} + # Add the edge tag to every image to represent the latest commit to main + type=edge,branch=main + - name: Build and push Docker image + uses: docker/build-push-action@v4.1.0 + with: + context: . + push: true + file: ./Dockerfile + tags: | + ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml deleted file mode 100644 index c544110741..0000000000 --- a/.github/workflows/lint.yml +++ /dev/null @@ -1,54 +0,0 @@ -name: lint - -on: - push: - branches: - - main - pull_request: - -jobs: - build: - name: lint - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - with: - token: ${{github.token}} - - - name: set up python - uses: actions/setup-python@v4 - with: - python-version: "3.10" - cache: "pip" - token: ${{github.token}} - - - name: install uv - run: curl -LsSf https://astral.sh/uv/install.sh | sh - - - name: install requirements - run: | - uv venv .venv -p 3.10 - source .venv/bin/activate - uv pip install --upgrade -r requirements.txt - uv pip install --upgrade -r requirements-rl.txt - uv pip install --upgrade -r requirements-dev.txt - - - name: run black - run: | - source .venv/bin/activate - python -m black --config pyproject.toml --check --diff . - - - name: get all Python files - id: list_files - run: | - echo "files=$(git ls-files '*.py' '*.pyi' | xargs)" >> $GITHUB_OUTPUT - - - name: run Pylint on files - run: | - source .venv/bin/activate - files="${{ steps.list_files.outputs.files }}" - if [ -n "$files" ]; then - pylint --rcfile=.pylintrc $files - else - echo "No Python files found." - fi diff --git a/.github/workflows/static.yml b/.github/workflows/static.yml deleted file mode 100644 index fb0744ef9b..0000000000 --- a/.github/workflows/static.yml +++ /dev/null @@ -1,39 +0,0 @@ -name: static - -on: - push: - branches: - - main - pull_request: - -jobs: - build: - name: static - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - with: - token: ${{github.token}} - - - name: set up python - uses: actions/setup-python@v4 - with: - python-version: "3.10" - cache: "pip" - token: ${{github.token}} - - - name: install uv - run: curl -LsSf https://astral.sh/uv/install.sh | sh - - - name: install requirements - run: | - uv venv .venv -p 3.10 - source .venv/bin/activate - uv pip install --upgrade -r requirements.txt - uv pip install --upgrade -r requirements-rl.txt - uv pip install --upgrade -r requirements-dev.txt - - - name: analysing code with pyright - run: | - source .venv/bin/activate - python -m pyright $(git ls-files '*.py' '*.pyi') diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml deleted file mode 100644 index 04ae341324..0000000000 --- a/.github/workflows/test.yml +++ /dev/null @@ -1,73 +0,0 @@ -name: test - -on: - push: - branches: - - main - pull_request: - -jobs: - build: - name: test - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - with: - token: ${{github.token}} - - - name: install node - uses: actions/setup-node@v3 - with: - node-version: 16.x - - - name: install packages - uses: borales/actions-yarn@v4 - with: - cmd: install # will run `yarn install` command - env: - # A warning is thrown here unnecessarily. tracking issue here: - # https://github.com/github/vscode-github-actions/issues/222 - NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} # if needed - - - name: install foundry - uses: foundry-rs/foundry-toolchain@v1 - with: - version: nightly - - - name: set up python - uses: actions/setup-python@v4 - with: - python-version: "3.10" - cache: "pip" - token: ${{github.token}} - - - name: install uv - run: curl -LsSf https://astral.sh/uv/install.sh | sh - - - name: install requirements - run: | - uv venv .venv -p 3.10 - source .venv/bin/activate - uv pip install --upgrade -r requirements.txt - uv pip install --upgrade -r requirements-rl.txt - uv pip install --upgrade -r requirements-dev.txt - - - name: run pytest with coverage - run: | - source .venv/bin/activate - IN_CI=true coverage run -m pytest - - - name: generate coverage report - run: | - source .venv/bin/activate - coverage xml -i - coverage html -i - - - name: upload coverage report to Codecov - uses: codecov/codecov-action@v3 - with: - flags: unittests - fail_ci_if_error: true - # A warning is thrown here unnecessarily. tracking issue here: - # https://github.com/github/vscode-github-actions/issues/222 - token: ${{ secrets.CODECOV_TOKEN }}