github-action: import all TAOS-CI post-build
authorMyungJoo Ham <myungjoo.ham@samsung.com>
Wed, 24 Jan 2024 02:54:48 +0000 (11:54 +0900)
committerMyungJoo Ham <myungjoo.ham@samsung.com>
Thu, 8 Feb 2024 00:38:27 +0000 (09:38 +0900)
- gbs build for x64, x86, arm32, arm64
- pdebuild for { x64, arm64 } x { 22.04, 20.04 }
- yocto build w/ eSDK (Yocto 4.0.15)
- android build w/ nttld/setup-ndk

to enable such github actions,
- android / jni build script fix

and, drop TAOS-CI. (all imported!)

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
15 files changed:
.TAOS-CI/.gbs.conf [deleted file]
.TAOS-CI/README.md [deleted file]
.TAOS-CI/config/config-environment.sh [deleted file]
.TAOS-CI/config/config-plugins-postbuild.sh [deleted file]
.TAOS-CI/config/config-plugins-prebuild.sh [deleted file]
.TAOS-CI/config/config-server-administrator.sh [deleted file]
.TAOS-CI/config/config-webhook.json [deleted file]
.TAOS-CI/config/prohibited_words.txt [deleted file]
.github/workflows/android.yml [new file with mode: 0644]
.github/workflows/gbs_build.yml [moved from .github/workflows/gbs_x64.yml with 66% similarity]
.github/workflows/pdebuild.yml [new file with mode: 0644]
.github/workflows/yocto.yml [new file with mode: 0644]
debian/control
jni/Android-app.mk
jni/Android-nnstreamer.mk

