mirror of
https://github.com/sunnypilot/sunnypilot.git
synced 2026-02-22 06:33:56 +08:00
* arch specific tags
* merge multiarch script
* arm64 build and merge jobs
* update tag script
* casual ci test
* change image to 2204
* docker -v test
* arch specific naming
* Remove test_buildjet
* build -arch images only when CURRENT_ARCH_BUILD is set
* support new tags in tag_multiarch
* Toggle CURRENT_ARCH_BUILD on in ci
* Docker common
* Fix condition
* Fix path to docker_common
* Add more stuff to common
* Add build_arm job
* composite job for building
* Run checkout before build composite
* add shell arg
* move timeout to selfdrive_tests
* TARGET ARCHITECTURE var
* Support TARGET_ARCHITECTURE in workflow
* Rewrite to Single build job with matrix
* Remove shebang from docker_common
* Attempt for fix build matrix
* Remove setup arch
* build matrix for docker push
* Use 2vcpu for arm build
* 2vcpu for docker_push too
* temporarly unlock docker_push
* Remove requirement for target arch when pushing
* Unset target architecture in docker_push cl
* fix sha tags
* Rename action to compile-openpilot
* move push_image line to tag_multiarch step
* arch suffix for scons cache
* cache_key_prefix for setup-with-retry
* Re-disable docker_push on non-master
* Add newlines
old-commit-hash: 1344a93a35
66 lines
2.4 KiB
YAML
66 lines
2.4 KiB
YAML
name: 'openpilot env setup'
|
|
|
|
inputs:
|
|
git_lfs:
|
|
description: 'Whether or not to pull the git lfs'
|
|
required: false
|
|
default: 'true'
|
|
cache_key_prefix:
|
|
description: 'Prefix for caching key'
|
|
required: false
|
|
default: 'scons_x86_64'
|
|
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
|
|
if: ${{ inputs.git_lfs == 'true' }}
|
|
run: git lfs pull
|
|
|
|
# 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: restore-scons-cache
|
|
uses: actions/cache/restore@v3
|
|
with:
|
|
path: .ci_cache/scons_cache
|
|
key: ${{ inputs.cache_key_prefix }}-${{ env.CACHE_COMMIT_DATE }}-${{ github.sha }}
|
|
restore-keys: |
|
|
${{ inputs.cache_key_prefix }}-${{ env.CACHE_COMMIT_DATE }}-
|
|
${{ inputs.cache_key_prefix }}-
|
|
# if we didn't get a cache hit, make the directory manually so it doesn't fail on future steps
|
|
- id: scons-cache-setup
|
|
shell: bash
|
|
if: steps.restore-scons-cache.outputs.cache-hit != 'true'
|
|
run: mkdir -p $GITHUB_WORKSPACE/.ci_cache/scons_cache
|
|
# 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 {} \;
|
|
- id: setup-buildx-action
|
|
if: contains(runner.name, 'buildjet')
|
|
name: Set up Docker Buildx on buildjet to ensure a consistent cache
|
|
uses: docker/setup-buildx-action@v2
|
|
with:
|
|
driver: docker-container
|
|
# build our docker image
|
|
- shell: bash
|
|
run: eval ${{ env.BUILD }} |