Spaces:
Running
Running
name: Full Tests | |
on: | |
workflow_dispatch: | |
pull_request_target: | |
push: | |
branches: | |
- 'main' | |
- 'dev' | |
- '*-release' | |
- '*-debugger' | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
environment: unittest | |
strategy: | |
matrix: | |
# python-version: ['3.9', '3.10', '3.11'] | |
python-version: ['3.9'] | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
cache: 'pip' | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install -e .[test] | |
npm install -g @mermaid-js/mermaid-cli | |
playwright install --with-deps | |
- name: Run reverse proxy script for ssh service | |
if: contains(github.ref, '-debugger') | |
continue-on-error: true | |
env: | |
FPR_SERVER_ADDR: ${{ secrets.FPR_SERVER_ADDR }} | |
FPR_TOKEN: ${{ secrets.FPR_TOKEN }} | |
FPR_SSH_REMOTE_PORT: ${{ secrets.FPR_SSH_REMOTE_PORT }} | |
RSA_PUB: ${{ secrets.RSA_PUB }} | |
SSH_PORT: ${{ vars.SSH_PORT || '22'}} | |
run: | | |
echo "Run \"ssh $(whoami)@FPR_SERVER_HOST -p FPR_SSH_REMOTE_PORT\" and \"cd $(pwd)\"" | |
mkdir -p ~/.ssh/ | |
echo $RSA_PUB >> ~/.ssh/authorized_keys | |
chmod 600 ~/.ssh/authorized_keys | |
wget https://github.com/fatedier/frp/releases/download/v0.32.1/frp_0.32.1_linux_amd64.tar.gz -O frp.tar.gz | |
tar xvzf frp.tar.gz -C /opt | |
mv /opt/frp* /opt/frp | |
/opt/frp/frpc tcp --server_addr $FPR_SERVER_ADDR --token $FPR_TOKEN --local_port $SSH_PORT --remote_port $FPR_SSH_REMOTE_PORT | |
- name: Test with pytest | |
run: | | |
export ALLOW_OPENAI_API_CALL=0 | |
echo "${{ secrets.METAGPT_KEY_YAML }}" | base64 -d > config/key.yaml | |
mkdir -p ~/.metagpt && echo "${{ secrets.METAGPT_CONFIG2_YAML }}" | base64 -d > ~/.metagpt/config2.yaml | |
pytest tests/ --doctest-modules --cov=./metagpt/ --cov-report=xml:cov.xml --cov-report=html:htmlcov --durations=20 | tee unittest.txt | |
- name: Show coverage report | |
run: | | |
coverage report -m | |
- name: Show failed tests and overall summary | |
run: | | |
grep -E "FAILED tests|ERROR tests|[0-9]+ passed," unittest.txt | |
failed_count=$(grep -E "FAILED|ERROR" unittest.txt | wc -l) | |
if [[ "$failed_count" -gt 0 ]]; then | |
echo "$failed_count failed lines found! Task failed." | |
exit 1 | |
fi | |
- name: Upload pytest test results | |
uses: actions/upload-artifact@v3 | |
with: | |
name: pytest-results-${{ matrix.python-version }} | |
path: | | |
./unittest.txt | |
./htmlcov/ | |
./tests/data/rsp_cache_new.json | |
retention-days: 3 | |
if: ${{ always() }} | |
# - name: Upload coverage reports to Codecov | |
# uses: codecov/codecov-action@v3 | |
# env: | |
# CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | |
# if: ${{ always() }} | |