diff --git a/.TAOS-CI/.gbs.conf b/.TAOS-CI/.gbs.conf
deleted file mode 100644 (file)
index 75e536a..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-# TAOS-CI: About a default location of the ".gbs.conf" file
-# If TAOS-CI could not import the (1) ./.TAOS-CI/.gbs.conf or
-# 2) ./packaging/.gbs.conf file, it imports the (3) ~/.gbs.conf file of www-data account.
-# Please keep the ./packaging/.gbs.conf file ASAP for customized GitHub repository.
-
-[general]
-# Current profile name which should match a profile section name
-profile = profile.tizen
-tmpdir = /var/tmp
-editor = vim
-packaging_branch = tizen
-workdir = .
-
-[profile.tizen]
-# Common authentication info for whole profile
-# user = <WRITE_YOUR_TIZEN_ID>
-# passwd = <WRITE_YOUR_TIZEN_PASSSWORD>
-# obs = obs.tizen
-
-# https://docs.tizen.org/platform/reference/gbs/gbs.conf/
-# Note that a buildconf file of the last repo (e.g., /var/tmp/{USER}-gbs/tizen.of) is used by default.
-repos = repo.base, repo.unified, repo.extra
-buildroot = ~/GBS-ROOT-Snapshot/
-
-[obs.tizen]
-# OBS API URL pointing to a remote OBS.
-url = https://api.tizen.org
-
-[repo.base]
-url = http://download.tizen.org/snapshots/TIZEN/Tizen/Tizen-Base/reference/repos/standard/packages/
-
-[repo.unified]
-url = http://download.tizen.org/snapshots/TIZEN/Tizen/Tizen-Unified/reference/repos/standard/packages/
-
-[repo.extra]
-url = http://download.tizen.org/live/devel:/Tizen:/6.0:/AI/Tizen_Unified_standard/
-
diff --git a/.TAOS-CI/README.md b/.TAOS-CI/README.md
deleted file mode 100644 (file)
index d94548e..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-# How to use config files
-
-These are the TAOS-CI configuration files to support the nnstreamer repository.
-
-- http://github.com/nnsuite/TAOS-CI
-
-## How to use the configruation files
-The section describes two steps to use the configuration files of the nnstreamer repository.
-
-#### Step 1
-First of all, you must write for passwords carefully as follows.
-!!!SECURITY!!! NEVER REVEAL THE BELOW PASSWORDS.
-
-```bash
-$ vi ./config/config-environment.sh
-TOKEN="xxxxxxxxxxxxxxxxxxxxx"  <---- 1/4: Here!!!
-_cov_token="xxxxxxxxxxxxxxxx"  <---- 2/4: Here!!!
-
-$ vi ./config-webhookk.json
-{
-    "github": {
-        "website": "github.com",
-        "id": "taos-ci",
-        "email": "taos-ci@github.io",
-        "secret": "xxxxxxx" <---- 3/4: Here!!!
-    },
-    "broken_arrow": {
-        "id": "admin",
-        "pass": "xxxxxxx",  <---- 4/4: Here!!!
-        "ip": " " 
-    }
-}
-```
-
-#### Step 2
-After adding TAOS-CI submodule in your GitHub project folder, copy and overwrite them.
-
-```bash
-$ cp -rf ./conf/* {REPO_DIR}/TAOS-CI/ci/taos/conf/
-```
-Or you may just link the configuration files with the `ln` command to maintain changes effectively.
-```bash
-$ cd {REPO_DIR}
-$ ln -s .TAOS-CI/conf/config-environment.sh          ./TAOS-CI/ci/taos/conf/config-environment.sh 
-$ ln -s .TAOS-CI/conf/config-plugins-postbuild.sh    ./TAOS-CI/ci/taos/conf/config-plugins-postbuild.sh
-$ ln -s .TAOS-CI/conf/config-plugins-prebuild.sh     ./TAOS-CI/ci/taos/conf/config-plugins-prebuild.sh
-$ ln -s .TAOS-CI/conf/config-server-administrator.sh ./TAOS-CI/ci/taos/conf/config-server-administrator.sh
-$ ln -s .TAOS-CI/conf/config-webhook.json            ./TAOS-CI/ci/taos/conf/config-webhook.json
-$ ln -s .TAOS-CI/conf/prohibited_words.txt           ./TAOS-CI/ci/taos/conf/prohibited_words.txt
-
-```bash
diff --git a/.TAOS-CI/config/config-environment.sh b/.TAOS-CI/config/config-environment.sh
deleted file mode 100644 (file)
index e339fba..0000000
+++ /dev/null
@@ -1,171 +0,0 @@
-#!/usr/bin/env bash
-
-# Do not append a license statement in the configuration file
-# for a differnet license-based repository.
-
-##
-# @file     config-environment.sh
-# @brief    The configuration file to maintain all scripts
-# @see      https://github.com/nnsuite/TAOS-CI
-# @author   Geunsik Lim <geunsik.lim@samsung.com>
-#
-# This script is to maintain consistently all scripts files.
-#
-# If you have to run this CI script at the below environment, Please change
-# the contents appropriately.
-# a. In case that you want to apply this CI script to another repository
-# b. In case that you have to install CI in a new CI server for more high-performance
-# c. In case that you need to create new project
-#
-
-################# Modify the below statements for your server  #######################
-
-
-#### Repository setting
-
-# Add TOKEN ID to access your GitHub repository using WebHook APIs
-# Refer to https://github.com/settings/tokens
-# WARNING: Do NOT OPEN THE TOKEN ID OF GITHUB TO AVOID A SECURITY FLAW.
-TOKEN="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
-
-# Write an account name (or organization name) of the '{master|upstream}' branch
-# e.g., https://github-website/{account_name}/{project_name}/
-GITHUB_ACCOUNT="nnstreamer"
-
-# Write a project name of a github website of the '{master|upstream}' branch
-# e.g., https://github-website/{account_name}/{project_name}/
-PRJ_REPO_UPSTREAM="nnstreamer"
-
-# Specify the web address of the CI server. Should end with /
-CISERVER="http://nnsuite.mooo.com/"
-
-# Prebuild group area (pr-prebuild) to inventigate source code
-# Add root path of source folders. For example, specify a path of source code:
-# 1) to check prohibited hardcoded paths (e.g., /home/* for now)
-# 2) to check code formatting sytele with clang-format
-SRC_PATH="./gst/"
-
-# If you want to use another name instead of the default TAOS name, Write the name that you
-# want to use for your GitHub repository. For example, "CHATBOT", "REVIEWBOT".
-BOT_NAME="TAOS"
-
-# Skip Paths: prebuild group (pr-prebuild)
-# declare a folder name to skip the file size and newline inspection.
-# (e.g., <github-repository-name>/temproal-bin/)
-SKIP_CI_PATHS_FORMAT="temporal-bin"
-
-# Skip Paths: postbuild group (pr-postbuild)
-# Skip build-checker / unit-test checker if all changes are limited to:
-# The path starts without / and it denotes the full paths in the git repo. (regex)
-SKIP_CI_PATHS_AUDIT="^ci/.*|^Documentation/.*|^\.github/.*|^obsolete/.*|^README\.md|^external/.*|^temporal-bin/.*|^\.TAOS-CI/.*"
-
-# Define the number of CPUs to build source codes in parallel
-# We recommend that you define appropriate # of CPUs that does not result in
-# Out-Of-Memory and Too mnay task migration among the CPUs.
-CPU_NUM=6
-
-#### Automatic PR commenter: enabling(1), disabling(0)
-
-# Inform a PR submitter of a rule to pass the CI process
-pr_comment_notice=1
-
-# Inform all developers of their activity whenever PR submitter resubmit their PR after applying comments of reviews
-pr_comment_pr_updated=0
-
-# Inform a PR submitter that they do not have to merge their own PR directly.
-pr_comment_self_merge=0
-
-# infrom a PR submitter of how to submit a PR that include lots of commits.
-pr_comment_many_commit=0
-
-# Inform a PR submitter of the webpage address in order that they can monitor the current status of their PR.
-pr_comment_pr_monitor=0
-
-#### Build test: Write a build type to test ex) "x86_64 i586 armv7l aarch64" 
-# Currently, this variable is declared to hande the "gbs build" command on Tizen.
-pr_build_arch_type="x86_64 i586 armv7l aarch64"
-
-### Check level of doxygen tag:
-# Basic = 0 (@file + @brief)
-# Advanced = 1 (Basic + "@author, @bug and functions with ctags")
-pr_doxygen_check_level=1
-
-### Check level of CPPCheck for a static analysis of C/C++ source code:
-# CPPCheck Level 0: The check level is 'err'.
-# CPPCheck Level 1: 'err' + 'warning,performance,unusedFunction'
-pr_cppcheck_check_level=0
-
-
-#### File size limit
-# Unit of the file size is MB.
-filesize_limit=5
-
-#### Dependency policy between prebuild and postbuild group
-# No dependency = 0
-# Dependency = 1 (based on the order of definition)
-# If dependency, PR group running order follows FCFS ordering
-dep_policy_between_groups=0
-
-
-#### Build mode of software platform
-
-# BUILD_MODE_***=0  : execute a build process without a debug file.
-# BUILD_MODE_***=1  : execute a build process with a debug file.
-# BUILD_MODE_***=99 : skip a build process (by default)
-#
-# Note: if a package builder is not normally executed to generate package file,
-# Please declare `BUILD_MODE_***=99` untile the issue will be fixed.
-# 1) Tizen (packaging/*.spec): If a maintainer done the 'gbs' based build process,
-#    you may change builde mode among 0, 1, and 99.
-# 2) Ubuntu (debian/*.rule)  : If a maintainer done the 'pdebuild' based build process,
-#    you may change builde mode among 0, 1, and 99.
-# 3) Yocto (CMakeLists.txt)  : If a maintainer done the 'devtool' based build process,
-#    you may change builde mode among 0, 1, and 99.
-# 4) Android (jni/Android.mk)  : If a maintainer done the 'ndk-build' based build process,
-#    you may change builde mode among 0, 1, and 99.
-BUILD_MODE_TIZEN=0
-BUILD_MODE_UBUNTU=0
-BUILD_MODE_YOCTO=99
-BUILD_MODE_ANDROID=0
-
-# Tizen: If each git repository must be defined by a different profile (e.g., ~/.gbs.conf),
-# The name of TIZEN_GBS_PROFILE can be given without the "profile." prefix as follows.
-# For example, [profile.tizen40_mobile] has to be declared with TIZEN_GBS_PROFILE="tizen40_mobile".
-TIZEN_GBS_PROFILE=""
-
-# Pull Request Scheduler: The number of jobs on Run-Queue to process PRs
-RUN_QUEUE_PR_JOBS=8
-
-# Version format: Major.Minor.DATE
-VERSION="1.5.20200324"
-
-#### Location of the GitHub repository
-# We assume that the default folder of the www-data (user-id of Apache webserver) is "/var/www/html/" folder. 
-
-# Reference repository to speed up the exectuion time of the "git clone" command
-REFERENCE_REPOSITORY="/var/www/html/$PRJ_REPO_UPSTREAM/"
-
-# Specify RPM repo cache for accerating the GBS build speed of Tizen platform
-REPOCACHE="/var/www/html/$PRJ_REPO_UPSTREAM/repo_cache/"
-
-# GitHub repostiroy a web address
-REPOSITORY_WEB="https://github.com/$GITHUB_ACCOUNT/$PRJ_REPO_UPSTREAM"
-REPOSITORY_GIT="https://github.com/$GITHUB_ACCOUNT/$PRJ_REPO_UPSTREAM.git"
-
-# Specify GitHub webhook API address
-# a. Enterprise Edition - "https://github.{YOUR_COMPANY_DNS}/api/v3/repos/$GITHUB_ACCOUNT/$PRJ_REPO_UPSTREAM"
-# b. Community  Edition- "https://api.github.com/repos/$GITHUB_ACCOUNT/$PRJ_REPO_UPSTREAM"
-GITHUB_WEBHOOK_API="https://api.github.com/repos/$GITHUB_ACCOUNT/$PRJ_REPO_UPSTREAM"
-
-# Coverity module, the configuration variables for the coverity module
-# https://scan.coverity.com/dashboard
-# If you want to skip the build procedure, please specify a "none" value in the '_cov_build_type'.
-# WARNING: Do NOT OPEN THE TOKEN ID of COVERITY TO AVOID A SECURITY FLAW.
-_cov_build_type="meson"
-_cov_email="taos-ci@github.io"
-_cov_token="xxxxxxxxxxxxxxxxxxxxxx"
-_cov_yellow_card=10
-_cov_red_card=50
-
-# Pre-build checker, Clang is applied to C++ files only.
-clang_option="cxx-only"
diff --git a/.TAOS-CI/config/config-plugins-postbuild.sh b/.TAOS-CI/config/config-plugins-postbuild.sh
deleted file mode 100644 (file)
index 26f353f..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-#!/usr/bin/env bash
-
-# Do not append a license statement in the configuration file for a differnet license-based repository.
-
-##
-# @file     config-plugins-postbuild.sh
-# @brief    Configuraiton file to maintain postbuild modules (after completing a build procedure)
-# @see      https://github.com/nnsuite/TAOS-CI
-# @author   Geunsik Lim <geunsik.lim@samsung.com>
-
-##### Set environment for plug-in check modules of the postbuild group
-declare -i idx=-1
-
-###### plugins-base ###############################################################################################
-echo "[MODULE] plugins-base: Plugin group is a well-maintained collection of plugin modules."
-# Please append your plugin modules here.
-
-postbuild_plugins[++idx]="pr-postbuild-build-tizen"
-echo "[DEBUG] The default BUILD_MODE of ${postbuild_plugins[idx]} is declared with 99 (SKIP MODE) by default in plugins-base folder."
-echo "[DEBUG] ${postbuild_plugins[idx]} is started."
-echo "[DEBUG] ${BOT_NAME}/${postbuild_plugins[idx]}: Check if Tizen rpm package is successfully generated."
-echo "[DEBUG] Current path: $(pwd)."
-source ${REFERENCE_REPOSITORY}/ci/taos/plugins-base/${postbuild_plugins[idx]}.sh
-
-
-postbuild_plugins[++idx]="pr-postbuild-build-ubuntu"
-echo "[DEBUG] The default BUILD_MODE of ${postbuild_plugins[idx]} is declared with 99 (SKIP MODE) by default in plugins-base folder."
-echo "[DEBUG] ${postbuild_plugins[idx]} is started."
-echo "[DEBUG] ${BOT_NAME}/${postbuild_plugins[idx]}: Check if Ubuntu deb package is successfully generated."
-echo "[DEBUG] Current path: $(pwd)."
-source ${REFERENCE_REPOSITORY}/ci/taos/plugins-base/${postbuild_plugins[idx]}.sh
-
-
-postbuild_plugins[++idx]="pr-postbuild-build-yocto"
-echo "[DEBUG] The default BUILD_MODE of ${postbuild_plugins[idx]} is declared with 99 (SKIP MODE) by default in plugins-base folder."
-echo "[DEBUG] ${postbuild_plugins[idx]} is started."
-echo "[DEBUG] ${BOT_NAME}/${postbuild_plugins[idx]}: Check if YOCTO deb package is successfully generated."
-echo "[DEBUG] Current path: $(pwd)."
-source ${REFERENCE_REPOSITORY}/ci/taos/plugins-base/${postbuild_plugins[idx]}.sh
-
-
-postbuild_plugins[++idx]="pr-postbuild-build-android"
-echo "[DEBUG] The default BUILD_MODE of ${postbuild_plugins[idx]} is declared with 99 (SKIP MODE) by default in plugins-base folder."
-echo "[DEBUG] ${postbuild_plugins[idx]} is started."
-echo "[DEBUG] ${BOT_NAME}/${postbuild_plugins[idx]}: Check if Android package is successfully generated."
-echo "[DEBUG] Current path: $(pwd)."
-source ${REFERENCE_REPOSITORY}/ci/taos/plugins-base/${postbuild_plugins[idx]}.sh
-
-###### plugins-good ###############################################################################################
-echo "[MODULE] plugins-good: Plugin group that follow Apache license with good quality"
-# Please append your plugin modules here.
-
-
-
-###### plugins-staging ################################################################################################
-echo "[MODULE] plugins-staging: Plugin group that does not have evaluation and aging test enough"
-# Please append your plugin modules here.
-
-# postbuild_plugins[++idx]="pr-postbuild-resource"
-# echo "[DEBUG] ${postbuild_plugins[idx]} is started."
-# echo "[DEBUG] ${BOT_NAME}/${postbuild_plugins[idx]}: Check if there are not-installed resource files."
-# echo "[DEBUG] Current path: $(pwd)."
-# source ${REFERENCE_REPOSITORY}/ci/taos/plugins-staging/${postbuild_plugins[idx]}.sh
-
-
-postbuild_plugins[++idx]="pr-postbuild-nnstreamer-ubuntu-apptest"
-echo "[DEBUG] ${postbuild_plugins[idx]} is started."
-echo "[DEBUG] ${BOT_NAME}/${postbuild_plugins[idx]}: Check nnstreamer sample app"
-echo "[DEBUG] Current path: $(pwd)."
-source ${REFERENCE_REPOSITORY}/ci/taos/plugins-staging/${postbuild_plugins[idx]}.sh
-
-
diff --git a/.TAOS-CI/config/config-plugins-prebuild.sh b/.TAOS-CI/config/config-plugins-prebuild.sh
deleted file mode 100644 (file)
index 37b90ca..0000000
+++ /dev/null
@@ -1,167 +0,0 @@
-#!/usr/bin/env bash
-
-# Do not append a license statement in the configuration file for a different license-based repository.
-
-##
-# @file     config-plugins-prebuild.sh
-# @brief    Configuration file to maintain modules of prebuild group (before doing a build procedure)
-# @see      https://github.com/nnsuite/TAOS-CI
-# @author   Geunsik Lim <geunsik.lim@samsung.com>
-
-
-##### Set environment for plugin modules of prebuild group
-declare -i idx=-1
-
-##################################################################################################################
-echo "[MODULE] plugins-good: Plugin group that follow Apache license with good quality"
-# Please append your plugin modules here.
-
-prebuild_plugins[++idx]="pr-prebuild-doxygen-tag"
-echo "${prebuild_plugins[idx]} is starting."
-echo "[MODULE] ${BOT_NAME}/${prebuild_plugins[idx]}: Check a source code consists of required doxygen tags."
-echo "[DEBUG] The current path: $(pwd)."
-echo "[DEBUG] source ${REFERENCE_REPOSITORY}/ci/taos/plugins-good/${prebuild_plugins[idx]}.sh"
-source ${REFERENCE_REPOSITORY}/ci/taos/plugins-good/${prebuild_plugins[idx]}.sh
-
-prebuild_plugins[++idx]="pr-prebuild-indent"
-echo "${prebuild_plugins[idx]} is starting."
-echo "[MODULE] ${BOT_NAME}/${prebuild_plugins[idx]}: Check the code formatting style with GNU indent"
-echo "[DEBUG] The current path: $(pwd)."
-echo "[DEBUG] source ${REFERENCE_REPOSITORY}/ci/taos/plugins-good/${prebuild_plugins[idx]}.sh"
-source ${REFERENCE_REPOSITORY}/ci/taos/plugins-good/${prebuild_plugins[idx]}.sh
-
-
-prebuild_plugins[++idx]="pr-prebuild-clang"
-echo "${prebuild_plugins[idx]} is starting."
-echo "[MODULE] ${BOT_NAME}/${prebuild_plugins[idx]}: Check the code formatting style with clang-format"
-echo "[DEBUG] The current path: $(pwd)."
-echo "[DEBUG] source ${REFERENCE_REPOSITORY}/ci/taos/plugins-good/${prebuild_plugins[idx]}.sh"
-source ${REFERENCE_REPOSITORY}/ci/taos/plugins-good/${prebuild_plugins[idx]}.sh
-
-#prebuild_plugins[++idx]="pr-prebuild-exclusive-vio"
-# echo "${prebuild_plugins[idx]} is starting."
-# echo "[MODULE] ${BOT_NAME}/${prebuild_plugins[idx]}: Check issue #279. VIO commits should not touch non VIO files."
-# echo "[DEBUG] The current path: $(pwd)."
-# echo "[DEBUG] source ${REFERENCE_REPOSITORY}/ci/taos/plugins-good/${prebuild_plugins[idx]}.sh"
-# source ${REFERENCE_REPOSITORY}/ci/taos/plugins-good/${prebuild_plugins[idx]}.sh
-
-prebuild_plugins[++idx]="pr-prebuild-pylint"
-echo "${prebuild_plugins[idx]} is starting."
-echo "[MODULE] ${BOT_NAME}/${prebuild_plugins[idx]}: Check the code formatting style with pylint"
-echo "[DEBUG] The current path: $(pwd)."
-echo "[DEBUG] source ${REFERENCE_REPOSITORY}/ci/taos/plugins-good/${prebuild_plugins[idx]}.sh"
-source ${REFERENCE_REPOSITORY}/ci/taos/plugins-good/${prebuild_plugins[idx]}.sh
-
-prebuild_plugins[++idx]="pr-prebuild-newline"
-echo "${prebuild_plugins[idx]} is starting."
-echo "[MODULE] ${BOT_NAME}/${prebuild_plugins[idx]}: Check if there is a newline issue in text files"
-echo "[DEBUG] The current path: $(pwd)."
-echo "[DEBUG] source ${REFERENCE_REPOSITORY}/ci/taos/plugins-good/${prebuild_plugins[idx]}.sh"
-source ${REFERENCE_REPOSITORY}/ci/taos/plugins-good/${prebuild_plugins[idx]}.sh
-
-prebuild_plugins[++idx]="pr-prebuild-rpm-spec"
-echo "${prebuild_plugins[idx]} is starting."
-echo "[MODULE] ${BOT_NAME}/${prebuild_plugins[idx]}: Check if there is incorrect staements in *.spec file"
-echo "[DEBUG] The current path: $(pwd)."
-echo "[DEBUG] source ${REFERENCE_REPOSITORY}/ci/taos/plugins-good/${prebuild_plugins[idx]}.sh"
-source ${REFERENCE_REPOSITORY}/ci/taos/plugins-good/${prebuild_plugins[idx]}.sh
-
-prebuild_plugins[++idx]="pr-prebuild-file-size"
-echo "${prebuild_plugins[idx]} is starting."
-echo "[MODULE] ${BOT_NAME}/${prebuild_plugins[idx]}: Check the file size to not include big binary files"
-echo "[DEBUG] The current path: $(pwd)."
-echo "[DEBUG] source ${REFERENCE_REPOSITORY}/ci/taos/plugins-good/${prebuild_plugins[idx]}.sh"
-source ${REFERENCE_REPOSITORY}/ci/taos/plugins-good/${prebuild_plugins[idx]}.sh
-
-prebuild_plugins[++idx]="pr-prebuild-cppcheck"
-echo "${prebuild_plugins[idx]} is starting."
-echo "[MODULE] ${BOT_NAME}/${prebuild_plugins[idx]}: Check dangerous coding constructs in source codes (*.c, *.cpp) with cppcheck"
-echo "[DEBUG] The current path: $(pwd)."
-echo "[DEBUG] source ${REFERENCE_REPOSITORY}/ci/taos/plugins-good/${prebuild_plugins[idx]}.sh"
-source ${REFERENCE_REPOSITORY}/ci/taos/plugins-good/${prebuild_plugins[idx]}.sh
-
-prebuild_plugins[++idx]="pr-prebuild-nobody"
-echo "${prebuild_plugins[idx]} is starting."
-echo "[MODULE] ${BOT_NAME}/${prebuild_plugins[idx]}: Check the commit message body"
-echo "[DEBUG] The current path: $(pwd)."
-echo "[DEBUG] source ${REFERENCE_REPOSITORY}/ci/taos/plugins-good/${prebuild_plugins[idx]}.sh"
-source ${REFERENCE_REPOSITORY}/ci/taos/plugins-good/${prebuild_plugins[idx]}.sh
-
-prebuild_plugins[++idx]="pr-prebuild-timestamp"
-echo "${prebuild_plugins[idx]} is starting."
-echo "[MODULE] ${BOT_NAME}/${prebuild_plugins[idx]}: Check the timestamp of the commit"
-echo "[DEBUG] The current path: $(pwd)."
-echo "[DEBUG] source ${REFERENCE_REPOSITORY}/ci/taos/plugins-good/${prebuild_plugins[idx]}.sh"
-source ${REFERENCE_REPOSITORY}/ci/taos/plugins-good/${prebuild_plugins[idx]}.sh
-
-prebuild_plugins[++idx]="pr-prebuild-executable"
-echo "${prebuild_plugins[idx]} is starting."
-echo "[MODULE] ${BOT_NAME}/${prebuild_plugins[idx]}:  Check executable bits for .cpp, .c, .hpp, .h, .prototxt, .caffemodel, .txt., .init"
-echo "[DEBUG] The current path: $(pwd)."
-echo "[DEBUG] source ${REFERENCE_REPOSITORY}/ci/taos/plugins-good/${prebuild_plugins[idx]}.sh"
-source ${REFERENCE_REPOSITORY}/ci/taos/plugins-good/${prebuild_plugins[idx]}.sh
-
-prebuild_plugins[++idx]="pr-prebuild-hardcoded-path"
-echo "${prebuild_plugins[idx]} is starting."
-echo "[MODULE] ${BOT_NAME}/${prebuild_plugins[idx]}: Check prohibited hardcoded paths (/home/* for now)"
-echo "[DEBUG] The current path: $(pwd)."
-echo "[DEBUG] source ${REFERENCE_REPOSITORY}/ci/taos/plugins-good/${prebuild_plugins[idx]}.sh"
-source ${REFERENCE_REPOSITORY}/ci/taos/plugins-good/${prebuild_plugins[idx]}.sh
-
-prebuild_plugins[++idx]="pr-prebuild-misspelling"
-echo "${prebuild_plugins[idx]} is starting."
-echo "[MODULE] ${BOT_NAME}/${prebuild_plugins[idx]}: Check a misspelled statement in a document file with GNU Aspell"
-echo "[DEBUG] The current path: $(pwd)."
-echo "[DEBUG] source ${REFERENCE_REPOSITORY}/ci/taos/plugins-good/${prebuild_plugins[idx]}.sh"
-source ${REFERENCE_REPOSITORY}/ci/taos/plugins-good/${prebuild_plugins[idx]}.sh
-
-prebuild_plugins[++idx]="pr-prebuild-doxygen-build"
-echo "${prebuild_plugins[idx]} is starting."
-echo "[MODULE] ${BOT_NAME}/${prebuild_plugins[idx]}: Check a doxygen grammar if a doxygen can normally generate source code"
-
-prebuild_plugins[++idx]="pr-prebuild-sloccount"
-echo "${prebuild_plugins[idx]} is starting."
-echo "[MODULE] ${BOT_NAME}/${prebuild_plugins[idx]}: Check physical Source Lines of Code (SLOC) in a source code"
-echo "[DEBUG] The current path: $(pwd)."
-echo "[DEBUG] source ${REFERENCE_REPOSITORY}/ci/taos/plugins-good/${prebuild_plugins[idx]}.sh"
-source ${REFERENCE_REPOSITORY}/ci/taos/plugins-good/${prebuild_plugins[idx]}.sh
-
-prebuild_plugins[++idx]="pr-prebuild-prohibited-words"
-echo "${prebuild_plugins[idx]} is starting."
-echo "[MODULE] ${BOT_NAME}/${prebuild_plugins[idx]}: Check if source codes have prohibited words."
-echo "[DEBUG] The current path: $(pwd)."
-echo "[DEBUG] source ${REFERENCE_REPOSITORY}/ci/taos/plugins-good/${prebuild_plugins[idx]}.sh"
-source ${REFERENCE_REPOSITORY}/ci/taos/plugins-good/${prebuild_plugins[idx]}.sh
-
-prebuild_plugins[++idx]="pr-prebuild-signed-off-by"
-echo "${prebuild_plugins[idx]} is starting."
-echo "[MODULE] ${BOT_NAME}/${prebuild_plugins[idx]}: Check 'Signed-off-by' in commit body"
-echo "[DEBUG] The current path: $(pwd)."
-echo "[DEBUG] source ${REFERENCE_REPOSITORY}/ci/taos/plugins-good/${prebuild_plugins[idx]}.sh"
-source ${REFERENCE_REPOSITORY}/ci/taos/plugins-good/${prebuild_plugins[idx]}.sh
-
-prebuild_plugins[++idx]="pr-prebuild-shellcheck"
-echo "${prebuild_plugins[idx]} is starting."
-echo "[MODULE] ${BOT_NAME}/${prebuild_plugins[idx]}: Check a syntax error in a shell script file with 'shellcheck' package"
-echo "[DEBUG] The current path: $(pwd)."
-echo "[DEBUG] source ${REFERENCE_REPOSITORY}/ci/taos/plugins-good/${prebuild_plugins[idx]}.sh"
-source ${REFERENCE_REPOSITORY}/ci/taos/plugins-good/${prebuild_plugins[idx]}.sh
-
-prebuild_plugins[++idx]="pr-prebuild-flawfinder"
-echo "${prebuild_plugins[idx]} is starting."
-echo "[MODULE] ${BOT_NAME}/${prebuild_plugins[idx]}: Check security problems in the C/C++ source code with 'flawfinder' package"
-echo "[DEBUG] The current path: $(pwd)."
-echo "[DEBUG] source ${REFERENCE_REPOSITORY}/ci/taos/plugins-good/${prebuild_plugins[idx]}.sh"
-source ${REFERENCE_REPOSITORY}/ci/taos/plugins-good/${prebuild_plugins[idx]}.sh
-
-prebuild_plugins[++idx]="pr-prebuild-coverity"
-echo "${prebuild_plugins[idx]} is starting."
-echo "[MODULE] ${BOT_NAME}/${prebuild_plugins[idx]}: Check defects in the C/C++ source code with 'coverity' package"
-echo "[DEBUG] The current path: $(pwd)."
-echo "[DEBUG] source ${REFERENCE_REPOSITORY}/ci/taos/plugins-good/${prebuild_plugins[idx]}.sh"
-source ${REFERENCE_REPOSITORY}/ci/taos/plugins-good/${prebuild_plugins[idx]}.sh
-
-##################################################################################################################
-echo "[MODULE] plugins-staging: Plugin group that does not have an evaluation and aging test enough"
-# Please append your plugin modules here.
-
diff --git a/.TAOS-CI/config/config-server-administrator.sh b/.TAOS-CI/config/config-server-administrator.sh
deleted file mode 100644 (file)
index 56d1b46..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/usr/bin/env bash
-
-# Do not append a license statement in the configuration file for a differnet license-based repository.
-
-##
-# @file config-server-administrator.sh
-# @brief configuration file to declare contents that a server administrator installed.
-# @see      https://github.com/nnsuite/TAOS-CI
-# @author   Geunsik Lim <geunsik.lim@samsung.com>
-#
-
-########### Caution: If you are not server administrator, do not modify this file #################
-
-# Note that administrator of a server has to specify the location of eSDK at first.
-# In order to know how to install eSDK, please read plugins-base/pr-postbuild-build-yocto.sh file.
-# It is environment variables that are imported from eSDK to use devtool command.
-# - YOCTO_ESDK_DIR="/var/www"
-# - YOCTO_ESDK_NAME="kairos_sdk" or YOCTO_ESDK_NAME="poky_sdk"
-# In general, root path of Yocto eSDK is declated in $YOCTO_ESDK_DIR/$YOCTO_ESDK_NAME/ folder.
-
-YOCTO_ESDK_DIR="/var/www/"
-YOCTO_ESDK_NAME=""
-
diff --git a/.TAOS-CI/config/config-webhook.json b/.TAOS-CI/config/config-webhook.json
deleted file mode 100644 (file)
index 806fb1c..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-{
-    "github": {
-        "website": "github.com",
-        "id": "taos-ci",
-        "email": "taos-ci@github.io",
-        "secret": "xxxxxxxxx"
-    },
-    "broken_arrow": {
-        "id": "admin",
-        "pass": "xxxxxxxx",
-        "ip": " "
-    }
-}
-
diff --git a/.TAOS-CI/config/prohibited_words.txt b/.TAOS-CI/config/prohibited_words.txt
deleted file mode 100644 (file)
index 9771f6a..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-samsung.net
-FUCK
-file
diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml
new file mode 100644 (file)
index 0000000..c9170ee
--- /dev/null
@@ -0,0 +1,96 @@
+name: Build test/ Android NDK r12b
+
+on:
+  pull_request:
+    branches: [ main ]
+
+jobs:
+  build:
+    runs-on: ubuntu-22.04
+    steps:
+    - uses: actions/checkout@v4
+      with:
+        ref: ${{ github.event.pull_request.head.sha }}
+        fetch-depth: -${{ github.event.pull_request.commits }}
+    - uses: nttld/setup-ndk@v1
+      with:
+        ndk-version: r12b
+        link-to-sdk: true
+    - name: Check if rebuild required
+      ## @todo This should become a reusable workflow.
+      run: |
+        tmpfile=$(mktemp)
+        git show --pretty="format:" --name-only --diff-filter=AMRC ${{ github.event.pull_request.head.sha}} -${{ github.event.pull_request.commits }} | sort | uniq | awk NF > ${tmpfile}
+        echo "changed_file_list=${tmpfile}" >> "$GITHUB_ENV"
+        rebuild=`bash .github/workflows/check_if_rebuild_requires.sh ${tmpfile} android | grep "REBUILD=YES" | wc -l`
+        echo "Rebuild required: ${rebuild}"
+        echo "rebuild=${rebuild}" >> "$GITHUB_ENV"
+    - name: make cache key
+      if: env.rebuild == '1'
+      id: make-key
+      run: echo "cache_key=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT
+      shell: bash
+    - name: cache GST root
+      id: cache-gbs-root
+      if: env.rebuild == '1'
+      uses: actions/cache@v3
+      with:
+        path: ~/android
+        key: ${{ steps.make-key.outputs.cache_key }}
+    - name: Prepare Build
+      if: env.rebuild == '1'
+      run: |
+        echo "::group::Install required packages"
+        sudo apt-get update
+        sudo apt-get install tar wget gzip libglib2.0-dev libjson-glib-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libunwind-dev googletest liborc-0.4-dev flex bison libopencv-dev pkg-config python3-dev python3-numpy python3
+        echo "::endgroup::"
+        if [[ -d ~/android/gst_root_android/arm64 ]] && [[ -f ~/android/gst_root_android/arm64/lib/libgstreamer-1.0.so ]]; then
+          echo "Gst-Root-Android cached."
+        else
+          echo "::group::Download prebuilt Android-Gstreamer libraries"
+          mkdir -p ~/android/gst_root_android/arm64
+          pushd ~/android/gst_root_android/arm64
+          wget http://ci.nnstreamer.ai/warehouse/gstreamer-prebuilts-for-android-device/gst_root_android-custom-1.12.4-ndkr12b-20190213-0900/gstreamer-1.0-android-arm64-1.12.4-runtime.tar.bz2
+          wget http://ci.nnstreamer.ai/warehouse/gstreamer-prebuilts-for-android-device/gst_root_android-custom-1.12.4-ndkr12b-20190213-0900/gstreamer-1.0-android-arm64-1.12.4.tar.bz2
+          tar -xf gstreamer-1.0-android-arm64-1.12.4-runtime.tar.bz2
+          tar -xf gstreamer-1.0-android-arm64-1.12.4.tar.bz2
+          popd
+          echo "::endgroup::"
+        fi
+    - name: NDK Build
+      if: env.rebuild == '1'
+      run: |
+        export GSTREAMER_ROOT_ANDROID=~/android/gst_root_android
+        export TARGET_ARCH_ABI=arm64-v8a
+        export ANDROID_ABI=arm64-v8a
+        export APP_ALLOW_MISSING_DEPS=true
+        export NNSTREAMER_ROOT=$(pwd)
+        target_host=aarch64-linux-android
+        export AR=$target_host-ar
+        export AS=$target_host-clang
+        export CC=$target_host-clang
+        export CXX=$target_host-clang++
+        export LD=$target_host-ld
+        export STRIP=$target_host-strip
+        export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/android/gst_root_android/arm64/lib/
+        cd jni
+        echo "::group::Build NNStreamer with ndk-build"
+        ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=./Android-nnstreamer.mk NDK_APPLICATION_MK=./Application.mk -j$(nproc)
+        echo "::endgroup::"
+        ls -la ./libs/arm64-v8a/
+        cp ./libs/arm64-v8a/libnnstreamer.so $GSTREAMER_ROOT_ANDROID/arm64/lib/gstreamer-1.0/
+        export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:./libs/arm64-v8a
+
+        # Workaround for the gstreamer-android prebuild binary build glitches
+        result=$(readelf -d ~/android/gst_root_android/arm64/lib/libfontconfig.so | grep "/data/nnstreamer/cerbero.custom-1.12.4-ndkr12b-20190213-0900/build/dist/android_arm64/lib")
+        if [[ ! -z $result ]]; then
+          echo "Warning: the given prebuilt binaries for Android have incorrect rpaths."
+          sudo mkdir -p /data/nnstreamer/cerbero.custom-1.12.4-ndkr12b-20190213-0900/build/dist/android_arm64/
+          sudo ln -s ~/android/gst_root_android/arm64/lib /data/nnstreamer/cerbero.custom-1.12.4-ndkr12b-20190213-0900/build/dist/android_arm64/lib
+        fi
+
+        echo "::group::Build a test application"
+        ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=./Android-app.mk NDK_APPLICATION_MK=./Application.mk -j$(nproc)
+        ls -la /data/nnstreamer/cerbero.custom-1.12.4-ndkr12b-20190213-0900/build/dist/android_arm64/lib/
+        echo "::endgroup::"
+        cd ..
similarity index 66%
rename from .github/workflows/gbs_x64.yml
rename to .github/workflows/gbs_build.yml
index c8383ab..82e59ad 100644 (file)
@@ -1,4 +1,4 @@
-name: GBS Tizen build for x64 from Ubuntu
+name: Build and unit test/ Tizen/GBS
 
 # ${{ github.event.pull_request.commits }} : # commits in this PR
 # - changed_file_list in GITHUB_ENV: the list of files updated in this pull-request.
