88 lines
2.6 KiB
YAML
88 lines
2.6 KiB
YAML
name: 'Fetch Submodules'
|
|
|
|
inputs:
|
|
target:
|
|
description: 'The target for ci_fetch_deps'
|
|
required: false
|
|
type: string
|
|
|
|
submodules:
|
|
description: 'The submodules to cache'
|
|
required: false
|
|
default: '["extmod/ulab", "lib/", "tools/"]'
|
|
type: string
|
|
|
|
action:
|
|
description: 'The cache action to use'
|
|
required: false
|
|
default: 'restore'
|
|
type: choice
|
|
options:
|
|
- cache
|
|
- restore
|
|
|
|
version:
|
|
description: 'Whether to generate CP version'
|
|
required: false
|
|
default: false
|
|
type: boolean
|
|
|
|
outputs:
|
|
frozen:
|
|
description: 'Whether frozen submodules were fetched'
|
|
value: ${{ steps.cp-deps.outputs.frozen_tags }}
|
|
|
|
version:
|
|
description: 'The CP version'
|
|
value: ${{ steps.cp-version.outputs.cp-version }}
|
|
|
|
runs:
|
|
using: "composite"
|
|
steps:
|
|
- name: Create submodule status
|
|
id: create-submodule-status
|
|
run: |
|
|
git submodule status ${{ join(fromJSON(inputs.submodules), ' ') }} >> submodule_status
|
|
echo $(cut -d ' ' -f 2 submodule_status) | echo "submodules=[\"$(sed "s/ /\", \"/g")\"]" >> $GITHUB_OUTPUT
|
|
shell: bash
|
|
|
|
- name: Cache submodules
|
|
if: ${{ inputs.action == 'cache' }}
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: ".git/modules/\n${{ join(fromJSON(steps.create-submodule-status.outputs.submodules), '\n') }}"
|
|
key: submodules-common-${{ hashFiles('submodule_status') }}
|
|
enableCrossOsArchive: true
|
|
|
|
- name: Restore submodules
|
|
if: ${{ inputs.action == 'restore' }}
|
|
uses: actions/cache/restore@v3
|
|
with:
|
|
path: ".git/modules/\n${{ join(fromJSON(steps.create-submodule-status.outputs.submodules), '\n') }}"
|
|
key: submodules-common-${{ hashFiles('submodule_status') }}
|
|
enableCrossOsArchive: true
|
|
|
|
- name: Remove submodule status
|
|
run: rm submodule_status
|
|
shell: bash
|
|
|
|
- name: CircuitPython dependencies
|
|
id: cp-deps
|
|
run: python tools/ci_fetch_deps.py ${{ inputs.target || matrix.board || github.job }}
|
|
shell: bash
|
|
|
|
- name: CircuitPython version
|
|
id: cp-version
|
|
if: ${{ inputs.version == 'true' }}
|
|
run: |
|
|
echo "::group::Fetch history and tags"
|
|
git fetch --no-recurse-submodules --shallow-since="2021-07-01" --tags https://github.com/adafruit/circuitpython HEAD
|
|
git fetch --no-recurse-submodules --shallow-since="2021-07-01" origin $GITHUB_SHA
|
|
git repack -d
|
|
echo "::endgroup::"
|
|
CP_VERSION=$(tools/describe)
|
|
echo "$CP_VERSION"
|
|
echo "CP_VERSION=$CP_VERSION" >> $GITHUB_ENV
|
|
echo "cp-version=$CP_VERSION" >> $GITHUB_OUTPUT
|
|
shell: bash
|