ci: update VERSION to commit hash for pull requests (#311) #21
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: build | |
on: | |
push: | |
branches: [ master ] | |
pull_request: | |
workflow_dispatch: | |
concurrency: | |
group: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' && github.run_id || github.head_ref || github.ref }}-${{ github.workflow }}-${{ github.event_name }} | |
cancel-in-progress: true | |
jobs: | |
build: | |
name: build kernel and system | |
runs-on: namespace-profile-arm64-8x16-2004-caching | |
timeout-minutes: 60 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
lfs: true | |
submodules: true | |
- name: Get commit message | |
run: | | |
{ | |
echo 'LAST_COMMIT_MESSAGE<<EOF' | |
if [ "${{ github.event_name }}" == "push" ]; then | |
echo "${{ github.event.head_commit.message }}" | |
elif [ "${{ github.event_name }}" == "workflow_dispatch" ]; then | |
COMMIT_URL=$(echo "${{ github.event.repository.commits_url }}" | sed "s|{/sha}|/${{ github.sha }}|") | |
echo "$(curl -s "$COMMIT_URL" | jq -r '.commit.message')" | |
elif [ "${{ github.event_name }}" == "pull_request" ]; then | |
PR_COMMIT_URL=$(echo "${{ github.event.repository.commits_url }}" | sed "s|{/sha}|/${{ github.event.pull_request.head.sha }}|") | |
echo "$(curl -s "$PR_COMMIT_URL" | jq -r '.commit.message')" | |
fi | |
echo EOF | |
} | tee -a $GITHUB_ENV | |
- name: Get kernel submodule ref | |
id: kernel-submodule | |
run: echo "ref=$(git ls-tree HEAD | awk '$4 == "agnos-kernel-sdm845"' | awk '{print $3}')" | tee -a $GITHUB_OUTPUT | |
- name: ccache | |
uses: hendrikmuhs/ccache-action@c92f40bee50034e84c763e33b317c77adaa81c92 | |
with: | |
key: kernel-${{ steps.kernel-submodule.outputs.ref }} | |
restore-keys: kernel- | |
- name: Build kernel | |
run: ./build_kernel.sh | |
- name: Update VERSION | |
if: github.event_name == 'pull_request' | |
run: | | |
echo -n ${{ github.event.pull_request.head.sha }} > VERSION | |
- name: Build system | |
run: ./build_system.sh | |
- name: Package and OTA push | |
if: "contains(env.LAST_COMMIT_MESSAGE, '[upload]')" | |
env: | |
AGNOS_UPDATE_URL: https://gitlab.com/commaai/ci-artifacts/-/raw/agnos-builder/pr-${{ github.event.number }} | |
run: | | |
scripts/package_ota.py | |
- name: Save PR number and VERSION | |
if: "contains(env.LAST_COMMIT_MESSAGE, '[upload]')" | |
run: | | |
echo ${{ github.event.number }} > output/ota/PR | |
cp VERSION output/ota | |
- name: Upload artifacts | |
if: "contains(env.LAST_COMMIT_MESSAGE, '[upload]')" | |
uses: actions/upload-artifact@v4 | |
with: | |
name: agnos-artifacts | |
path: output/ota | |
compression-level: 0 |