M .github/workflows/main.yml => .github/workflows/main.yml +0 -6
@@ 20,12 20,6 @@ jobs:
fetch-depth: 0
- name: check commit messages
run: ./tools/check_commit_messages.py
- build:
- if: github.event.pull_request.draft == false
- runs-on: self-hosted
- steps:
- - name: build
- run: echo "Placeholder for old CI scripts"
check_copyright_and_style:
name: check copyright and style
if: github.event.pull_request.draft == false
M .github/workflows/releases.yaml => .github/workflows/releases.yaml +21 -6
@@ 27,13 27,17 @@ jobs:
popd
- name: "Build and package for RT1051"
id: build_release_package
+ env:
+ ASSETS_LOGIN: ${{ secrets.ASSETS_LOGIN }}
+ ASSETS_TOKEN: ${{ secrets.ASSETS_TOKEN }}
run: |
./configure.sh rt1051 RelWithDebInfo && \
pushd build-rt1051-RelWithDebInfo && \
export JOBS=${JOBS:-`nproc`} && \
echo "JOBS=${JOBS}" && \
make -j ${JOBS} && \
- make -j ${JOBS} package && \
+ make package-update VERBOSE=1 && \
+ make package-standalone && \
popd && \
./print_last_changes.sh && \
uptime
@@ 48,15 52,26 @@ jobs:
draft: true
prerelease: true
body: ${{steps.build_release_package.outputs.release_notes }}
- - name: Upload Release Package
- id: upload-release-package
+ - name: Upload Standalone Package
+ id: upload-stanalone-package
+ uses: actions/upload-release-asset@v1.0.2
+ env:
+ GITHUB_TOKEN: ${{ secrets.GitHub_PAT }}
+ with:
+ upload_url: ${{ steps.create_release.outputs.upload_url }}
+ # here we have to use relative path with starting "./"
+ asset_path: ./${{ steps.build_release_package.outputs.package_path }}/${{ steps.build_release_package.outputs.package-standalone }}
+ asset_name: ${{ steps.build_release_package.outputs.package-standalone }}
+ asset_content_type: ${{ steps.build_release_package.outputs.standalone-mime_type }}
+ - name: Upload Update Package
+ id: upload-update-package
uses: actions/upload-release-asset@v1.0.2
env:
GITHUB_TOKEN: ${{ secrets.GitHub_PAT }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
# here we have to use relative path with starting "./"
- asset_path: ./${{ steps.build_release_package.outputs.package_path }}/${{steps.build_release_package.outputs.package}}
- asset_name: ${{ steps.build_release_package.outputs.package }}
- asset_content_type: ${{ steps.build_release_package.outputs.mime_type }}
+ asset_path: ./${{ steps.build_release_package.outputs.package_path }}/${{ steps.build_release_package.outputs.package-update }}
+ asset_name: ${{ steps.build_release_package.outputs.package-update }}
+ asset_content_type: ${{ steps.build_release_package.outputs.update-mime_type }}
M CMakeLists.txt => CMakeLists.txt +55 -24
@@ 268,24 268,48 @@ if (${PROJECT_TARGET} STREQUAL "TARGET_RT1051")
)
# download the bootloader
- add_custom_target(ecoboot.bin
- COMMAND ${CMAKE_SOURCE_DIR}/tools/download_asset.py
- -w ${CMAKE_BINARY_DIR}/update ecoboot download
- > ${CMAKE_BINARY_DIR}/update/download_info.txt
- BYPRODUCTS update/ecoboot.bin
- COMMENT "Downloading ecoboot.bin"
- )
+ set(ECOBOOT_FILE ${CMAKE_BINARY_DIR}/ecoboot.bin)
+ set(ECOBOOT_DOWNLOAD_LOG ${CMAKE_BINARY_DIR}/download_info.txt)
+
+ if(DEFINED ENV{ASSETS_LOGIN} AND DEFINED ENV{ASSETS_TOKEN})
+ message("ecooboot download with tokens")
+ add_custom_command(OUTPUT ${ECOBOOT_FILE}
+ COMMAND ${CMAKE_SOURCE_DIR}/tools/download_asset.py
+ -l $ENV{ASSETS_LOGIN}
+ -t $ENV{ASSETS_TOKEN}
+ -w ${CMAKE_BINARY_DIR} ecoboot download
+ > ${ECOBOOT_DOWNLOAD_LOG}
+ COMMENT "Downloading ecoboot.bin"
+ BYPRODUCTS ${ECOBOOT_FILE} ${ECOBOOT_DOWNLOAD_LOG}
+ )
+ else()
+ message("ecoboot download with git")
+ add_custom_command(OUTPUT ${ECOBOOT_FILE}
+ COMMAND ${CMAKE_SOURCE_DIR}/tools/download_asset.py
+ -w ${CMAKE_BINARY_DIR} ecoboot download
+ > ${ECOBOOT_DOWNLOAD_LOG}
+ COMMENT "Downloading ecoboot.bin"
+ BYPRODUCTS ${ECOBOOT_FILE} ${ECOBOOT_DOWNLOAD_LOG}
+ )
+ endif()
+
+ add_custom_target(ecoboot.bin DEPENDS ${ECOBOOT_FILE})
+
# generate version.json file (runs CMake script at build time)
- add_custom_target(
- version.json
+ set(VERSION_JSON ${CMAKE_BINARY_DIR}/version.json)
+ add_custom_command(OUTPUT ${VERSION_JSON}
COMMAND ${CMAKE_COMMAND}
-DSRC_DIR=${CMAKE_SOURCE_DIR}
+ -DECOBOOT_DOWNLOAD_LOG=${ECOBOOT_DOWNLOAD_LOG}
-B ${CMAKE_BINARY_DIR}
-P ${CMAKE_SOURCE_DIR}/config/GenUpdateVersionJson.cmake
- DEPENDS ecoboot.bin
+ DEPENDS ecoboot.bin ${ECOBOOT_DOWNLOAD_LOG}
+ BYPRODUCTS ${VERSION_JSON}
)
- install(FILES ${CMAKE_BINARY_DIR}/update/ecoboot.bin DESTINATION "./" COMPONENT Update)
- install(FILES ${CMAKE_BINARY_DIR}/update/version.json DESTINATION "./" COMPONENT Update)
+ add_custom_target(version.json DEPENDS ${VERSION_JSON})
+
+ multicomp_install(PROGRAMS ${ECOBOOT_FILE} DESTINATION "./" COMPONENTS Standalone Update)
+ multicomp_install(FILES ${VERSION_JSON} DESTINATION "./" COMPONENTS Standalone Update)
set(CPACK_SYSTEM_NAME "RT1051")
# allow both standalone and update packages in RT1051 config
@@ 317,8 341,6 @@ endif()
message_serial_status()
-include(tools/clang-tidy.cmake)
-
option (BUILD_DOC_WITH_ALL "Build documentation" OFF)
# check if Doxygen is installed
@@ 404,19 426,23 @@ if (${PROJECT_TARGET} STREQUAL "TARGET_RT1051")
add_custom_target(package-standalone
COMMAND zip -rq ${CMAKE_BINARY_DIR}/${PACKAGE_STANDALONE_FILE_NAME} "."
WORKING_DIRECTORY ${PACKAGE_STAGING_DIRECTORY}/Standalone
- DEPENDS package-standalone-staged
+ DEPENDS ${ECOBOOT_FILE} package-standalone-staged PurePhone
)
+ set(UPDATE_STAGING_DIRECTORY ${PACKAGE_STAGING_DIRECTORY}/Update)
add_custom_target(package-update-checksums
COMMAND rhash
- -u ${PACKAGE_STAGING_DIRECTORY}/Update/checksums.txt
- -r ${PACKAGE_STAGING_DIRECTORY}/Update
+ -u checksums.txt
+ -r .
+ WORKING_DIRECTORY ${UPDATE_STAGING_DIRECTORY}
DEPENDS package-update-staged
)
+ set(PACKAGE_UPDATE_FILE_NAME ${PACKAGE_COMMON_NAME}-Update.tar)
+ set(PACKAGE_UPDATE_MIME "application/x-tar")
add_custom_target(package-update
COMMAND tar
- -czf ${CMAKE_BINARY_DIR}/${PACKAGE_COMMON_NAME}-Update.tar.gz
+ -cf ${CMAKE_BINARY_DIR}/${PACKAGE_UPDATE_FILE_NAME}
-C ${PACKAGE_STAGING_DIRECTORY}/Update "."
- DEPENDS package-update-staged package-update-checksums
+ DEPENDS ecoboot.bin version.json PurePhone package-update-staged package-update-checksums
)
elseif (${PROJECT_TARGET} STREQUAL "TARGET_Linux")
set(PACKAGE_STANDALONE_FILE_NAME ${PACKAGE_COMMON_NAME}-Standalone.tar.gz)
@@ 430,9 456,14 @@ elseif (${PROJECT_TARGET} STREQUAL "TARGET_Linux")
endif()
if (NOT "$ENV{GITHUB_WORKSPACE}" STREQUAL "")
- message("set-output name=package::${PACKAGE_STANDALONE_FILE_NAME}")
- message("::set-output name=package::${PACKAGE_STANDALONE_FILE_NAME}")
-
- message("set-output name=mime_type::${PACKAGE_STANDALONE_MIME}")
- message("::set-output name=mime_type::${PACKAGE_STANDALONE_MIME}")
+ message("set-output name=package-standalone::${PACKAGE_STANDALONE_FILE_NAME}")
+ message("::set-output name=package-standalone::${PACKAGE_STANDALONE_FILE_NAME}")
+ message("set-output name=standalone-mime_type::${PACKAGE_STANDALONE_MIME}")
+ message("::set-output name=standalone-mime_type::${PACKAGE_STANDALONE_MIME}")
+
+ message("set-output name=package-update::${PACKAGE_UPDATE_FILE_NAME}")
+ message("::set-output name=package-update::${PACKAGE_UPDATE_FILE_NAME}")
+ message("set-output name=update-mime_type::${PACKAGE_UPDATE_MIME}")
+ message("::set-output name=update-mime_type::${PACKAGE_UPDATE_MIME}")
+
endif()
M config/GenUpdateVersionJson.cmake => config/GenUpdateVersionJson.cmake +2 -2
@@ 8,7 8,7 @@ include(Version)
set(BOOTLOADER_INCLUDED "true")
set(BOOTLOADER_FILENAME "ecoboot.bin")
execute_process(
- COMMAND grep "release:" "${CMAKE_BINARY_DIR}/update/download_info.txt"
+ COMMAND grep "release:" "${ECOBOOT_DOWNLOAD_LOG}"
COMMAND awk "{print $2}"
OUTPUT_VARIABLE BOOTLOADER_VERSION
OUTPUT_STRIP_TRAILING_WHITESPACE
@@ 16,6 16,6 @@ execute_process(
configure_file(
${SRC_DIR}/config/version.json.cmake_template
- ${CMAKE_BINARY_DIR}/update/version.json
+ ${CMAKE_BINARY_DIR}/version.json
@ONLY
)
M tools/download_asset.py => tools/download_asset.py +2 -2
@@ 52,7 52,7 @@ class Getter(object):
try:
gitConfigReader = self.gitRepo.config_reader()
self.apitoken = gitConfigReader.get_value("user", "apitoken")
- except git.exc.NoOptionError as error:
+ except:
pass
def getGHLogin(self, args=None):
@@ 63,7 63,7 @@ class Getter(object):
try:
gitConfigReader = self.gitRepo.config_reader()
self.ghLogin = gitConfigReader.get_value("user", "githublogin")
- except git.exc.NoOptionError as error:
+ except:
pass
def findWorkDir(self):