@@ -10,12 +10,25 @@ on:
 jobs:
   build:
 
+    strategy:
+      matrix:
+        include:
+          - aarch: "-A x86_64"
+            option: "--define \"unit_test 1\""
+          - aarch: "-A i586"
+            option: "--define \"unit_test 1\""
+          - aarch: "-A armv7l"
+            option: "--define \"unit_test 0\""
+          - aarch: "-A aarch64"
+            option: "--define \"unit_test 0\""
+
     runs-on: ubuntu-20.04
 
     steps:
     - uses: actions/checkout@v4
       with:
-        fetch-depth: 0
+        ref: ${{ github.event.pull_request.head.sha }}
+        fetch-depth: -${{ github.event.pull_request.commits }}
     - name: Check if rebuild required
       ## @todo This should become a reusable workflow.
       run: |
@@ -47,7 +60,11 @@ jobs:
     - name: run GBS
       if: env.rebuild == '1'
       run: |
-        gbs build --skip-srcrpm --define "_skip_debug_rpm 1"
+        gbs build --skip-srcrpm --define "_skip_debug_rpm 1" ${{ matrix.aarch }} ${{ matrix.option }}
+        ## Skip nntrainer build test in aarch64. @todo We need #2430 and #2431 in nntrainer.git
+        if [[ "${{ matrix.aarch }}" == "-A aarch64" ]]; then
+          echo "rebuild=0" >> "$GITHUB_ENV"
+        fi
     - name: get nntrainer
       if: env.rebuild == '1'
       uses: actions/checkout@v3
