Add buildkite pipeline for publishing to PyPI#3748
Conversation
2fb3b14 to
b7ca75d
Compare
10c5e86 to
f06b27b
Compare
diff.sh is used in here: https://github.com/elastic/connectors/blob/main/.buildkite/pipeline.yml#L84
We had a {major}.{minor}.{patch}.{release} available at some point, but since we release with stack it could be hard to organise well. We might need more strict QA process for it? I'd open a discussion with our team and potentially the clients team - they can give a good hint about it.
Additionally, if we feel like it's too much we can keep the current process for docker images around for now (same as we do now with |
44740b8 to
ab30eb8
Compare
65327f9 to
eb5072a
Compare
| # Copy Python packages to DRA artifacts directory | ||
| cp $RELEASE_DIR/app/connectors_service/dist/*.whl $DRA_ARTIFACTS_DIR/connectors-service-$VERSION.whl | ||
| cp $RELEASE_DIR/app/connectors_service/dist/*.tar.gz $DRA_ARTIFACTS_DIR/connectors-service-$VERSION.tar.gz | ||
| cp $RELEASE_DIR/libs/connectors_sdk/dist/*.whl $DRA_ARTIFACTS_DIR/connectors-sdk-$VERSION.whl | ||
| cp $RELEASE_DIR/libs/connectors_sdk/dist/*.tar.gz $DRA_ARTIFACTS_DIR/connectors-sdk-$VERSION.tar.gz |
There was a problem hiding this comment.
So this adds the wheels and tarballs to the artefacts that we release, and then we'll change this in the other place that uses them, right?
There was a problem hiding this comment.
I'm not sure what "the other place" is. 😅
What this PR does is
- on push to target branch (main or version branch), build and test wheels, then publish them as DRAs (my limited understanding was that simply putting them in the right folder was enough??)
- on push to target branch, build Docker image (by building and installing from wheel; it builds again, doesn't download the one from DRA) and publish as DRA
There was a problem hiding this comment.
https://github.com/elastic/infra/blob/master/cd/release/release-manager/project-configs/master/connectors.gradle is where our DRA artifacts are defined to be expected. We'll need to update that.
Then, I think @artem-shelkovnikov might be referencing is Elastic Agent's consumption of our current zip artifact. It's used here (see original PR). However, I think you and I agree that this doesn't need to be changed right now.
There was a problem hiding this comment.
seanstory
left a comment
There was a problem hiding this comment.
Great work. Sorry for leaving a lot of little nits.
d313de8 to
072855a
Compare
Related to #3748, I wanted to get all the related `cp` and `mv` statements co-located, so that if logic needed to change, it would be easier to identify _all_ the artifacts that would be impacted. ## Checklists #### Pre-Review Checklist - [x] this PR does NOT contain credentials of any kind, such as API keys or username/passwords (double check `config.yml.example`) - [x] this PR has a meaningful title - [x] this PR links to all relevant github issues that it fixes or partially addresses - [x] this PR has a thorough description - [x] Added a label for each target release version (example: `v7.13.2`, `v7.14.0`, `v8.0.0`)
Related to https://github.com/elastic/connectors-py/issues/10999
twine checkthem; forconnectors_serviceit will also install it and test the CLI entrypoints it exposes (e.g.connectors --help)pyproject.tomlpytest,pyright, andruffconfig intopyproject.tomland removed individual fileslicenseinpyproject.tomlto avoid deprecation warnings (removal in 2026) - see warnings herepackagesinpyproject.tomlto avoid "ambiguous packages" warning - see warning here❓ I don't seenevermind, I was looking fordiff.shused anywhere.. can I delete it or am I missing sth?diff.shinstead of justdiff✍️ Process moving forward
Daily per PR:
pipeline.ymlwill contain:.tar.gzand.whlof our packagesRelease day:
TODO:
catalog-info.ymlChecklists
Pre-Review Checklist
config.yml.example)v7.13.2,v7.14.0,v8.0.0)Changes Requiring Extra Attention
Related Pull Requests
Release Note