Improve documentation #146
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 | |
# - create pr | |
# - comment result and add labels | |
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 | |
# Python 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: ${{ github.server_url }}/${{ 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: ${{ github.server_url }}/${{ 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: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} | |
- 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" | |
# Create PR | |
- 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 }} | |
labels: submission | |
base: main | |
# Check result | |
## Gets results of repo tests, and creates comment to post into issue/PR | |
- name: Check test results | |
id: check-return | |
run: | | |
# STD check | |
echo "### Standard tests" >> $GITHUB_STEP_SUMMARY | |
if [[ "${{ steps.standard.outputs.result }}" == *"True"* ]]; then | |
echo "PASS_STD=True" >> "$GITHUB_OUTPUT" | |
echo ":sparkles: Successfull submission!" >> $GITHUB_STEP_SUMMARY | |
else | |
echo "PASS_STD=False" >> "$GITHUB_OUTPUT" | |
echo ":x: The submission didn't pass the standard check." >> $GITHUB_STEP_SUMMARY | |
echo "Please follow minimal requirements for project or/and add ecosystem.json configuration in the root of the project." >> $GITHUB_STEP_SUMMARY | |
echo "Read more here ${{ github.server_url }}/${{ github.repository }}/blob/main/docs/project_overview.md#adding-project-to-the-ecosystem." >> $GITHUB_STEP_SUMMARY | |
fi | |
# STB check | |
echo "### Stable tests" >> $GITHUB_STEP_SUMMARY | |
if [[ "${{ steps.stable.outputs.result }}" == *"True"* ]]; then | |
echo "PASS_STB=True" >> "$GITHUB_OUTPUT" | |
echo ":sparkles: Tests with latest version of Qiskit release passed!" >> $GITHUB_STEP_SUMMARY | |
else | |
echo "PASS_STB=False" >> "$GITHUB_OUTPUT" | |
echo ":warning: The submission didn't pass the stable check." >> $GITHUB_STEP_SUMMARY | |
echo "This means your project doesn't work with the latest version of Qiskit." >> $GITHUB_STEP_SUMMARY | |
echo "This is purely informational and doesn't affect your project joining the Ecosystem, but you may want to investigate the problem." >> $GITHUB_STEP_SUMMARY | |
fi | |
# DEV check | |
echo "### Development tests" >> $GITHUB_STEP_SUMMARY | |
if [[ "${{ steps.dev.outputs.result }}" == *"True"* ]]; then | |
echo "PASS_DEV=True" >> "$GITHUB_OUTPUT" | |
echo ":sparkles: Tests with development version of Qiskit release passed!" >> $GITHUB_STEP_SUMMARY | |
else | |
echo "PASS_DEV=False" >> "$GITHUB_OUTPUT" | |
echo ":warning: The submission didn't pass the development check." >> $GITHUB_STEP_SUMMARY | |
echo "This means your project might not work with the next version of Qiskit." >> $GITHUB_STEP_SUMMARY | |
echo "This is purely informational and doesn't affect your project joining Ecosystem." >> $GITHUB_STEP_SUMMARY | |
fi | |
# Gen info | |
echo "" >> $GITHUB_STEP_SUMMARY | |
echo "---" >> $GITHUB_STEP_SUMMARY | |
echo "Logs: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}" >> $GITHUB_STEP_SUMMARY | |
echo "PR #${{ steps.cpr.outputs.pull-request-number }}" >> $GITHUB_STEP_SUMMARY | |
# Create summary_output.md | |
echo "$(cat $GITHUB_STEP_SUMMARY)" > summary_output.md | |
# PR labels and comment | |
- name: "Label 'ready'" | |
continue-on-error: true | |
uses: actions/github-script@v6 | |
if: ${{ steps.check-return.outputs.PASS_STD == 'True' }} | |
with: | |
script: | | |
// PR | |
github.rest.issues.addLabels({ | |
issue_number: ${{ steps.cpr.outputs.pull-request-number }}, | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
labels: ["ready"] | |
}) | |
github.rest.issues.removeLabel({ | |
issue_number: ${{ steps.cpr.outputs.pull-request-number }}, | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
name: ["on hold"] | |
}) | |
// Issue | |
github.rest.issues.addLabels({ | |
issue_number: context.issue.number, | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
labels: ["ready"] | |
}) | |
github.rest.issues.removeLabel({ | |
issue_number: context.issue.number, | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
name: ["on hold"] | |
}) | |
- name: "Label 'on hold'" | |
continue-on-error: true | |
uses: actions/github-script@v6 | |
if: ${{ steps.check-return.outputs.PASS_STD != 'True' }} | |
with: | |
script: | | |
// PR | |
github.rest.issues.addLabels({ | |
issue_number: ${{ steps.cpr.outputs.pull-request-number }}, | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
labels: ["on hold"] | |
}) | |
github.rest.issues.removeLabel({ | |
issue_number: ${{ steps.cpr.outputs.pull-request-number }}, | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
name: ["ready"] | |
}) | |
// Issue | |
github.rest.issues.addLabels({ | |
issue_number: context.issue.number, | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
labels: ["on hold"] | |
}) | |
github.rest.issues.removeLabel({ | |
issue_number: context.issue.number, | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
name: ["ready"] | |
}) | |
- name: "PR: Post comment" | |
uses: peter-evans/create-or-update-comment@v3 | |
with: | |
issue-number: ${{ steps.cpr.outputs.pull-request-number }} | |
body-path: "summary_output.md" | |
- name: "Issue: Post comment" | |
uses: peter-evans/create-or-update-comment@v3 | |
with: | |
issue-number: ${{ github.event.issue.number }} | |
body-path: "summary_output.md" |