-
Notifications
You must be signed in to change notification settings - Fork 84
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
Spruce release workflows #216
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
name: 'Test PyPI Spruce Release: Nightly (pinecone-client-spruce-dev)' | ||
|
||
on: | ||
workflow_dispatch: | ||
schedule: | ||
- cron: '0 0 * * *' | ||
|
||
jobs: | ||
run-tests: | ||
uses: './.github/workflows/testing.yaml' | ||
|
||
pypi-spruce-nightly: | ||
needs: run-tests | ||
timeout-minutes: 30 | ||
name: pypi-nightly | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v4 | ||
with: | ||
ref: spruce | ||
|
||
- name: Get recent changes | ||
id: list-commits | ||
run: | | ||
recentCommits=$(git log --since=yesterday --oneline) | ||
echo "commits=$recentCommits" >> "$GITHUB_OUTPUT" | ||
|
||
- name: Abort if no recent changes | ||
if: steps.list-commits.outputs.commits == '' | ||
uses: andymckay/[email protected] | ||
|
||
- name: Set spruce dev version | ||
id: version | ||
run: | | ||
versionFile="pinecone/__version__" | ||
currentDate=$(date +%Y%m%d%H%M%S) | ||
versionNumber=$(cat $versionFile) | ||
devVersion="${versionNumber}.dev${currentDate}.spruceDev" | ||
echo "$devVersion" > $versionFile | ||
|
||
- name: Adjust module name | ||
run: | | ||
sed -i 's/pinecone-client/pinecone-client-spruce-dev/g' pyproject.toml | ||
|
||
- name: Update README | ||
run: | | ||
echo "This is a nightly Spruce developer build of the Pinecone Python client. It is not intended for production use." > README.md | ||
|
||
- uses: actions/setup-python@v4 | ||
with: | ||
python-version: 3.x | ||
|
||
- name: Setup Poetry | ||
uses: ./.github/actions/setup-poetry | ||
|
||
- name: Build Python client | ||
run: make package | ||
|
||
- name: Upload Python Spruce client to Test PyPI | ||
id: pypi_upload | ||
env: | ||
TWINE_REPOSITORY: testpypi | ||
PYPI_USERNAME: ${{ secrets.TEST_PYPI_USERNAME }} | ||
PYPI_PASSWORD: ${{ secrets.TEST_PYPI_PASSWORD }} | ||
run: make upload-spruce |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
name: 'Test PyPI Release: Spruce build (pinecone-client-spruce)' | ||
|
||
on: | ||
workflow_dispatch: {} | ||
|
||
jobs: | ||
testing: | ||
uses: './.github/workflows/testing.yaml' | ||
|
||
version-and-release-spruce: | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Initially I wanted to leverage However, since we're not actually bumping the version for Spruce, it felt odd to make a lot of changes to support that. Instead I opted to use the same flow for publishing that we leverage in |
||
timeout-minutes: 30 | ||
name: Release Spruce dev build to test pypi | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout Spruce | ||
uses: actions/checkout@v4 | ||
with: | ||
ref: spruce | ||
|
||
- name: Set spruce dev version | ||
id: version | ||
run: | | ||
versionFile="pinecone/__version__" | ||
currentDate=$(date +%Y%m%d%H%M%S) | ||
versionNumber=$(cat $versionFile) | ||
devVersion="${versionNumber}.${currentDate}.spruce" | ||
echo "$devVersion" > $versionFile | ||
|
||
- name: Adjust module name | ||
run: | | ||
sed -i 's/pinecone-client/pinecone-client-spruce/g' pyproject.toml | ||
|
||
- name: Update README | ||
run: | | ||
echo "This is Spruce build of the Pinecone Python client. It is not intended for production use." > README.md | ||
|
||
- uses: actions/setup-python@v4 | ||
with: | ||
python-version: 3.x | ||
|
||
- name: Setup Poetry | ||
uses: ./.github/actions/setup-poetry | ||
|
||
- name: Build Python client | ||
run: make package | ||
|
||
- name: Upload Python Spruce client to Test PyPI | ||
id: pypi_upload | ||
env: | ||
TWINE_REPOSITORY: testpypi | ||
PYPI_USERNAME: ${{ secrets.TEST_PYPI_USERNAME }} | ||
PYPI_PASSWORD: ${{ secrets.TEST_PYPI_PASSWORD }} | ||
run: make upload-spruce |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -23,6 +23,11 @@ package: | |
|
||
upload: | ||
poetry publish --verbose --username ${PYPI_USERNAME} --password ${PYPI_PASSWORD} | ||
|
||
upload-spruce: | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. poetry requires a configuration command to set up the repository for test-pypi: https://python-poetry.org/docs/repositories/#publishable-repositories |
||
# Configure Poetry for publishing to testpypi | ||
poetry config repositories.test-pypi https://test.pypi.org/legacy/ | ||
poetry publish --verbose -r test-pypi --username ${PYPI_USERNAME} --password ${PYPI_PASSWORD} | ||
|
||
license: | ||
# Add license header using https://github.com/google/addlicense. | ||
|
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.
Made changes in here initially and backed them out, but prettier had some updates.