lightning/.github/workflows/release-pypi.yml

225 lines
6.3 KiB
YAML
Raw Normal View History

name: PyPI
# https://help.github.com/en/actions/reference/events-that-trigger-workflows
on:
push:
branches: [master, "release/*"]
release:
types: [published]
2022-12-01 20:12:15 +00:00
defaults:
run:
shell: bash
jobs:
init:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
- run: |
mkdir dist && touch dist/.placeholder
- uses: actions/upload-artifact@v3
with:
name: dist-packages-${{ github.sha }}
path: dist
build-packages:
needs: init
runs-on: ubuntu-20.04
strategy:
fail-fast: true
2022-12-01 20:12:15 +00:00
max-parallel: 1 # run sequential to prevent download/upload collisions
matrix:
2022-11-10 23:19:55 +00:00
pkg-name: ["lightning", "app", "lite", "pytorch"]
steps:
- uses: actions/checkout@v3
- uses: actions/download-artifact@v3
with:
name: dist-packages-${{ github.sha }}
path: dist
- uses: actions/setup-python@v4
with:
2021-10-26 11:58:20 +00:00
python-version: 3.9
- name: Install dependencies
run: pip install -U setuptools wheel
- name: Build packages
env:
PACKAGE_NAME: ${{ matrix.pkg-name }}
2020-09-25 12:15:06 +00:00
run: |
python setup.py sdist bdist_wheel
2020-09-25 12:15:06 +00:00
ls -lh dist/
- uses: actions/upload-artifact@v3
with:
name: dist-packages-${{ github.sha }}
path: dist
upload-packages:
runs-on: ubuntu-20.04
needs: build-packages
2021-05-19 19:15:58 +00:00
if: startsWith(github.event.ref, 'refs/tags') || github.event_name == 'release'
2021-02-03 17:35:42 +00:00
steps:
- uses: actions/checkout@v3
- uses: actions/download-artifact@v3
2021-02-03 17:35:42 +00:00
with:
name: dist-packages-${{ github.sha }}
2021-02-03 17:35:42 +00:00
path: dist
- run: ls -lh dist/
- name: Upload to release
2021-02-03 17:35:42 +00:00
uses: AButler/upload-release-assets@v2.0
with:
2021-02-03 17:35:42 +00:00
files: 'dist/*'
repo-token: ${{ secrets.GITHUB_TOKEN }}
2022-12-01 20:12:15 +00:00
release-version:
runs-on: ubuntu-20.04
outputs:
tag: ${{ steps.lai-package.outputs.version }}
steps:
- uses: actions/checkout@v3
- name: install Package
env:
PACKAGE_NAME: "lightning"
run: pip install . -f https://download.pytorch.org/whl/cpu/torch_stable.html
- name: package Version
id: lai-package
run: python -c "import lightning as L; print(f'version={L.__version__}')" >> $GITHUB_OUTPUT
2022-12-01 20:12:15 +00:00
signaling:
runs-on: ubuntu-20.04
2022-12-02 09:29:56 +00:00
needs: [release-version]
if: startsWith(github.event.ref, 'refs/tags') || github.event_name == 'release'
2022-12-01 20:12:15 +00:00
env:
TAG: ${{ needs.release-version.outputs.tag }}
steps:
- uses: actions/setup-python@v4
with:
python-version: 3.8
- uses: actions/checkout@v3
with:
repository: gridai/base-images
token: ${{ secrets.PAT_GHOST }}
- name: Update lightning version
run: |
import json, os
with open("versions.json") as fo:
vers = json.load(fo)
vers["lightning_version"] = os.getenv('TAG')
with open("versions.json", "w") as fw:
json.dump(vers, fw)
shell: python
- run: cat versions.json
- name: GIT commit & push
env:
BRANCH_NAME: "trigger/lightning-${{ env.TAG }}"
2022-12-01 20:12:15 +00:00
run: |
git config --global user.name "PL Ghost"
git config --global user.email pl-github@grid.ai
git checkout -b ${BRANCH_NAME}
2022-12-01 20:12:15 +00:00
git add versions.json
git status
git commit -m "bumping lightning version -> ${TAG}"
git push -u origin ${BRANCH_NAME} -f
2022-12-01 20:12:15 +00:00
waiting:
runs-on: ubuntu-20.04
needs: [release-version, signaling]
env:
TAG: ${{ needs.release-version.outputs.tag }}
timeout-minutes: 90
2022-12-01 20:12:15 +00:00
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
2022-12-01 20:12:15 +00:00
with:
python-version: 3.8
- run: pip install gitpython
- name: Delay releasing
run: |
import git, os, time
repo = git.Repo('.')
branch = f"origin/builds/{os.getenv('TAG')}"
while True:
remote_refs = [b.name for b in repo.remote().refs]
if branch in remote_refs:
break
time.sleep(60)
for remote in repo.remotes:
remote.fetch()
shell: python
2022-12-01 20:12:15 +00:00
2022-12-01 20:12:15 +00:00
pre-publish-packages:
2021-01-21 16:12:29 +00:00
runs-on: ubuntu-20.04
needs: build-packages
2021-05-19 19:15:58 +00:00
if: startsWith(github.event.ref, 'refs/tags') || github.event_name == 'release'
2021-01-21 16:12:29 +00:00
steps:
- uses: actions/checkout@v3
- uses: actions/download-artifact@v3
2021-01-21 16:12:29 +00:00
with:
name: dist-packages-${{ github.sha }}
2021-01-21 16:12:29 +00:00
path: dist
2021-02-03 17:35:42 +00:00
- run: ls -lh dist/
- run: mkdir pypi/
2022-12-01 20:12:15 +00:00
- uses: ./.github/actions/pkg-publish
with:
2022-12-01 20:12:15 +00:00
pkg-pattern: "*app*"
pypi-test-token: ${{ secrets.PYPI_TEST_TOKEN_APP }}
- uses: ./.github/actions/pkg-publish
with:
pkg-pattern: "*lite*"
pypi-test-token: ${{ secrets.PYPI_TEST_TOKEN_LITE }}
- uses: ./.github/actions/pkg-publish
with:
pkg-pattern: "*pytorch*"
pypi-test-token: ${{ secrets.PYPI_TEST_TOKEN_PYTORCH }}
- uses: ./.github/actions/pkg-publish
with:
pkg-pattern: "*"
pypi-test-token: ${{ secrets.PYPI_TEST_TOKEN_LAI }}
2022-12-01 20:12:15 +00:00
publish-packages:
runs-on: ubuntu-20.04
needs: [build-packages, waiting]
2022-12-01 20:12:15 +00:00
if: startsWith(github.event.ref, 'refs/tags') || github.event_name == 'release'
steps:
- uses: actions/checkout@v3
- uses: actions/download-artifact@v3
with:
name: dist-packages-${{ github.sha }}
path: dist
- run: ls -lh dist/
- run: mkdir pypi/
- uses: ./.github/actions/pkg-publish
with:
pkg-pattern: "*app*"
pypi-token: ${{ secrets.PYPI_TOKEN_APP }}
- uses: ./.github/actions/pkg-publish
with:
pkg-pattern: "*lite*"
pypi-token: ${{ secrets.PYPI_TOKEN_LITE }}
- uses: ./.github/actions/pkg-publish
with:
pkg-pattern: "*pytorch*"
pypi-token: ${{ secrets.PYPI_TOKEN_PYTORCH }}
- uses: ./.github/actions/pkg-publish
with:
pkg-pattern: "*"
pypi-token: ${{ secrets.PYPI_TOKEN_LAI }}
2022-10-27 13:16:09 +00:00
legacy-checkpoints:
2022-12-02 09:29:56 +00:00
needs: [build-packages]
uses: ./.github/workflows/legacy-checkpoints.yml
with:
push_to_s3: ${{ startsWith(github.event.ref, 'refs/tags') || github.event_name == 'release' }}
create_pr: ${{ startsWith(github.event.ref, 'refs/tags') || github.event_name == 'release' }}
2022-10-27 13:16:09 +00:00
secrets:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_KEY_ID: ${{ secrets.AWS_SECRET_KEY_ID }}