-
Notifications
You must be signed in to change notification settings - Fork 18
Switching CI to GitHub actions #378
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
* tox.ini: tox-gh-actions integration * tox.ini: lint removed from envlist, default scope is test-only * workflows: test job added (matrixed) * workflows: lint job is separated, no-matrix, non-blocking on failure * workflows: reusable env lifting steps factored out into ./github/actions
dividedmind
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good, however I realized we seem to have lost access to the applandrobot pypi user — this might be a good excuse to set up OIDC connect publishing, see https://docs.pypi.org/trusted-publishers/
Could you take a look a that?
|
🎉 This PR is included in version 2.1.9-dev.1 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
|
@hleb-rubanau any progress? Do you need anything from me? |
@dividedmind in fact, new version is kinda ready for a while -- I just was delayed with final test (which happens to also include workarounds for lost ownership on testpypi). Hopefully will conduct it today and push changes. |
…ch policies under .releaserc, publish to pypi via trusted publishing mechanism
|
@dividedmind I've significantly reworked the whole flow Key changes:
Remark: I occasionally occupied project 'appmap' on the test.pypi.org and locked myself out of account. That was the reason to use altered distribution names in testpypi publishing flow. Documentation of testpypi promises regular wiping of accounts and assets so we can just wait for some time. If project and my abandoned acc stay there for long, I will try to reach out to platform administrators with explicit deletion request |
dividedmind
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok, LGTM!
I've added getappmap/appmap-python release.yml to trusted publishers. Anything else I need to do?
No, it should be sufficient. We can merge and check. Also I see someone needs to disable all Travis-related setttings in repo (right now github expects Travis CI check to be completed, which won't happen, because of toggles disabled on Travis side). |
Ugh, I wanted to change the branch protection to remove travis and add the gh, but it seems I'd have to add all the matrix jobs one by one. Gemini suggests adding a rollup job to simplify this: # ... existing jobs ...
# Add this new job at the end of your file
check_enforce:
name: Check (Rollup)
runs-on: ubuntu-latest
# Make sure this 'needs' matches the name of your matrix job
needs: [test]
if: always()
steps:
- name: Check build matrix status
run: |
# Check the status of the 'test' job (which includes all matrix variations)
if [ "${{ needs.test.result }}" != "success" ]; then
echo "One or more matrix jobs failed."
exit 1
fi
echo "All matrix jobs passed."Makes sense to me, more or less, what do you think? Can you add it if you think it's a good idea? |
|
(It looked like there is a way to make the rule conditional on workflow, not check, but it seems to be only available to enterprise github for now, so do go ahead with the rollup check if you agree it makes sense.) |
…rollup check of matrix tests status
This pull request reproduces previous Travis workflow on GithubActions with some tweaks & enhancements.
Key features:
master)mastere.g. during debug onci/**, artifacts are pushed to testpypi instead of main repo (condition is configurable)Examples:
After review and before merging:
POETRY_PYPI_TOKEN_PYPI(pypi user -- https://pypi.org/user/applandrobot/ )DOCKERHUB_PASSWORDfor applandinc user (this is optional but nice-to-have)