添加 autobuild.sh 实现编译release一条指令完成
authorSnickerSun <snickersun@163.com>
Fri, 15 Dec 2023 02:43:43 +0000 (10:43 +0800)
committerSnickerSun <snickersun@163.com>
Fri, 15 Dec 2023 02:43:43 +0000 (10:43 +0800)
添加 gitdiff.sh自动抽取当前变更的数据

.gitignore
autuobuild.sh [new file with mode: 0644]
code/sdk/build/script/pack_tool.py
gitdiff.sh [new file with mode: 0644]

index a9e060d..f5f586a 100644 (file)
@@ -2,3 +2,5 @@ code/sdk/deveco/**
 code/sdk/vscode/**
 code/sdk/output/**
 code/sdk/tools/pkg/fwpkg/brandy/upload_app.fwpkg
+release/**
+build.log
diff --git a/autuobuild.sh b/autuobuild.sh
new file mode 100644 (file)
index 0000000..72e1210
--- /dev/null
@@ -0,0 +1,68 @@
+#!/bin/bash
+
+version=HEAD
+DATE=$(date  +%Y%m%d_%H%M%S)
+HOMEDIR=$PWD
+
+if [ "$1" == "" ]
+then
+TARGET_PACK_NAME=pack_brandy_native_js
+else
+TARGET_PACK_NAME=$1
+fi
+
+if [ "$2" == "" ]
+then
+RELEASE_BUILD=debug
+else
+RELEASE_BUILD=release
+fi
+CURRENT_BRANCH=`git branch |awk '$1=="*"{print $2}'`
+COMMIT_ID=`git rev-parse HEAD`
+SOURCE_MODIFIED=`git status --short`
+cp_releasepackage()
+{      
+       #code/sdk/output/brandy/acore/brandy-native-js/package/brandy/
+       package_dir=$HOMEDIR/code/sdk/output/package/brandy/$TARGET_PACK_NAME
+       filename=${TARGET_PACK_NAME}_${RELEASE_BUILD}_${DATE}_${USER}.fwpkg
+       releasedir=$HOMEDIR/release/$TARGET_PACK_NAME/$RELEASE_BUILD/${DATE}
+       packsource=$HOMEDIR/code/sdk/tools/pkg/fwpkg/brandy/upload_app.fwpkg
+       echo do release copy
+       mkdir -p $releasedir
+       cp -r build.log $package_dir $releasedir/
+       cp $packsource $releasedir/$filename
+       echo $filename > $releasedir/readme.txt
+       echo branch name $CURRENT_BRANCH >> $releasedir/readme.txt
+       echo commit $COMMIT_ID >> $releasedir/readme.txt
+       if [ "$SOURCE_MODIFIED" == "" ]
+       then
+               echo no source changed >> $releasedir/readme.txt
+       else
+               echo source changed >> $releasedir/readme.txt
+               echo $SOURCE_MODIFIED >> $releasedir/readme.txt
+       fi
+       echo release to $releasedir/$filename
+       cat  $releasedir/readme.txt
+}
+build_target()
+{
+
+       cd $HOMEDIR/code/sdk/
+       ./build.py -nhso  -c -$RELEASE_BUILD $TARGET_PACK_NAME 2>&1 
+       ret_code=$?
+       if [ $ret_code == 0 ]
+       then
+               #code/sdk/output/currentbuild.txt
+               if [ -e "$HOMEDIR/code/sdk/output/currentbuild.txt" ]
+               then
+               TARGET_PACK_NAME=`cat $HOMEDIR/code/sdk/output/currentbuild.txt`
+               fi
+               cp_releasepackage 
+               echo build done at $(date  +%Y%m%d_%H%M%S)
+       else 
+               echo build failed at $(date  +%Y%m%d_%H%M%S)
+       fi
+       cd $HOMEDIR
+}
+ 
+build_target | tee build.log
index 328f54a..0aff917 100755 (executable)
@@ -52,7 +52,18 @@ class packTool:
         pack_path = os.path.join(output_root, 'package', chip, self.pack_name)
         pack_target_path = os.path.join(pack_path, self.target_name)
         pack_bin_path = pack_path
-        print("Start pack target %s" % self.target_name)
+        current_target_file = os.path.join(output_root,'currentbuild.txt')
+        fh=open(current_target_file,"w")
+        fh.write(self.pack_name)
+        fh.close
+        
+        print("output_path %s" % output_path)
+        print("Start pack target %s" % self.pack_name)
+        print("pack_target_path %s" % pack_target_path)
+        print("current_target_file %s" % current_target_file)
+        
+        # output_patht /home/snicker/FD230/code/sdk/output/brandy/acore/brandy-native-js
+
 
         os.makedirs(pack_target_path)
         for file_name in os.listdir(output_path):
diff --git a/gitdiff.sh b/gitdiff.sh
new file mode 100644 (file)
index 0000000..646f750
--- /dev/null
@@ -0,0 +1,75 @@
+#!/bin/bash
+#set -e
+version=HEAD
+DATE=$(date  +%Y%m%d.%H%M%S)
+HOMEDIR=$PWD
+TMPDIR=/tmp/${USER}_${DATE}
+
+
+if ! [ "$1" = "" ] 
+then
+
+version=$1
+
+fi
+echo $version
+
+BACKUPDIR_HOME=$HOMEDIR/../PATCHES/$(basename $HOMEDIR)_${DATE}
+
+
+genpatch() {
+TARGETDIR=$1
+tmpfile_changelist=/$TMPDIR/changelist.txt
+tmpfile_removedfiles=/$TMPDIR/deletedfiles.sh
+tmpfile_modified_or_new_files=/$TMPDIR/modified_or_new_files.txt
+tmpfile_local_diff_patch=/$TMPDIR/local_diff_patch.txt
+tmpfile_git_commit_file=/$TMPDIR/commit.txt
+BACKUPDIR=$BACKUPDIR_HOME/
+BACKUPDIR_DIFF=$BACKUPDIR_HOME/diff/
+
+rm -rf $TMPDIR
+mkdir -p $TMPDIR
+cd $TARGETDIR
+git config core.filemode false
+git status . -s > $tmpfile_changelist
+export count=`wc $tmpfile_changelist -l|awk '{print $1}'`
+echo $TARGETDIR $count
+if [ "$count" == "0" ] ; then
+       echo $TARGETDIR no change
+else
+       
+       git log -n 1 --format="%H" >$tmpfile_git_commit_file
+
+       git status . -s |awk ' ($1 != "D" ) {print $2 }' >$tmpfile_modified_or_new_files
+       git status . -s |awk ' ($1 == "D" ) {print "rm " $2 }' >$tmpfile_removedfiles
+
+       mkdir -p $BACKUPDIR
+       mkdir -p $BACKUPDIR_DIFF
+       git diff . > $tmpfile_local_diff_patch 
+       mv $tmpfile_local_diff_patch $BACKUPDIR_DIFF
+    mv $tmpfile_git_commit_file $BACKUPDIR_DIFF
+
+       if ! [ $(wc -l  $tmpfile_modified_or_new_files|awk '{print $1}' ) == "0" ] ; then 
+               mv $tmpfile_modified_or_new_files $BACKUPDIR_DIFF
+               cat $BACKUPDIR_DIFF/$(basename  $tmpfile_modified_or_new_files)|xargs tar czf $BACKUPDIR/changefiles.tar.gz
+               tar xzf $BACKUPDIR/changefiles.tar.gz -C $BACKUPDIR
+               rm $BACKUPDIR/changefiles.tar.gz
+       else
+               echo $tmpfile_modified_or_new_files $(wc -l  $tmpfile_modified_or_new_files |awk '{print $1}') , skip copy.
+       fi
+
+       if ! [ $(wc -l $tmpfile_removedfiles|awk '{print $1}') == "0" ] ; then 
+               mv $tmpfile_removedfiles $BACKUPDIR_DIFF
+       else
+               echo $tmpfile_removedfiles $(wc -l  $tmpfile_removedfiles|awk '{print $1}') , skip copy.
+       fi
+fi
+cd $HOMEDIR
+
+}
+
+genpatch $PWD
+echo done
+
+
+