Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

test #190

Closed
wants to merge 2 commits into from
Closed

test #190

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
157 changes: 99 additions & 58 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,76 +3,117 @@ name: CI
on: [ pull_request ]

jobs:
pre-commit:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- uses: snok/install-poetry@v1
with:
virtualenvs-create: true
virtualenvs-in-project: true
installer-parallel: true
- uses: actions/setup-python@v5
with:
python-version: "3.10"
cache: 'poetry'
- name: Install dependencies
run: poetry install --no-interaction --no-root
- run: source .venv/bin/activate
- uses: pre-commit/action@v3.0.0

fast-tests:
runs-on: ubuntu-22.04
needs: [ pre-commit ]
steps:
- uses: actions/checkout@v4
- name: Unit tests
run: ./scripts/unit_tests.sh
- name: Execute Mypy
run: ./scripts/mypy.sh
- name: Build aspect integration tests
run: |
cd test/aspect
bazel build //...
- name: Build examples
run: |
cd examples
bazel build //...
# pre-commit:
# runs-on: ubuntu-22.04
# steps:
# - uses: actions/checkout@v4
# - uses: snok/install-poetry@v1
# with:
# virtualenvs-create: true
# virtualenvs-in-project: true
# installer-parallel: true
# - uses: actions/setup-python@v5
# with:
# python-version: "3.10"
# cache: 'poetry'
# - name: Install dependencies
# run: poetry install --no-interaction --no-root
# - run: source .venv/bin/activate
# - uses: pre-commit/action@v3.0.0
#
# fast-tests:
# runs-on: ubuntu-22.04
# needs: [ pre-commit ]
# steps:
# - uses: actions/checkout@v4
# - name: Unit tests
# run: ./scripts/unit_tests.sh
# - name: Execute Mypy
# run: ./scripts/mypy.sh
# - name: Build aspect integration tests
# run: |
# cd test/aspect
# bazel build //...
# - name: Build examples
# run: |
# cd examples
# bazel build //...

integration-tests-aspect:
runs-on: ubuntu-22.04
needs: [ fast-tests ]
strategy:
matrix:
os: [ ubuntu-22.04, macos-12, windows-2022 ]
runs-on: ${{ matrix.os }}
#needs: [ fast-tests ]
steps:
- uses: actions/checkout@v4
- name: Integration tests - Aspect
run: |
cd test/aspect
./execute_tests.py
cd test
cd aspect
python execute_tests.py
# - name: Integration tests - Aspect
# if: runner.os == 'Linux' || runner.os == 'macOS'
# run: |
# cd test/aspect
# ./execute_tests.py
# - name: Integration tests - Aspect
# if: runner.os == 'Windows'
# run: |
# cd test\aspect
# python execute_tests.py

integration-tests-apply-fixes:
runs-on: ubuntu-22.04
needs: [ fast-tests ]
strategy:
matrix:
os: [ ubuntu-22.04, macos-12, windows-2022 ]
runs-on: ${{ matrix.os }}
#needs: [ fast-tests ]
steps:
- run: |
mkdir --parents /tmp/bin
- uses: actions/checkout@v4
- name: Prepare buildozer
if: runner.os == 'Linux'
run: |
mkdir -p /tmp/bin
wget --no-verbose https://github.com/bazelbuild/buildtools/releases/download/v6.4.0/buildozer-linux-amd64 -O /tmp/bin/buildozer
chmod +x /tmp/bin/buildozer
- uses: actions/checkout@v4
- name: Prepare buildozer
if: runner.os == 'macOS'
run: |
mkdir -p /tmp/bin
wget --no-verbose https://github.com/bazelbuild/buildtools/releases/download/v6.4.0/buildozer-darwin-amd64 -O /tmp/bin/buildozer
chmod +x /tmp/bin/buildozer
- name: Prepare buildozer
if: runner.os == 'Windows'
run: |
New-Item -Path "D:\" -Name "Downloads" -ItemType Directory
Invoke-WebRequest -Uri "https://github.com/bazelbuild/buildtools/releases/download/v6.4.0/buildozer-windows-amd64.exe" -OutFile "D:\Downloads\buildozer.exe"
- name: Integration tests - Applying fixes
if: runner.os == 'Linux' || runner.os == 'macOS'
run: |
export PATH=/tmp/bin:$PATH
./test/apply_fixes/execute_tests.py

integration-tests-examples:
runs-on: ubuntu-22.04
needs: [ fast-tests ]
steps:
- uses: actions/checkout@v4
- name: Integration tests - Examples
run: |
cd examples
./test.py
- name: Integration tests - Examples with legacy WORKSPACE setup
./test/apply_fixes/execute_tests.py -v
- name: Integration tests - Applying fixes
if: runner.os == 'Windows'
run: |
cd examples
./test.py --legacy-workspace
echo "PATH=$env:PATH;D:\Downloads" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
python test/apply_fixes/execute_tests.py -v


# Works, but commented to ave resources
# integration-tests-examples:
# strategy:
# matrix:
# os: [ ubuntu-22.04, macos-12, windows-2022 ]
# runs-on: ${{ matrix.os }}
# needs: [ fast-tests ]
# steps:
# - uses: actions/checkout@v4
# - name: Integration tests - Examples
# run: |
# cd examples
# python test.py
# - name: Integration tests - Examples with legacy WORKSPACE setup
# run: |
# cd examples
# python test.py --legacy-workspace
4 changes: 2 additions & 2 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -36,5 +36,5 @@ repos:
hooks:
- id: ruff-format
# Linting
- id: ruff
args: [ --fix ]
# - id: ruff
# args: [ --fix ]
13 changes: 10 additions & 3 deletions test/aspect/execution_logic.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import logging
import subprocess
from importlib.machinery import SourceFileLoader
from os import environ
from pathlib import Path

from result import Error
Expand Down Expand Up @@ -37,7 +36,15 @@ def execute_test(test: TestCaseBase, version: TestedVersions, output_base: Path,


def get_current_workspace() -> Path:
process = subprocess.run(["bazel", "info", "workspace"], check=True, capture_output=True, text=True)
try:
process = subprocess.run(["bazel", "info", "workspace"], check=True, capture_output=True, text=True)
except Exception:
print("BAZEL INFO FAILED")
print("---- stdout ----")
print(process.stdout)
print("---- stderr ----")
print(process.stderr)
print("----------------")
return Path(process.stdout.strip())


Expand Down Expand Up @@ -72,7 +79,7 @@ def main(
versions = [TestedVersions(bazel=bazel, python=python)] if bazel and python else tested_versions

failed_tests = []
output_root = Path(environ["HOME"]) / ".cache" / "bazel" / workspace_path.relative_to("/")
output_root = Path.home() / ".cache" / "bazel" / "dwyu"
for version in versions:
output_base = output_root / f"aspect_integration_tests_bazel_{version.bazel}_python_{version.python}"
output_base.mkdir(parents=True, exist_ok=True)
Expand Down
Loading