pytorch-lightning
68 строк · 1.9 Кб
1name: Call building packages
2
3on:
4workflow_call:
5inputs:
6artifact-name:
7description: "Unique name for collecting artifacts"
8required: true
9type: string
10pkg-names:
11description: "list package names to be build in json format"
12required: false
13type: string
14default: |
15["lightning", "app", "fabric", "pytorch"]
16
17defaults:
18run:
19shell: bash
20
21jobs:
22init:
23runs-on: ubuntu-22.04
24steps:
25- uses: actions/checkout@v4
26- run: |
27mkdir dist && touch dist/.placeholder
28- name: Keep artifact
29id: keep-artifact
30run: python -c "print('DAYS=' + str(5 if '${{ github.event_name }}'.startswith('pull_request') else 0))" >> $GITHUB_OUTPUT
31- uses: actions/upload-artifact@v3
32with:
33name: ${{ inputs.artifact-name }}
34path: dist
35retention-days: ${{ steps.keep-artifact.outputs.DAYS }}
36
37build-packages:
38needs: init
39runs-on: ubuntu-22.04
40strategy:
41max-parallel: 1 # run sequential to prevent download/upload collisions
42matrix:
43pkg-name: ${{ fromJSON(inputs.pkg-names) }}
44steps:
45- uses: actions/checkout@v4
46- uses: actions/download-artifact@v3
47with:
48name: ${{ inputs.artifact-name }}
49path: pypi
50- uses: actions/setup-python@v5
51with:
52python-version: 3.9
53
54- run: python -c "print('NB_DIRS=' + str(2 if '${{ matrix.pkg-name }}' == 'pytorch' else 1))" >> $GITHUB_ENV
55- name: Build & check package
56uses: ./.github/actions/pkg-check
57with:
58pkg-name: ${{ matrix.pkg-name }}
59nb-dirs: ${{ env.NB_DIRS }}
60
61- run: |
62mkdir pypi/${{ matrix.pkg-name }}
63cp dist/* pypi/${{ matrix.pkg-name }}/
64
65- uses: actions/upload-artifact@v3
66with:
67name: ${{ inputs.artifact-name }}
68path: pypi
69