69 lines
1.9 KiB
YAML
69 lines
1.9 KiB
YAML
name: Call building packages
|
|
|
|
on:
|
|
workflow_call:
|
|
inputs:
|
|
artifact-name:
|
|
description: "Unique name for collecting artifacts"
|
|
required: true
|
|
type: string
|
|
pkg-names:
|
|
description: "list package names to be build in json format"
|
|
required: false
|
|
type: string
|
|
default: |
|
|
["lightning", "app", "fabric", "pytorch"]
|
|
|
|
defaults:
|
|
run:
|
|
shell: bash
|
|
|
|
jobs:
|
|
init:
|
|
runs-on: ubuntu-22.04
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- run: |
|
|
mkdir dist && touch dist/.placeholder
|
|
- name: Keep artifact
|
|
id: keep-artifact
|
|
run: python -c "print('DAYS=' + str(5 if '${{ github.event_name }}'.startswith('pull_request') else 0))" >> $GITHUB_OUTPUT
|
|
- uses: actions/upload-artifact@v3
|
|
with:
|
|
name: ${{ inputs.artifact-name }}
|
|
path: dist
|
|
retention-days: ${{ steps.keep-artifact.outputs.DAYS }}
|
|
|
|
build-packages:
|
|
needs: init
|
|
runs-on: ubuntu-22.04
|
|
strategy:
|
|
max-parallel: 1 # run sequential to prevent download/upload collisions
|
|
matrix:
|
|
pkg-name: ${{ fromJSON(inputs.pkg-names) }}
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/download-artifact@v3
|
|
with:
|
|
name: ${{ inputs.artifact-name }}
|
|
path: pypi
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: 3.9
|
|
|
|
- run: python -c "print('NB_DIRS=' + str(2 if '${{ matrix.pkg-name }}' == 'pytorch' else 1))" >> $GITHUB_ENV
|
|
- name: Build & check package
|
|
uses: ./.github/actions/pkg-check
|
|
with:
|
|
pkg-name: ${{ matrix.pkg-name }}
|
|
nb-dirs: ${{ env.NB_DIRS }}
|
|
|
|
- run: |
|
|
mkdir pypi/${{ matrix.pkg-name }}
|
|
cp dist/* pypi/${{ matrix.pkg-name }}/
|
|
|
|
- uses: actions/upload-artifact@v3
|
|
with:
|
|
name: ${{ inputs.artifact-name }}
|
|
path: pypi
|