63 lines
2.2 KiB
YAML
63 lines
2.2 KiB
YAML
name: 'openpilot env setup'
|
|
|
|
inputs:
|
|
docker_hub_pat:
|
|
description: 'Auth token for Docker Hub, required for BuildJet jobs'
|
|
required: true
|
|
default: ''
|
|
is_retried:
|
|
description: 'A mock param that asserts that we use the setup-with-retry instead of this action directly'
|
|
required: false
|
|
default: 'false'
|
|
|
|
runs:
|
|
using: "composite"
|
|
steps:
|
|
# assert that this action is retried using the setup-with-retry
|
|
- shell: bash
|
|
if: ${{ inputs.is_retried == 'false' }}
|
|
run: |
|
|
echo "You should not run this action directly. Use setup-with-retry instead"
|
|
exit 1
|
|
|
|
# do this after checkout to ensure our custom LFS config is used to pull from GitLab
|
|
- shell: bash
|
|
run: git lfs pull
|
|
|
|
# on BuildJet runners, must be logged into DockerHub to avoid rate limiting
|
|
# https://buildjet.com/for-github-actions/docs/guides/docker
|
|
- shell: bash
|
|
if: ${{ contains(runner.name, 'buildjet') && inputs.docker_hub_pat == '' }}
|
|
run: |
|
|
echo "Need to set the Docker Hub PAT secret as an input to this action"
|
|
exit 1
|
|
- name: Login to Docker Hub
|
|
if: contains(runner.name, 'buildjet')
|
|
shell: bash
|
|
run: |
|
|
docker login -u adeebshihadeh -p ${{ inputs.docker_hub_pat }}
|
|
|
|
# build cache
|
|
- id: date
|
|
shell: bash
|
|
run: echo "CACHE_COMMIT_DATE=$(git log -1 --pretty='format:%cd' --date=format:'%Y-%m-%d-%H:%M')" >> $GITHUB_ENV
|
|
- shell: bash
|
|
run: echo "$CACHE_COMMIT_DATE"
|
|
- id: scons-cache
|
|
uses: ./.github/workflows/auto-cache
|
|
with:
|
|
path: .ci_cache/scons_cache
|
|
key: scons-${{ runner.arch }}-${{ env.CACHE_COMMIT_DATE }}-${{ github.sha }}
|
|
restore-keys: |
|
|
scons-${{ runner.arch }}-${{ env.CACHE_COMMIT_DATE }}
|
|
scons-${{ runner.arch }}
|
|
# as suggested here: https://github.com/moby/moby/issues/32816#issuecomment-910030001
|
|
- id: normalize-file-permissions
|
|
shell: bash
|
|
name: Normalize file permissions to ensure a consistent docker build cache
|
|
run: |
|
|
find . -type f -executable -not -perm 755 -exec chmod 755 {} \;
|
|
find . -type f -not -executable -not -perm 644 -exec chmod 644 {} \;
|
|
# build our docker image
|
|
- shell: bash
|
|
run: eval ${{ env.BUILD }} |