diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml new file mode 100644 index 0000000000..7101a768c4 --- /dev/null +++ b/.github/workflows/release.yaml @@ -0,0 +1,27 @@ +name: release +on: + schedule: + - cron: '0 * * * *' + workflow_dispatch: + +jobs: + build_masterci: + name: build master-ci + runs-on: ubuntu-20.04 + timeout-minutes: 60 + if: github.repository == 'commaai/openpilot' + steps: + - name: Wait for green check mark + uses: lewagon/wait-on-check-action@v0.2 + with: + ref: master + wait-interval: 30 + running-workflow-name: 'build master-ci' + - uses: actions/checkout@v3 + with: + lfs: true + submodules: true + fetch-depth: 0 + - name: Build master-ci + run: | + BRANCH=test-master-ci release/build_devel.sh diff --git a/Jenkinsfile b/Jenkinsfile index 0c816cbb82..cc7347b12a 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -107,7 +107,7 @@ pipeline { } steps { phone_steps("tici", [ - ["build master-ci", "cd $SOURCE_DIR/release && EXTRA_FILES='tools/' ./build_devel.sh"], + ["build master-ci", "cd $SOURCE_DIR/release && TARGET_DIR=$TEST_DIR EXTRA_FILES='tools/' ./build_devel.sh"], ["build openpilot", "cd selfdrive/manager && ./build.py"], ["test manager", "python selfdrive/manager/test/test_manager.py"], ["onroad tests", "cd selfdrive/test/ && ./test_onroad.py"], @@ -150,18 +150,6 @@ pipeline { } } - - stage('Push master-ci') { - when { - branch 'master' - } - steps { - phone_steps("tici-build", [ - ["push devel", "cd $SOURCE_DIR/release && PUSH='master-ci' ./build_devel.sh"], - ]) - } - } - } post { @@ -176,4 +164,3 @@ pipeline { } } } - diff --git a/release/build_devel.sh b/release/build_devel.sh index db8c69bd7a..8028b74639 100755 --- a/release/build_devel.sh +++ b/release/build_devel.sh @@ -1,25 +1,30 @@ -#!/usr/bin/bash -e +#!/usr/bin/bash + +set -ex DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null && pwd)" -TARGET_DIR=/data/openpilot -SOURCE_DIR="$(git rev-parse --show-toplevel)" +SOURCE_DIR="$(git -C $DIR rev-parse --show-toplevel)" +if [ -z "$TARGET_DIR" ]; then + TARGET_DIR="$(mktemp -d)" +fi # set git identity source $DIR/identity.sh echo "[-] Setting up repo T=$SECONDS" -if [ ! -d "$TARGET_DIR" ]; then - mkdir -p $TARGET_DIR - cd $TARGET_DIR - git init - git remote add origin git@github.com:commaai/openpilot.git -fi + +cd $SOURCE_DIR +git fetch origin + +rm -rf $TARGET_DIR +mkdir -p $TARGET_DIR +cd $TARGET_DIR +cp -r $SOURCE_DIR/.git $TARGET_DIR +pre-commit uninstall || true echo "[-] bringing master-ci and devel in sync T=$SECONDS" cd $TARGET_DIR -git prune || true -git remote prune origin || true git fetch origin master-ci git fetch origin devel @@ -28,6 +33,7 @@ git reset --hard master-ci git checkout master-ci git reset --hard origin/devel git clean -xdf +git lfs uninstall # remove everything except .git echo "[-] erasing old openpilot T=$SECONDS" @@ -40,8 +46,7 @@ git clean -xdf # do the files copy echo "[-] copying files T=$SECONDS" cd $SOURCE_DIR -cp -pR --parents $(cat release/files_common) $TARGET_DIR/ -cp -pR --parents $(cat release/files_tici) $TARGET_DIR/ +cp -pR --parents $(cat release/files_*) $TARGET_DIR/ if [ ! -z "$EXTRA_FILES" ]; then cp -pR --parents $EXTRA_FILES $TARGET_DIR/ fi @@ -49,8 +54,8 @@ fi # append source commit hash and build date to version GIT_HASH=$(git --git-dir=$SOURCE_DIR/.git rev-parse --short HEAD) DATETIME=$(date '+%Y-%m-%dT%H:%M:%S') -VERSION=$(cat selfdrive/common/version.h | awk -F\" '{print $2}') -echo "#define COMMA_VERSION \"$VERSION-$GIT_HASH-$DATETIME\"" > selfdrive/common/version.h +VERSION=$(cat $SOURCE_DIR/selfdrive/common/version.h | awk -F\" '{print $2}') +#echo "#define COMMA_VERSION \"$VERSION-$GIT_HASH-$DATETIME\"" > $TARGET_DIR/selfdrive/common/version.h # in the directory cd $TARGET_DIR @@ -61,10 +66,9 @@ git add -f . git status git commit -a -m "openpilot v$VERSION release" -if [ ! -z "$PUSH" ]; then - echo "[-] Pushing to $PUSH T=$SECONDS" - git remote set-url origin git@github.com:commaai/openpilot.git - git push -f origin master-ci:$PUSH +if [ ! -z "$BRANCH" ]; then + echo "[-] Pushing to $BRANCH T=$SECONDS" + git push -f origin master-ci:$BRANCH fi -echo "[-] done T=$SECONDS" +echo "[-] done T=$SECONDS, ready at $TARGET_DIR" diff --git a/release/build_release.sh b/release/build_release.sh index 79ab4fb087..48a19037ff 100755 --- a/release/build_release.sh +++ b/release/build_release.sh @@ -19,6 +19,7 @@ fi # set git identity source $DIR/identity.sh +export GIT_SSH_COMMAND="ssh -i /data/gitkey" echo "[-] Setting up repo T=$SECONDS" rm -rf $BUILD_DIR diff --git a/release/files_common b/release/files_common index 3f8c88547e..d3ab5db65d 100644 --- a/release/files_common +++ b/release/files_common @@ -195,8 +195,13 @@ selfdrive/hardware/base.h selfdrive/hardware/base.py selfdrive/hardware/hw.h selfdrive/hardware/tici/__init__.py +selfdrive/hardware/tici/hardware.h selfdrive/hardware/tici/hardware.py +selfdrive/hardware/tici/pins.py +selfdrive/hardware/tici/agnos.py +selfdrive/hardware/tici/agnos.json selfdrive/hardware/tici/amplifier.py +selfdrive/hardware/tici/updater selfdrive/hardware/tici/iwlist.py selfdrive/hardware/pc/__init__.py selfdrive/hardware/pc/hardware.py diff --git a/release/files_pc b/release/files_pc index d00de7e475..610516bff6 100644 --- a/release/files_pc +++ b/release/files_pc @@ -1,5 +1,3 @@ -selfdrive/ui/replay/* +third_party/mapbox-gl-native-qt/x86_64/*.so -third_party/mapbox-gl-native-qt/x86_64/** - -third_party/qt-plugins/x86_64/** +third_party/qt-plugins/x86_64/geoservices/*.so diff --git a/release/files_tici b/release/files_tici index 68e075c971..75abc13abc 100644 --- a/release/files_tici +++ b/release/files_tici @@ -11,15 +11,6 @@ selfdrive/camerad/cameras/camera_qcom2.cc selfdrive/camerad/cameras/camera_qcom2.h selfdrive/camerad/cameras/real_debayer.cl -selfdrive/hardware/tici/__init__.py -selfdrive/hardware/tici/hardware.h -selfdrive/hardware/tici/hardware.py -selfdrive/hardware/tici/pins.py -selfdrive/hardware/tici/agnos.py -selfdrive/hardware/tici/agnos.json -selfdrive/hardware/tici/amplifier.py -selfdrive/hardware/tici/updater - selfdrive/ui/qt/spinner_larch64 selfdrive/ui/qt/text_larch64 selfdrive/ui/qt/maps/*.cc diff --git a/release/identity.sh b/release/identity.sh index b90372d825..c699c94650 100644 --- a/release/identity.sh +++ b/release/identity.sh @@ -2,4 +2,3 @@ export GIT_COMMITTER_NAME="Vehicle Researcher" export GIT_COMMITTER_EMAIL="user@comma.ai" export GIT_AUTHOR_NAME="Vehicle Researcher" export GIT_AUTHOR_EMAIL="user@comma.ai" -export GIT_SSH_COMMAND="ssh -i /data/gitkey"