@@ -57,4 +74,6 @@ jobs:
     - name: run nntrainer GBS build
       if: env.rebuild == '1'
       run: |
-        pushd nntrainer && gbs build --skip-srcrpm --define "unit_test 1" --define "_skip_debug_rpm 1" && popd
+        pushd nntrainer
+        gbs build --skip-srcrpm ${{ matrix.aarch }} ${{ matrix.option }} --define "_skip_debug_rpm 1"
+        popd
diff --git a/.github/workflows/pdebuild.yml b/.github/workflows/pdebuild.yml
new file mode 100644 (file)
index 0000000..3a27fd2
--- /dev/null
@@ -0,0 +1,94 @@
+name: Build and unit test/ Pdebuild Ubuntu 22.04
+
+# ${{ github.event.pull_request.commits }} : # commits in this PR
+# - changed_file_list in GITHUB_ENV: the list of files updated in this pull-request.
+
+## @todo apply "cache" to pdebuilder cache, or create docker images ready for pdebuild
+
+on:
+  pull_request:
+    branches: [ main ]
+
+jobs:
+  build:
+
+    runs-on: ${{ matrix.os }}
+    strategy:
+      matrix:
+        #os: [ ubuntu-20.04, ubuntu-22.04 ]
+        ## ppa/nnstreamer's ubuntu 20.04 has gpgv error:
+        # E: Release signed by unknown key (key id CADA0F77901522B3)
+        #    The specified keyring /usr/share/keyrings/ubuntu-archive-keyring.gpg may be incorrect or out of date.
+        #    You can find the latest Debian release key at https://ftp-master.debian.org/keys.html
+        # E: debootstrap failed
+        # E: Tail of debootstrap.log:
+        # amd64: ok
+        # 2024-01-24 15:01:58 URL:http://ppa.launchpad.net/nnstreamer/ppa/ubuntu/dists/focal/InRelease [18035/18035] -> "/var/cache/pbuilder/build/10399/var/lib/apt/lists/partial/ppa.launchpad.net_nnstreamer_ppa_ubuntu_dists_focal_InRelease" [1]
+        # gpgv: Signature made Wed Jan 24 09:12:55 2024 UTC
+        # gpgv:                using RSA key 373A37D40E480F96524A4027CADA0F77901522B3
+        # gpgv: Can't check signature: No public key
+        # E: End of debootstrap.log
+        # W: Aborting with an error
+        os: [ ubuntu-22.04 ]
+        arch: [ amd64, arm64 ]
+        include:
+          - distroname: jammy
+            os: ubuntu-22.04
+        #  - distroname: focal
+        #    os: ubuntu-20.04
+
+    steps:
+    - uses: actions/checkout@v4
+      with:
+        ref: ${{ github.event.pull_request.head.sha }}
+        fetch-depth: -${{ github.event.pull_request.commits }}
+    - name: Check if rebuild required
+      ## @todo This should become a reusable workflow.
+      run: |
+        tmpfile=$(mktemp)
+        git show --pretty="format:" --name-only --diff-filter=AMRC ${{ github.event.pull_request.head.sha}} -${{ github.event.pull_request.commits }} | sort | uniq | awk NF > ${tmpfile}
+        echo "changed_file_list=${tmpfile}" >> "$GITHUB_ENV"
+        rebuild=`bash .github/workflows/check_if_rebuild_requires.sh ${tmpfile} debian | grep "REBUILD=YES" | wc -l`
+        echo "Rebuild required: ${rebuild}"
+        echo "rebuild=${rebuild}" >> "$GITHUB_ENV"
+    - uses: actions/setup-python@v1
+    - name: make cache key
+      if: env.rebuild == '1'
+      id: make-key
+      run: echo "cache_key=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT
+      shell: bash
+    - name: cache pbuilder cache
+      id: cache-pbuilder
+      if: env.rebuild == '1'
+      uses: actions/cache@v3
+      with:
+        path: /var/cache/pbuilder
+        key: ${{ steps.make-key.outputs.cache_key }}
+    - name: prepare pdebuild
+      if: env.rebuild == '1'
+      run: |
+        echo "Installing build tools"
+        sudo add-apt-repository ppa:nnstreamer/ppa
+        echo "::group::apt-get update && apt-get install"
+        sudo apt-get update && sudo apt-get install -y pbuilder debootstrap curl ubuntu-dev-tools qemu-user-static debian-archive-keyring ubuntu-keyring debhelper
+        echo "::endgroup::"
+        echo "DISTRIBUTION=${{ matrix.distroname }}" > ~/.pbuilderrc
+        echo "OTHERMIRROR=\"deb [trusted=yes] http://archive.ubuntu.com/ubuntu ${{ matrix.distroname }}-backports universe |deb [trusted=yes] http://ppa.launchpad.net/nnstreamer/ppa/ubuntu ${{ matrix.distroname }} main\"" >> ~/.pbuilderrc
+        cat ~/.pbuilderrc
+        sudo mkdir -p /root/
+        sudo ln -s ~/.pbuilderrc /root/
+        echo "=== pbuilder create"
+        echo "::group::pbuilder create --allow-untrusted"
+        sudo pbuilder create --allow-untrusted
+        echo "::endgroup::"
+        echo "=== pbuilder update"
+        echo "::group::pbuilder update --distribution ${{ matrix.distroname }}"
+        sudo pbuilder update --distribution ${{ matrix.distroname }}
+        echo "::endgroup"
+        echo "::group::pbuilder update"
+        sudo pbuilder update
+        echo "::endgroup"
+    - name: run pdebuild
+      if: env.rebuild == '1'
+      run: |
+        pdebuild --architecture ${{ matrix.arch }} -- --distribution ${{ matrix.distroname }}
diff --git a/.github/workflows/yocto.yml b/.github/workflows/yocto.yml
new file mode 100644 (file)
index 0000000..6732fca
--- /dev/null
@@ -0,0 +1,71 @@
+name: Build test/ Yocto 4.0.15
+
+on:
+  pull_request:
+    branches: [ main ]
+
+jobs:
+  build:
+
+    runs-on: ubuntu-20.04
+    steps:
+    - uses: actions/checkout@v4
+      with:
+        ref: ${{ github.event.pull_request.head.sha }}
+        fetch-depth: -${{ github.event.pull_request.commits }}
+    - name: Check if rebuild required
+      ## @todo This should become a reusable workflow.
+      run: |
+        tmpfile=$(mktemp)
+        git show --pretty="format:" --name-only --diff-filter=AMRC ${{ github.event.pull_request.head.sha}} -${{ github.event.pull_request.commits }} | sort | uniq | awk NF > ${tmpfile}
+        echo "changed_file_list=${tmpfile}" >> "$GITHUB_ENV"
+        rebuild=`bash .github/workflows/check_if_rebuild_requires.sh ${tmpfile} build | grep "REBUILD=YES" | wc -l`
+        echo "Rebuild required: ${rebuild}"
+        echo "rebuild=${rebuild}" >> "$GITHUB_ENV"
+    - name: make cache key
+      if: env.rebuild == '1'
+      id: make-key
+      run: echo "cache_key=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT
+      shell: bash
+    - name: cache Yocto SDK
+      id: cache-gbs-root
+      if: env.rebuild == '1'
+      uses: actions/cache@v3
+      with:
+        path: ~/poky_sdk/
+        key: ${{ steps.make-key.outputs.cache_key }}
+    - name: Prepare build
+      if: env.rebuild == '1'
+      run: |
+        echo "::group::apt-get install"
+        sudo apt-get update
+        sudo apt-get install sudo curl diffstat python2.7 locales bash-completion qemu gawk wget git diffstat unzip texinfo gcc build-essential chrpath socat cpio python3 python3-pip python3-pexpect xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev pylint3 xterm python3-subunit mesa-common-dev gzip libglib2.0-dev libjson-glib-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libunwind-dev googletest liborc-0.4-dev flex bison libopencv-dev pkg-config python3-dev python3-numpy git
+        sudo ln -sf python2.7 /usr/bin/python
+        echo "::endgroup::"
+        echo "::group::Locale Setup"
+        sudo dpkg-reconfigure locales
+        sudo locale-gen "en_US.UTF-8"
+        sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
+        export LC_ALL=en_US.UTF-8
+        export LANG=en_US.UTF-8
+        export LANGUAGE=en_US:en
+        locale
+        echo "::endgroup::"
+        echo "::group::eSDK install"
+        ## @todo Find a way to cache this.
+        if [[ -f ~/poky_sdk/environment-setup-cortexa57-poky-linux ]]; then
+          echo "There is a cached eSDK. Skip installing and reset previous builds"
+          . ~/poky_sdk/environment-setup-cortexa57-poky-linux
+          devtool reset -a -r
+        else
+          wget -nv https://downloads.yoctoproject.org/releases/yocto/yocto-4.0.15/toolchain/x86_64/poky-glibc-x86_64-core-image-minimal-cortexa57-qemuarm64-toolchain-ext-4.0.15.sh
+          sh poky-glibc-x86_64-core-image-minimal-cortexa57-qemuarm64-toolchain-ext-4.0.15.sh -d ~/poky_sdk
+        fi
+        echo "::endgroup::"
+    - name: Build
+      if: env.rebuild == '1'
+      run: |
+        # Get meta-nerual-network
+        . ~/poky_sdk/environment-setup-cortexa57-poky-linux
+        devtool add metaneuralnetwork http://github.com/nnstreamer/meta-neural-network.git
+        devtool build metaneuralnetwork
index 800e416..d8bcb43 100644 (file)
@@ -1,11 +1,9 @@
-### PPA does NOT use this file!  ###
-### Rule file will override!     ###
 Source: nnstreamer
 Section: libs
 Priority: optional
 Maintainer: MyungJoo Ham <myungjoo.ham@samsung.com>
 Build-Depends: gcc-9 | gcc-8 | gcc-7 | gcc-6 | gcc-5 (>=5.4),
