-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #125 from AmpelProject/pydantic-2
Pydantic 2
- Loading branch information
Showing
10 changed files
with
385 additions
and
332 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -11,134 +11,10 @@ on: | |
pull_request: | ||
branches: | ||
- master | ||
- dev/* | ||
|
||
jobs: | ||
test: | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- uses: actions/checkout@v3 | ||
- uses: actions/setup-python@v4 | ||
with: | ||
python-version: '3.10' | ||
- name: Install dependencies (with all extras) | ||
run: | | ||
python -m pip install --upgrade poetry | ||
poetry install $(cat pyproject.toml | awk '/^\s*$/{f=0};f{if ($1!="docs") printf(" -E %s",$1)};/\[tool\.poetry\.extras\]/{f=1}') | ||
- run: poetry run pytest --cov=ampel | ||
|
||
mypy: | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- uses: actions/checkout@v3 | ||
- uses: actions/setup-python@v4 | ||
with: | ||
python-version: '3.10' | ||
- name: Install dependencies (with all extras) | ||
run: | | ||
python -m pip install --upgrade poetry | ||
poetry install $(cat pyproject.toml | awk '/^\s*$/{f=0};f{if ($1!="docs") printf(" -E %s",$1)};/\[tool\.poetry\.extras\]/{f=1}') | ||
- run: poetry run mypy --namespace-packages -p ampel | ||
|
||
check_version: | ||
name: Tag version bump | ||
runs-on: ubuntu-latest | ||
# run only on pushes, not PRs | ||
if: ${{ github.event_name == 'push' && github.base_ref == null }} | ||
needs: [test, mypy] | ||
outputs: | ||
should_publish: ${{ steps.check.outputs.result }} | ||
steps: | ||
- uses: actions/setup-node@v3 | ||
with: | ||
node-version: 14 | ||
- run: npm install [email protected] | ||
- name: Ensure tag for version bump | ||
id: check | ||
uses: actions/github-script@v6 | ||
with: | ||
script: | | ||
const toml = require('toml') | ||
async function getVersion(ref) { | ||
try { | ||
response = await github.rest.repos.getContent({ | ||
repo: context.repo.repo, | ||
owner: context.repo.owner, | ||
path: 'pyproject.toml', | ||
ref: ref | ||
}); | ||
return toml.parse(Buffer.from(response.data.content, 'base64').toString()) | ||
.tool | ||
.poetry | ||
.version; | ||
} catch (exc) { | ||
if (exc.name == 'HttpError' && exc.status == 404) { | ||
return null; | ||
} else { | ||
throw exc; | ||
} | ||
} | ||
} | ||
after = await getVersion(context.payload.after); | ||
ref = `refs/tags/v${after}` | ||
is_main = context.payload.ref === `refs/heads/${context.payload.repository.default_branch}` | ||
// a tag matching the version was just pushed | ||
let release = context.payload.ref == ref; | ||
if (release) { | ||
console.log(`Tag v${after} pushed (${context.sha})`); | ||
} | ||
// the version on the default branch changed; create a tag | ||
if (!release && is_main) { | ||
before = await getVersion(context.payload.before); | ||
if (before !== after) { | ||
console.log(`Version bumped: ${before} -> ${after}`); | ||
try { | ||
await github.rest.git.createRef({ | ||
owner: context.repo.owner, | ||
repo: context.repo.repo, | ||
ref, | ||
sha: context.sha | ||
}); | ||
console.log(`Tag v${after} created (${context.sha})`); | ||
release = true; | ||
} catch (exc) { | ||
// tag already existed | ||
if (exc.name == 'HttpError' && exc.status == 422) { | ||
console.log(`Skipping publish (tag v${after} already exists)`); | ||
release = false; | ||
} else { | ||
throw exc; | ||
} | ||
} | ||
} else { | ||
console.log(`Skipping publish (version is still ${before})`); | ||
} | ||
} else if (!is_main) { | ||
console.log(`Skipping publish (push to ${context.payload.ref} != refs/heads/${context.payload.repository.default_branch})`); | ||
} | ||
return release; | ||
ci: | ||
uses: AmpelProject/Ampel-interface/.github/workflows/ci.yml@ci-py12-v1 | ||
secrets: inherit | ||
|
||
pypi: | ||
name: Publish to PyPI | ||
runs-on: ubuntu-latest | ||
needs: [check_version] | ||
# NB: outputs are always strings; explicitly parse to get a boolean | ||
if: ${{ fromJSON(needs.check_version.outputs.should_publish) }} | ||
|
||
steps: | ||
- uses: actions/checkout@v3 | ||
- uses: actions/setup-python@v4 | ||
with: | ||
python-version: '3.10' | ||
- name: Install poetry | ||
run: | | ||
python -m pip install --upgrade poetry | ||
- name: Publish | ||
run: | | ||
poetry config repositories.testpypi https://test.pypi.org/legacy/ | ||
poetry publish -n --build | ||
env: | ||
POETRY_PYPI_TOKEN_PYPI: ${{ secrets.PYPI_API_TOKEN }} | ||
POETRY_PYPI_TOKEN_TESTPYPI: ${{ secrets.PYPI_TEST_API_TOKEN }} |
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
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
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
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
Oops, something went wrong.