1+ name : PR Tests
2+
3+ # Trigger the workflow on pull request events
4+ on :
5+ pull_request :
6+ types : [opened, synchronize, reopened]
7+
8+ jobs :
9+ pr_test :
10+ strategy :
11+ matrix :
12+ os : [self-hosted]
13+ python-version : ["3.10"]
14+ runs-on : ${{ matrix.os }}
15+ steps :
16+ - name : Check out repository code
17+ uses : actions/checkout@v4
18+
19+ - run : echo "Repository -> ${{ github.repository }}"
20+ - run : echo "Branch -> ${{ github.ref }}"
21+ - run : echo "Trigger event -> ${{ github.event_name }}"
22+ - run : echo "Runner OS -> ${{ runner.os }}"
23+
24+ - name : List files in the repository
25+ run : |
26+ ls ${{ github.workspace }}
27+
28+ - name : Remove all micromamba installations
29+ run : |
30+ rm -rf $HOME/.bash_profile $HOME/.conda $HOME/micromamba $HOME/micromamba-bin 2>/dev/null
31+ touch $HOME/.bash_profile
32+
33+ - name : setup-micromamba
34+ 35+ with :
36+ generate-run-shell : true
37+ micromamba-version : ' 2.0.2-2'
38+ post-cleanup : ' all'
39+ init-shell : bash
40+ environment-file : .github/env.yaml
41+ create-args : >-
42+ python=${{ matrix.python-version }}
43+ pytest
44+ pytest-cov
45+ pytest-html
46+ flake8
47+ pip
48+
49+ - name : List installed package versions
50+ shell : bash -l {0}
51+ run : micromamba list
52+
53+ - name : Checkout biobb_common
54+ uses : actions/checkout@v4
55+ with :
56+ repository : bioexcel/biobb_common
57+ path : ' ./biobb_common'
58+
59+ - name : Run tests
60+ shell : bash -l {0}
61+ run : |
62+ # Ignoring docker and singularity tests
63+ export PYTHONPATH=.:./biobb_common:$PYTHONPATH
64+
65+ # Create directory for tests reports
66+ mkdir -p ./reports/junit
67+
68+ # Production one
69+ pytest biobb_cmip/test/unitests/ --ignore-glob=*container.py --ignore-glob=*docker.py --ignore-glob=*singularity.py
70+
71+ # Notify user about test results
72+ - name : Comment on PR
73+ if : always() # This ensures the step runs even if tests fail
74+ uses : actions/github-script@v6
75+ with :
76+ script : |
77+ const { payload, repo } = context; // Access GitHub context
78+ const prNumber = payload.pull_request.number;
79+ const jobStatus = '${{ job.status }}'; // Get job status (success/failure)
80+ const testStatus = jobStatus === 'success' ? '✅ Tests Passed!' : '❌ Tests Failed.';
81+
82+ await github.rest.issues.createComment({
83+ owner: repo.owner,
84+ repo: repo.repo,
85+ issue_number: prNumber,
86+ body: `**Test Results for PR #${prNumber}**\n\n${testStatus}`
87+ });
0 commit comments