- ninja-build, meson (>=0.50), debhelper (>=9), nnstreamer-edge-dev,
+ ninja-build, meson (>=0.49), debhelper (>=9), nnstreamer-edge-dev,
  libgstreamer1.0-dev, libgstreamer-plugins-base1.0-dev, libglib2.0-dev, libjson-glib-dev,
  gstreamer1.0-tools, gstreamer1.0-plugins-base, gstreamer1.0-plugins-good,
  libgtest-dev, ssat, libpng-dev, libopencv-dev, liborc-0.4-dev, flex, bison,
index fd6626d..a384b5f 100644 (file)
@@ -89,7 +89,7 @@ gstvideoconvert gstvideorate gstvideoscale \
 gmodule-2.0 iconv png16 gstpng gstmultifile gio-2.0 \
 gstbase-1.0 gstvideo-1.0 tag-1.0 orc app-1.0 badbase-1.0 gthread \
 cairo pixman gstbadvideo gstcontroller jpeg gstpbutils gstallocators \
-bz2 harfbuzz nnstreamer
+bz2 harfbuzz nnstreamer
 
 
 ifeq ($(NO_AUDIO), false)
@@ -104,8 +104,9 @@ LOCAL_MODULE    := tensor_repo_dynamic_test
 LOCAL_SRC_FILES += ../tests/nnstreamer_repo_dynamicity/tensor_repo_dynamic_test.c
 LOCAL_CFLAGS    += -O0 -DVERSION=\"$(NNSTREAMER_VERSION)\"
 LOCAL_CXXFLAGS  += -std=c++11 -DVERSION=\"$(NNSTREAMER_VERSION)\"
