[DISCUSS] Do we want to keep dev tests as strict filter for Ecosystem member #115
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Ecosystem | Submission check | |
### | |
# - install deps | |
# - parse issue | |
# - run lint, coverage, tests | |
# - comment result | |
# - link pr to issue | |
on: | |
issues: | |
types: [opened, edited, reopened] | |
jobs: | |
submission_workflow: | |
concurrency: | |
group: ci-${{ github.event.issue.title }} | |
cancel-in-progress: true | |
if: startsWith(github.event.issue.title, '[Submission]:') | |
runs-on: ubuntu-latest | |
env: | |
tox_env: "py39" | |
tier: "Community" | |
python-version: "3.9" | |
steps: | |
# setup deps | |
- uses: actions/checkout@v3 | |
- name: Set up Python ${{ env.python-version }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ env.python-version }} | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install -r requirements.txt | |
pip install -r requirements-dev.txt | |
# workflow | |
- name: Parse submission | |
id: parse-issue | |
env: | |
ISSUE_BODY: ${{ github.event.issue.body }} | |
run: python manager.py parser_issue --body="$ISSUE_BODY" | |
- name: Tests stable check | |
id: stable | |
uses: ./.github/actions/run-tests | |
with: | |
repo_url: ${{ steps.parse-issue.outputs.SUBMISSION_REPO }} | |
test_type: "stable" | |
tox_env: ${{ env.tox_env }} | |
tier: ${{ env.tier }} | |
logs_link: https://github.com/${{github.repository}}/actions/runs/${{github.run_id}} | |
- name: Tests dev check | |
id: dev | |
uses: ./.github/actions/run-tests | |
with: | |
repo_url: ${{ steps.parse-issue.outputs.SUBMISSION_REPO }} | |
test_type: "development" | |
tox_env: ${{ env.tox_env }} | |
tier: ${{ env.tier }} | |
logs_link: https://github.com/${{github.repository}}/actions/runs/${{github.run_id}} | |
- name: Tests standard repo check | |
id: standard | |
uses: ./.github/actions/run-tests | |
with: | |
repo_url: ${{ steps.parse-issue.outputs.SUBMISSION_REPO }} | |
test_type: "standard" | |
tox_env: ${{ env.tox_env }} | |
tier: ${{ env.tier }} | |
logs_link: https://github.com/${{github.repository}}/actions/runs/${{github.run_id}} | |
# Check result, update issue and create MR | |
- name: Check return | |
id: check-return | |
run: | | |
echo "PASS_LOG=True" >> "$GITHUB_OUTPUT" | |
declare -a return_list=( \ | |
"${{ steps.stable.outputs.result }}" \ | |
"${{ steps.standard.outputs.result }}" \ | |
"${{ steps.dev.outputs.result }}" \ | |
) | |
for i in "${return_list[@]}"; do | |
if [[ "${i}" != *"True"* ]]; then | |
echo "PASS_LOG=False" >> "$GITHUB_OUTPUT" | |
fi | |
done | |
- name: Check the check | |
id: check-result | |
run: | | |
echo "Pass log is ${{ steps.check-return.outputs.PASS_LOG }}" | |
- name: Add member | |
env: | |
SUBMISSION_NAME: ${{ steps.parse-issue.outputs.SUBMISSION_NAME }} | |
SUBMISSION_REPO: ${{ steps.parse-issue.outputs.SUBMISSION_REPO }} | |
SUBMISSION_DESCRIPTION: ${{ steps.parse-issue.outputs.SUBMISSION_DESCRIPTION }} | |
SUBMISSION_LICENCE: ${{ steps.parse-issue.outputs.SUBMISSION_LICENCE }} | |
SUBMISSION_CONTACT: ${{ steps.parse-issue.outputs.SUBMISSION_CONTACT }} | |
SUBMISSION_ALTERNATIVES: ${{ steps.parse-issue.outputs.SUBMISSION_ALTERNATIVES }} | |
SUBMISSION_AFFILIATIONS: ${{ steps.parse-issue.outputs.SUBMISSION_AFFILIATIONS }} | |
SUBMISSION_LABELS: ${{ steps.parse-issue.outputs.SUBMISSION_LABELS }} | |
SUBMISSION_WEBSITE: ${{ steps.parse-issue.outputs.SUBMISSION_WEBSITE }} | |
run: | | |
python manager.py add_repo_2db --repo_name="$SUBMISSION_NAME" \ | |
--repo_link="$SUBMISSION_REPO" \ | |
--repo_description="$SUBMISSION_DESCRIPTION" \ | |
--repo_licence="$SUBMISSION_LICENCE" \ | |
--repo_contact="$SUBMISSION_CONTACT" \ | |
--repo_alt="$SUBMISSION_ALTERNATIVES" \ | |
--repo_affiliations="$SUBMISSION_AFFILIATIONS" \ | |
--repo_labels="$SUBMISSION_LABELS" \ | |
--repo_website="$SUBMISSION_WEBSITE" | |
- name: Commit changes and create Pull Request | |
id: cpr | |
uses: peter-evans/create-pull-request@v5 | |
with: | |
commit-message: Submission - Add ${{ steps.parse-issue.outputs.SUBMISSION_REPO }} to list. | |
title: Add ${{ steps.parse-issue.outputs.SUBMISSION_NAME }} to list. | |
body: | | |
Add ${{ steps.parse-issue.outputs.SUBMISSION_NAME }} to list. | |
Closes #${{ github.event.issue.number }} | |
branch: submission-${{ github.event.issue.number }} | |
base: main | |
- name: Create comment on success | |
if: ${{ steps.check-return.outputs.PASS_LOG == 'True' }} | |
uses: peter-evans/create-or-update-comment@v3 | |
with: | |
issue-number: ${{ github.event.issue.number }} | |
body: | | |
Successfull submission! :sparkles: PR #${{ steps.cpr.outputs.pull-request-number }} | |
- name: Create comment on failure | |
if: ${{ steps.check-return.outputs.PASS_LOG == 'False' }} | |
uses: peter-evans/create-or-update-comment@v3 | |
with: | |
issue-number: ${{ github.event.issue.number }} | |
body: | | |
Submission PR #${{ steps.cpr.outputs.pull-request-number }} has been created with errors in tests :warning: | |
See logs: https://github.com/qiskit-community/ecosystem/actions/runs/${{ github.run_id }} | |
Please follow minimal requirements for project or/and add `ecosystem.json` configuration in the root of the project | |
Read more here https://github.com/qiskit-community/ecosystem/blob/main/docs/project_overview.md#adding-project-to-the-ecosystem |