Skip to content

[Submission]: qiskit-classroom-converter #112

[Submission]: qiskit-classroom-converter

[Submission]: qiskit-classroom-converter #112

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