-LOCAL_LDLIBS    := -llog
-LOCAL_LDFLAGS   := $(CUSTOM_LINKER64)
+LOCAL_LDLIBS    += -llog
+#LOCAL_LDFLAGS   += $(CUSTOM_LINKER64)
+LOCAL_LDFLAGS   += -fuse-ld=bfd
 
 LOCAL_C_INCLUDES       := $(NNSTREAMER_INCLUDES)
 LOCAL_SHARED_LIBRARIES := $(BUILDING_BLOCK_LIST)
index 67da9a5..9d4f7dc 100644 (file)
@@ -120,7 +120,7 @@ gstvideoconvert gstvideorate gstvideoscale \
 gmodule-2.0 iconv png16 gstpng gstmultifile gio-2.0 \
 gstbase-1.0 gstvideo-1.0 tag-1.0 orc app-1.0 badbase-1.0 gthread \
 cairo pixman gstbadvideo gstcontroller jpeg gstpbutils gstallocators \
-bz2 harfbuzz
+bz2 harfbuzz z
 
 ifeq ($(NO_AUDIO), false)
 BUILDING_BLOCK_LIST += gstaudio-1.0 gstbadaudio-1.0 gstaudioconvert gstaudiomixer gstaudiorate gstaudioresample gstaudiotestsrc