|
26 | 26 | run: | |
27 | 27 | python setup.py sdist bdist_wheel |
28 | 28 | twine upload dist/* |
29 | | - feedstock: |
30 | | - needs: build |
31 | | - runs-on: ubuntu-latest |
32 | | - steps: |
33 | | - - name: Set up Python 3.8 |
34 | | - uses: actions/setup-python@v1 |
35 | | - with: |
36 | | - python-version: 3.8 |
37 | | - - name: Checkout flask-restx code |
38 | | - uses: actions/checkout@v2 |
39 | | - with: |
40 | | - path: base |
41 | | - - name: Checkout flask-restx-feedstock code |
42 | | - uses: actions/checkout@v2 |
43 | | - with: |
44 | | - repository: python-restx/flask-restx-feedstock.git |
45 | | - path: feedstock |
46 | | - token: ${{ secrets.BOT_TOKEN }} |
47 | | - - name: Set Variables |
48 | | - id: vars |
49 | | - run: | |
50 | | - echo "::set-output name=version::$(echo ${{ github.ref }} | cut -d'/' -f3)" |
51 | | - - name: Create a release branch |
52 | | - run: | |
53 | | - cd feedstock |
54 | | - git remote add forge https://github.com/conda-forge/flask-restx-feedstock.git |
55 | | - git fetch forge |
56 | | - git checkout forge/master -b release-${{ steps.vars.outputs.version }} |
57 | | - - name: Update meta.yml |
58 | | - shell: python |
59 | | - run: | |
60 | | - from http import client |
61 | | - from pkg_resources import parse_requirements |
62 | | - import re |
63 | | - VERSION = "${{ steps.vars.outputs.version }}" |
64 | | - with open("feedstock/recipe/meta.yaml") as f: |
65 | | - meta = f.read() |
66 | | - requirements = [] |
67 | | - with open("base/requirements/install.pip") as f: |
68 | | - for req in parse_requirements(f): |
69 | | - name = req.project_name |
70 | | - versions = ",".join(["".join(spec) for spec in req.specs]) |
71 | | - if versions: |
72 | | - name += " " + versions |
73 | | - requirements.append(name) |
74 | | - requirements = '"' + '", "'.join(requirements) + '"' |
75 | | - conn = client.HTTPSConnection("pypi.org") |
76 | | - conn.request("GET", "/simple/flask-restx/") |
77 | | - resp = conn.getresponse() |
78 | | - content = str(resp.read(), "utf-8") |
79 | | - conn.close() |
80 | | - m = re.findall(r'flask-restx-%s.tar.gz#sha256=([A-Za-z0-9]+)"' % VERSION, content) |
81 | | - if not m: |
82 | | - raise Exception("sha256 not found in: %s" % content) |
83 | | - sha256 = m[0] |
84 | | - meta = re.sub(r'({% set version = )".+"( %})', r'\1"%s"\2' % VERSION, meta) |
85 | | - meta = re.sub(r'({% set sha256 = )".+"( %})', r'\1"%s"\2' % sha256, meta) |
86 | | - meta = re.sub(r"({% set requirements = \[).+(] %})", r"\1%s\2" % requirements, meta) |
87 | | - meta = re.sub(r"(number:) \d+", r"\1 0", meta) |
88 | | - with open("feedstock/recipe/meta.yaml", "w") as f: |
89 | | - f.write(meta) |
90 | | - - name: Push |
91 | | - run: | |
92 | | - cd feedstock |
93 | | - git config user.name "${{ secrets.BOT_USERNAME }}" |
94 | | - git config user.email "[email protected]" |
95 | | - git add recipe/meta.yaml |
96 | | - git commit -m"Release version ${{ steps.vars.outputs.version }}" |
97 | | - git push origin release-${{ steps.vars.outputs.version }} |
98 | | - - name: Create Pull Request |
99 | | - run: | |
100 | | - curl --fail -u ${{ secrets.BOT_USERNAME }}:${{ secrets.BOT_TOKEN }} https://api.github.com/repos/conda-forge/flask-restx-feedstock/pulls -d '{"title": "Release version ${{ steps.vars.outputs.version }}", "head": "python-restx:release-${{ steps.vars.outputs.version }}", "base": "master", "maintainer_can_modify": true}' |
0 commit comments