diff --git a/.github/workflows/template_b2g_config.yml b/.github/workflows/b2g_gsi_arm64_a_config.yml similarity index 71% rename from .github/workflows/template_b2g_config.yml rename to .github/workflows/b2g_gsi_arm64_a_config.yml index 77eccfd..577fedd 100644 --- a/.github/workflows/template_b2g_config.yml +++ b/.github/workflows/b2g_gsi_arm64_a_config.yml @@ -1,8 +1,7 @@ - -name: template_b2g_config +name: b2g-gsi-arm64_a-config on: - workflow_dispatch: - + workflow_dispatch: + # NEED # 1. secrets.GIT_ACCESS_TOKEN # 2. secrets.RCLONE @@ -14,14 +13,15 @@ on: # 6. b2g_source: # remote soucre address # for example: -env: +env: GIT_ACCESS_TOKEN: ${{secrets.GIT_ACCESS_TOKEN}} - device_name: aosp_arm64 + device_name: phhgsi_arm64_a repo_dispatches: "https://api.github.com/repos/b2g-gsi/build-actions/dispatches" - b2g_source: "https://github.com/b2g-gsi/B2G" - b2g_branch: "gsi_q" - build_device_tag: aosp_arm64 + b2g_source: "https://github.com/b2gos/B2G" + b2g_branch: "gsi" + build_device_tag: gsi_arm64_a device_arch: aarch64-linux-android + actions_branch: b2g_gsi #onyx #phhgsi_arm64_a #phhgsi_arm64_ab @@ -38,5 +38,5 @@ jobs: - name: Action run: | - ./b2g/init/webhook.sh b2g_repack - #b2g_repack b2g_aosp_build b2g_gecko_build b2g_api_daemon_build + ./gsi/init/webhook.sh gsi_b2g_repack + #gsi_b2g_repack gsi_aosp_build gsi_gecko_build gsi_b2g_build gsi_api_daemon_build diff --git a/.github/workflows/b2g_gsi_arm64_ab_config.yml b/.github/workflows/b2g_gsi_arm64_ab_config.yml new file mode 100644 index 0000000..cdb846a --- /dev/null +++ b/.github/workflows/b2g_gsi_arm64_ab_config.yml @@ -0,0 +1,42 @@ +name: b2g-gsi-arm64_ab-config +on: + workflow_dispatch: + +# NEED +# 1. secrets.GIT_ACCESS_TOKEN +# 2. secrets.RCLONE +# 3. device_name eg;onyx(oneplus x), bacon(oneplus one), phhgsi_arm64_a(phh's gsi) etc. +# out/device_name +# 4. build_device_tag: eg: full-onyx-eng, full-bacon-userdebug etc. +# gsi-build.sh build_device_tag +# 5. repo_dispatches: https://api.github.com/repos/(you id)/(you repo name)/dispatches +# 6. b2g_source: +# remote soucre address +# for example: +env: + GIT_ACCESS_TOKEN: ${{secrets.GIT_ACCESS_TOKEN}} + device_name: phhgsi_arm64_ab + repo_dispatches: "https://api.github.com/repos/b2g-gsi/build-actions/dispatches" + b2g_source: "https://github.com/b2gos/B2G" + b2g_branch: "gsi" + build_device_tag: gsi_arm64_ab + device_arch: aarch64-linux-android + actions_branch: b2g_gsi +#onyx +#phhgsi_arm64_a +#phhgsi_arm64_ab +#phhgsi_arm_a +#phhgsi_arm_ab +#RUST_TARGET := armv7-linux-androideabi + +jobs: + config: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v1 + + - name: Action + run: | + ./gsi/init/webhook.sh gsi_b2g_repack + #gsi_b2g_repack gsi_aosp_build gsi_gecko_build gsi_b2g_build gsi_api_daemon_build diff --git a/.github/workflows/b2g_gsi_arm_a_config.yml b/.github/workflows/b2g_gsi_arm_a_config.yml new file mode 100644 index 0000000..c81a3c2 --- /dev/null +++ b/.github/workflows/b2g_gsi_arm_a_config.yml @@ -0,0 +1,42 @@ +name: b2g-gsi-arm_a-config +on: + workflow_dispatch: + +# NEED +# 1. secrets.GIT_ACCESS_TOKEN +# 2. secrets.RCLONE +# 3. device_name eg;onyx(oneplus x), bacon(oneplus one), phhgsi_arm64_a(phh's gsi) etc. +# out/device_name +# 4. build_device_tag: eg: full-onyx-eng, full-bacon-userdebug etc. +# gsi-build.sh build_device_tag +# 5. repo_dispatches: https://api.github.com/repos/(you id)/(you repo name)/dispatches +# 6. b2g_source: +# remote soucre address +# for example: +env: + GIT_ACCESS_TOKEN: ${{secrets.GIT_ACCESS_TOKEN}} + device_name: phhgsi_arm_a + repo_dispatches: "https://api.github.com/repos/b2g-gsi/build-actions/dispatches" + b2g_source: "https://github.com/b2gos/B2G" + b2g_branch: "gsi" + build_device_tag: gsi_arm_a + device_arch: armv7-linux-androideabi + actions_branch: b2g_gsi +#onyx +#phhgsi_arm64_a +#phhgsi_arm64_ab +#phhgsi_arm_a +#phhgsi_arm_ab +#RUST_TARGET := armv7-linux-androideabi + +jobs: + config: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v1 + + - name: Action + run: | + ./gsi/init/webhook.sh gsi_b2g_repack + #gsi_b2g_repack gsi_aosp_build gsi_gecko_build gsi_b2g_build gsi_api_daemon_build diff --git a/.github/workflows/b2g_gsi_arm_ab_config.yml b/.github/workflows/b2g_gsi_arm_ab_config.yml new file mode 100644 index 0000000..50e078b --- /dev/null +++ b/.github/workflows/b2g_gsi_arm_ab_config.yml @@ -0,0 +1,42 @@ +name: b2g-gsi-arm_ab-config +on: + workflow_dispatch: + +# NEED +# 1. secrets.GIT_ACCESS_TOKEN +# 2. secrets.RCLONE +# 3. device_name eg;onyx(oneplus x), bacon(oneplus one), phhgsi_arm64_a(phh's gsi) etc. +# out/device_name +# 4. build_device_tag: eg: full-onyx-eng, full-bacon-userdebug etc. +# gsi-build.sh build_device_tag +# 5. repo_dispatches: https://api.github.com/repos/(you id)/(you repo name)/dispatches +# 6. b2g_source: +# remote soucre address +# for example: +env: + GIT_ACCESS_TOKEN: ${{secrets.GIT_ACCESS_TOKEN}} + device_name: phhgsi_arm_ab + repo_dispatches: "https://api.github.com/repos/b2g-gsi/build-actions/dispatches" + b2g_source: "https://github.com/b2gos/B2G" + b2g_branch: "gsi" + build_device_tag: gsi_arm_ab + device_arch: armv7-linux-androideabi + actions_branch: b2g_gsi +#onyx +#phhgsi_arm64_a +#phhgsi_arm64_ab +#phhgsi_arm_a +#phhgsi_arm_ab +#RUST_TARGET := armv7-linux-androideabi + +jobs: + config: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v1 + + - name: Action + run: | + ./gsi/init/webhook.sh gsi_gecko_build + #gsi_b2g_repack gsi_aosp_build gsi_gecko_build gsi_b2g_build gsi_api_daemon_build diff --git a/.github/workflows/b2g_gsi_build.yml b/.github/workflows/b2g_gsi_build.yml new file mode 100644 index 0000000..a4695ce --- /dev/null +++ b/.github/workflows/b2g_gsi_build.yml @@ -0,0 +1,324 @@ +name: b2g-gsi-ci +on: + repository_dispatch: + types: + - gsi_b2g_repack + - gsi_aosp_build + - gsi_gecko_build + - gsi_b2g_build + - gsi_api_daemon_build + +env: + RCLONE: ${{secrets.RCLONE}} + GIT_ACCESS_TOKEN: ${{secrets.GIT_ACCESS_TOKEN}} + gecko_version: ${{github.event.client_payload.gecko_version}} + device_name: ${{github.event.client_payload.device_name}} + device_arch: ${{github.event.client_payload.device_arch}} + build_device_tag: ${{github.event.client_payload.build_device_tag}} + repo_dispatches: ${{github.event.client_payload.repo_dispatches}} + b2g_source: ${{github.event.client_payload.b2g_source}} + b2g_branch: ${{github.event.client_payload.b2g_branch}} + + + systemimage: system.img.xz + outimage: out + out_path: /Volumes/out/B2G + + image: b2g_gsi + sourceimage: b2g_gsi + work: /Volumes/b2g_gsi + out_work: /Volumes/out + remotepath: b2g_gsi_${{github.event.client_payload.device_name}} + actions_branch: ${{github.event.client_payload.actions_branch}} + + +jobs: + repack_aosp: + if: github.event.action == 'gsi_b2g_repack' + runs-on: macos-10.15 + timeout-minutes: 360 + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + ref: ${{ env.actions_branch }} + + - name: Clean system environment + continue-on-error: true + run: | + ./common/init/all_unmount_darwin.sh + + - name: Initialization system environment + run: | + ./common/init/clean_space_darwin.sh + ./common/init/env_darwin.sh + ./common/source/create_sparseimage.sh + + - name: Fetch source + run: | + ./gsi/source/repo_source.sh + + - name: Fix source + continue-on-error: true + run: | + echo Fix source + ./common/source/fix_soucre.sh + ./gsi/source/fix_soucre.sh + + # upload sparseimage to gdrive + - name: Upload Source + run: | + ./common/init/all_unmount_darwin.sh + ./common/source/compress_sourceimage.sh + ./common/source/upload_image.sh + + - name: Start build job + run: | + ./gsi/init/webhook.sh gsi_aosp_build + + aosp_build: + if: github.event.action == 'gsi_aosp_build' || github.event.action == 'gsi_b2g_build' + runs-on: macos-10.15 + timeout-minutes: 360 + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + ref: ${{ env.actions_branch }} + + - name: Initialization system environment + run: | + ./common/init/all_unmount_darwin.sh + ./common/init/clean_space_darwin.sh + ./common/init/env_darwin.sh + ./common/source/download_source_from_gdrive.sh + df -h + + - name: Env + run: | + brew install cpanm + sudo cpan LWP::UserAgent + ./common/source/download_kaios_ndk.sh + + - name: Check The Previous “error.log” + run: | + if [ -d "${work}/B2G/out/error.log" ];then + ls ${work}/out + fi + if [ -d "${work}/B2G/out/error.log" ];then + ls -al ${work}/B2G/out/error* + echo "old error.log:" + cat ${work}/B2G/out/error.log + sudo rm ${work}/B2G/out/error.log + touch ${work}/B2G/out/error.log + fi + + - name: Build Source Without Gecko + if: github.event.action == 'gsi_aosp_build' + continue-on-error: true + id: build + run: | + df -h + ./gsi/build/build_without_gecko.sh + + + - name: B2G Build - Build Source include Gecko + if: github.event.action == 'gsi_b2g_build' + run: | + df -h + ./common/build/add_pre_api_daemon.sh + #### build + ./gsi/build/build_with_gecko.sh + + + - name: Check Current ”error.log“ Status + id: check + run: | + if [ -s ${work}/B2G/out/error.log ]; then + echo Error! + cat ${work}/B2G/out/error.log + ./common/init/all_unmount_darwin.sh + exit 2 + else + exit 0 + fi + + - name: Repack b2g-sysroot and api-sysroot + id: sysroot + if: github.event.action == 'gsi_aosp_build' && steps.check.conclusion == 'success' && steps.build.outcome == 'success' && steps.build.conclusion == 'success' + run: | + cp ./common/build/create-b2g-sysroot.sh ${work}/B2G + cp ./common/build/create-api_sysroot.sh ${work}/B2G + pip3 install zstandard + pip install zstandard + + echo repack_b2g-sysroot + ./common/build/repack_b2g-sysroot.sh + echo repack_api-sysroot + ./common/build/repack_api-sysroot.sh + echo Upload b2g-sysroot and api-sysroot + ./common/source/upload_sysroot.sh + + - name: Updoal systemimage + if: github.event.action == 'gsi_b2g_build' + continue-on-error: true + run: | + ./common/source/upload_systemimage.sh + + - name: Clean system environment + continue-on-error: true + run: | + ./common/init/all_unmount_darwin.sh + + - name: Send "build_gecko" WebHook + if: github.event.action == 'gsi_aosp_build' && steps.check.conclusion == 'success' && steps.build.outcome == 'success' && steps.build.conclusion == 'success' + run: | + ./gsi/init/webhook.sh gsi_gecko_build + + - name: Update Build Source + if: steps.check.conclusion == 'success' && github.event.action == 'gsi_aosp_build' + run: | + ./common/source/upload_out_image.sh + + - name: Send "aosp_build" WebHook Again + if: github.event.action == 'gsi_aosp_build' && steps.build.outcome == 'failure' && steps.build.conclusion == 'success' && steps.check.conclusion == 'success' + run: | + ./gsi/init/webhook.sh gsi_aosp_build + + gecko_build: + if: github.event.action == 'gsi_gecko_build' || github.event_name == 'schedule' + runs-on: ubuntu-18.04 + timeout-minutes: 360 + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + ref: ${{ env.actions_branch }} + + - name: Initialization system environment + run: | + ./common/init/env_linux.sh + + - name: clean disk + run: | + ./common/init/clean_space_linux.sh + + - uses: hecrj/setup-rust-action@v1 + with: + rust-version: stable + - uses: actions/checkout@master + - name: Install sccache + run: cargo install sccache + + - name: Fetch Source + run: | + df -h + cd ~ + git clone https://github.com/kaiostech/gecko-b2g -b gonk --depth=1 + df -h + +# - uses: actions/checkout@v2 +# - name: Setup tmate session +# uses: mxschmitt/action-tmate@v3 + + - name: Bootstrap Gecko + run: | + df -h + ./common/build/bootstrap_gecko.sh + ./common/source/download_kaios_ndk.sh + rustup target add aarch64-linux-android armv7-linux-androideabi thumbv7neon-linux-androideabi + + - name: Build Gecko + run: | + cp ./common/build/build-gecko-srcipt.sh ~/gecko-b2g + ./common/build/build_gecko.sh + + - name: Get Gecko Version + run: | + cd ~/gecko-b2g + echo `cat browser/config/version.txt` + export version=`cat browser/config/version.txt` + + if [ "$device_arch" == "aarch64-linux-android" ]; then + TARGET_ARCH=aarch64 + ARCH_ABI="android" + else + TARGET_ARCH=arm + ARCH_ABI="androideabi" + fi + echo "gecko_version=b2g-${version}.en-US.linux-${ARCH_ABI}-${TARGET_ARCH}.tar.bz2" >> $GITHUB_ENV + + + - name: Upload Artifact + uses: actions/upload-artifact@master + with: + name: ${{ env.gecko_version }} + path: ~/objdir-gecko/dist/${{ env.gecko_version }} + + - name: Upload to Gdrive + run: | + df -h + cd ~/objdir-gecko/dist + rclone copy ${{ env.gecko_version }} itd:ci/${remotepath} + df -h + + - name: Send "b2g_api_daemon_build" WebHook + run: | + ./gsi/init/webhook.sh gsi_api_daemon_build + + api-daemon_build: + if: github.event.action == 'gsi_api_daemon_build' + runs-on: ubuntu-18.04 + timeout-minutes: 360 + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + ref: ${{ env.actions_branch }} + + - name: Initialization system environment + run: | + df -h + ./common/init/env_linux.sh + + - name: Download Source + run: | + ./common/source/download_kaios_ndk.sh + cd ~ + #### + rustup target add aarch64-linux-android armv7-linux-androideabi + rclone copy itd:ci/${remotepath}/api-sysroot.tar.zst ./ + mkdir ~/.mozbuild/api-sysroot + tar -C "$HOME/.mozbuild/api-sysroot" -I zstd -x -a -f api-sysroot.tar.zst + ls ~/.mozbuild/api-sysroot/out + cd ~ + git clone https://github.com/kaiostech/api-daemon + ls -al + + - name: build Source + run: | + #### + export TARGET_ARCH=${device_arch} + export BUILD_WITH_NDK_DIR=~/.mozbuild/android-ndk-r20b-canary + export GONK_DIR=~/.mozbuild/api-sysroot + export GONK_PRODUCT=${device_name} + cd ~/api-daemon + ./update-prebuilts.sh + + - name: zip Artifact + run: | + cd ~ + zip -r ~/prebuilts.zip ~/api-daemon/prebuilts + rclone copy ~/prebuilts.zip itd:ci/${remotepath} + ls -al -h + + - name: Upload Artifact + continue-on-error: true + uses: actions/upload-artifact@master + with: + name: prebuilts.zip + path: ~/prebuilts.zip + + - name: Send Done Notify && Send "b2g_build" WebHook + run: | + ./gsi/init/webhook.sh gsi_b2g_build diff --git a/.github/workflows/capyloon_gsi_arm64_ab_config.yml b/.github/workflows/capyloon_gsi_arm64_ab_config.yml new file mode 100644 index 0000000..15f8d4e --- /dev/null +++ b/.github/workflows/capyloon_gsi_arm64_ab_config.yml @@ -0,0 +1,42 @@ +name: capyloon_gsi_arm64_ab_config +on: + workflow_dispatch: + +# NEED +# 1. secrets.GIT_ACCESS_TOKEN +# 2. secrets.RCLONE +# 3. device_name eg;onyx(oneplus x), bacon(oneplus one), phhgsi_arm64_a(phh's gsi) etc. +# out/device_name +# 4. build_device_tag: eg: full-onyx-eng, full-bacon-userdebug etc. +# gsi-build.sh build_device_tag +# 5. repo_dispatches: https://api.github.com/repos/(you id)/(you repo name)/dispatches +# 6. b2g_source: +# remote soucre address +# for example: +env: + GIT_ACCESS_TOKEN: ${{secrets.GIT_ACCESS_TOKEN}} + device_name: phhgsi_arm64_ab + repo_dispatches: "https://api.github.com/repos/b2g-gsi/build-actions/dispatches" + b2g_source: "https://github.com/capyloon/B2G" + b2g_branch: "master" + build_device_tag: gsi_arm64_ab + device_arch: aarch64-linux-android + actions_branch: b2g_gsi +#onyx +#phhgsi_arm64_a +#phhgsi_arm64_ab +#phhgsi_arm_a +#phhgsi_arm_ab +#RUST_TARGET := armv7-linux-androideabi + +jobs: + config: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v1 + + - name: Action + run: | + ./gsi/init/webhook.sh capyloon_gsi_aosp_build + #gsi_b2g_repack gsi_aosp_build gsi_gecko_build gsi_b2g_build gsi_api_daemon_build diff --git a/.github/workflows/capyloon_gsi_full_test_build.yml b/.github/workflows/capyloon_gsi_full_test_build.yml new file mode 100644 index 0000000..b71abe2 --- /dev/null +++ b/.github/workflows/capyloon_gsi_full_test_build.yml @@ -0,0 +1,357 @@ +name: capyloon-gsi-ci +on: + repository_dispatch: + types: + - capyloon_gsi_b2g_repack + - capyloon_gsi_aosp_build + # - capyloon_gsi_gecko_build + - capyloon_gsi_b2g_build + - capyloon_gsi_api_daemon_build + +env: + RCLONE: ${{secrets.RCLONE}} + GIT_ACCESS_TOKEN: ${{secrets.GIT_ACCESS_TOKEN}} + gecko_version: ${{github.event.client_payload.gecko_version}} + device_name: ${{github.event.client_payload.device_name}} + device_arch: ${{github.event.client_payload.device_arch}} + build_device_tag: ${{github.event.client_payload.build_device_tag}} + repo_dispatches: ${{github.event.client_payload.repo_dispatches}} + b2g_source: ${{github.event.client_payload.b2g_source}} + b2g_branch: ${{github.event.client_payload.b2g_branch}} + + + systemimage: system.img.xz + outimage: out + out_path: /Volumes/out/B2G + + image: b2g_gsi + sourceimage: b2g_gsi + work: /Volumes/b2g_gsi + out_work: /Volumes/out + remotepath: b2g_gsi_${{github.event.client_payload.device_name}} + actions_branch: ${{github.event.client_payload.actions_branch}} + + +jobs: + repack_aosp: + if: github.event.action == 'capyloon_gsi_b2g_repack' + runs-on: macos-10.15 + timeout-minutes: 360 + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + ref: ${{ env.actions_branch }} + + - name: Clean system environment + continue-on-error: true + run: | + ./common/init/all_unmount_darwin.sh + + - name: Initialization system environment + run: | + ./common/init/clean_space_darwin.sh + ./common/init/env_darwin.sh + ./common/source/create_sparseimage.sh + + - name: Fetch source + run: | + ./gsi/source/repo_source.sh + + - name: Fix source + continue-on-error: true + run: | + echo Fix source + ./common/source/fix_soucre.sh + ./gsi/source/fix_soucre.sh + + # upload sparseimage to gdrive + - name: Upload Source + run: | + ./common/init/all_unmount_darwin.sh + ./common/source/compress_sourceimage.sh + ./common/source/upload_image.sh + + - name: Start build job + run: | + ./gsi/init/webhook.sh capyloon_gsi_aosp_build + + aosp_build: + if: github.event.action == 'capyloon_gsi_aosp_build' || github.event.action == 'capyloon_gsi_b2g_build' + runs-on: macos-10.15 + timeout-minutes: 360 + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + ref: ${{ env.actions_branch }} + + + - name: bootstrap_gecko + run: | + # brew install mercurial + # ./common/source/download_kaios_ndk.sh + cp ./common/build/bootstrap_gecko.sh ~/ + cd ~ + git clone https://github.com/mozilla/gecko-dev --depth=1 -b master + cd ./gecko-dev + export MOZBUILD_STATE_PATH=~/.mozbuild + #~/bootstrap_gecko.sh + + + #./mach --no-interactive bootstrap --application-choice=mobile_android + + + + - uses: actions/checkout@v2 + - name: Setup tmate session + uses: mxschmitt/action-tmate@v3 + + + + - name: Initialization system environment + run: | + chmod +x ./gsi/full/download_kaios_ndk.sh + ./gsi/full/download_kaios_ndk.sh + ./common/init/all_unmount_darwin.sh + ./common/init/clean_space_darwin.sh + ./common/init/env_darwin.sh + ./common/source/download_source_from_gdrive.sh + df -h + + - uses: hecrj/setup-rust-action@v1 + with: + rust-version: stable + - uses: actions/checkout@master + - name: Install sccache + run: cargo install sccache + + - name: Env + run: | + brew install cpanm + sudo cpan LWP::UserAgent + # ./common/source/download_kaios_ndk.sh + + - name: Check The Previous “error.log” + run: | + if [ -d "${work}/B2G/out/error.log" ];then + ls ${work}/out + fi + if [ -d "${work}/B2G/out/error.log" ];then + ls -al ${work}/B2G/out/error* + echo "old error.log:" + cat ${work}/B2G/out/error.log + sudo rm ${work}/B2G/out/error.log + touch ${work}/B2G/out/error.log + fi + + - name: Build + if: github.event.action == 'capyloon_gsi_aosp_build' + continue-on-error: true + id: build + run: | + df -h + chmod +x ./gsi/full/build.sh + ./gsi/full/build.sh + + + # - name: B2G Build - Build Source include Gecko + # if: github.event.action == 'gsi_b2g_build' + # run: | + # df -h + # ./common/build/add_pre_api_daemon.sh + # #### build + # ./gsi/build/build_with_gecko.sh + + + - name: Check Current ”error.log“ Status + id: check + run: | + if [ -s ${work}/B2G/out/error.log ]; then + echo Error! + cat ${work}/B2G/out/error.log + ./common/init/all_unmount_darwin.sh + exit 2 + else + exit 0 + fi + + # - name: Repack b2g-sysroot and api-sysroot + # id: sysroot + # if: github.event.action == 'capyloon_gsi_aosp_build' && steps.check.conclusion == 'success' && steps.build.outcome == 'success' && steps.build.conclusion == 'success' + # run: | + # cp ./common/build/create-b2g-sysroot.sh ${work}/B2G + # cp ./common/build/create-api_sysroot.sh ${work}/B2G + # pip3 install zstandard + # pip install zstandard + + # echo repack_b2g-sysroot + # ./common/build/repack_b2g-sysroot.sh + # echo repack_api-sysroot + # ./common/build/repack_api-sysroot.sh + # echo Upload b2g-sysroot and api-sysroot + # ./common/source/upload_sysroot.sh + + - name: Updoal systemimage + if: github.event.action == 'capyloon_gsi_b2g_build' + continue-on-error: true + run: | + ./common/source/upload_systemimage.sh + + - name: Clean system environment + continue-on-error: true + run: | + ./common/init/all_unmount_darwin.sh + + - name: Send "build_gecko" WebHook + if: github.event.action == 'capyloon_gsi_aosp_build' && steps.check.conclusion == 'success' && steps.build.outcome == 'success' && steps.build.conclusion == 'success' + run: | + ./gsi/init/webhook.sh capyloon_gsi_gecko_build + + - name: Update Build Source + if: steps.check.conclusion == 'success' && github.event.action == 'capyloon_gsi_aosp_build' + run: | + ./common/source/upload_out_image.sh + + - name: Send "aosp_build" WebHook Again + if: github.event.action == 'capyloon_gsi_aosp_build' && steps.build.outcome == 'failure' && steps.build.conclusion == 'success' && steps.check.conclusion == 'success' + run: | + ./gsi/init/webhook.sh capyloon_gsi_aosp_build + +# gecko_build: +# if: github.event.action == 'capyloon_gsi_gecko_build' || github.event_name == 'schedule' +# runs-on: ubuntu-18.04 +# timeout-minutes: 360 +# steps: +# - name: Checkout +# uses: actions/checkout@v2 +# with: +# ref: ${{ env.actions_branch }} + +# - name: Initialization system environment +# run: | +# ./common/init/env_linux.sh + +# - name: clean disk +# run: | +# ./common/init/clean_space_linux.sh + +# - uses: hecrj/setup-rust-action@v1 +# with: +# rust-version: stable +# - uses: actions/checkout@master +# - name: Install sccache +# run: cargo install sccache + +# - name: Fetch Source +# run: | +# df -h +# cd ~ +# git clone https://github.com/kaiostech/gecko-b2g -b gonk --depth=1 +# df -h + +# # - uses: actions/checkout@v2 +# # - name: Setup tmate session +# # uses: mxschmitt/action-tmate@v3 + +# - name: Bootstrap Gecko +# run: | +# df -h +# ./common/build/bootstrap_gecko.sh +# ./common/source/download_kaios_ndk.sh +# rustup target add aarch64-linux-android armv7-linux-androideabi thumbv7neon-linux-androideabi + +# - name: Build Gecko +# run: | +# cp ./common/build/build-gecko-srcipt.sh ~/gecko-b2g +# ./common/build/build_gecko.sh + +# - name: Get Gecko Version +# run: | +# cd ~/gecko-b2g +# echo `cat browser/config/version.txt` +# export version=`cat browser/config/version.txt` + +# if [ "$device_arch" == "aarch64-linux-android" ]; then +# TARGET_ARCH=aarch64 +# ARCH_ABI="android" +# else +# TARGET_ARCH=arm +# ARCH_ABI="androideabi" +# fi +# echo "gecko_version=b2g-${version}.en-US.linux-${ARCH_ABI}-${TARGET_ARCH}.tar.bz2" >> $GITHUB_ENV + + +# - name: Upload Artifact +# uses: actions/upload-artifact@master +# with: +# name: ${{ env.gecko_version }} +# path: ~/objdir-gecko/dist/${{ env.gecko_version }} + +# - name: Upload to Gdrive +# run: | +# df -h +# cd ~/objdir-gecko/dist +# rclone copy ${{ env.gecko_version }} itd:ci/${remotepath} +# df -h + +# - name: Send "b2g_api_daemon_build" WebHook +# run: | +# ./gsi/init/webhook.sh gsi_api_daemon_build + + # api-daemon_build: + # if: github.event.action == 'gsi_api_daemon_build' + # runs-on: ubuntu-18.04 + # timeout-minutes: 360 + # steps: + # - name: Checkout + # uses: actions/checkout@v2 + # with: + # ref: ${{ env.actions_branch }} + + # - name: Initialization system environment + # run: | + # df -h + # ./common/init/env_linux.sh + + # - name: Download Source + # run: | + # ./common/source/download_kaios_ndk.sh + # cd ~ + # #### + # rustup target add aarch64-linux-android armv7-linux-androideabi + # rclone copy itd:ci/${remotepath}/api-sysroot.tar.zst ./ + # mkdir ~/.mozbuild/api-sysroot + # tar -C "$HOME/.mozbuild/api-sysroot" -I zstd -x -a -f api-sysroot.tar.zst + # ls ~/.mozbuild/api-sysroot/out + # cd ~ + # git clone https://github.com/kaiostech/api-daemon + # ls -al + + # - name: build Source + # run: | + # #### + # export TARGET_ARCH=${device_arch} + # export BUILD_WITH_NDK_DIR=~/.mozbuild/android-ndk-r20b-canary + # export GONK_DIR=~/.mozbuild/api-sysroot + # export GONK_PRODUCT=${device_name} + # cd ~/api-daemon + # ./update-prebuilts.sh + + # - name: zip Artifact + # run: | + # cd ~ + # zip -r ~/prebuilts.zip ~/api-daemon/prebuilts + # rclone copy ~/prebuilts.zip itd:ci/${remotepath} + # ls -al -h + + # - name: Upload Artifact + # continue-on-error: true + # uses: actions/upload-artifact@master + # with: + # name: prebuilts.zip + # path: ~/prebuilts.zip + + # - name: Send Done Notify && Send "b2g_build" WebHook + # run: | + # ./gsi/init/webhook.sh gsi_b2g_build diff --git a/.github/workflows/template_b2g_build.yml b/.github/workflows/onyx_b2g_build.yml similarity index 65% rename from .github/workflows/template_b2g_build.yml rename to .github/workflows/onyx_b2g_build.yml index 15e42d7..ef6dc91 100644 --- a/.github/workflows/template_b2g_build.yml +++ b/.github/workflows/onyx_b2g_build.yml @@ -1,13 +1,12 @@ - -name: b2g-ci +name: onyx-b2g-ci on: repository_dispatch: types: - - b2g_repack - - b2g_aosp_build - - b2g_gecko_build - - b2g_b2g_build - - b2g_api_daemon_build + - onyx_b2g_repack + - onyx_aosp_build + - onyx_gecko_build + - onyx_b2g_build + - onyx_api_daemon_build env: RCLONE: ${{secrets.RCLONE}} @@ -25,23 +24,23 @@ env: outimage: out out_path: /Volumes/out/B2G - image: b2g_gsi - sourceimage: b2g_gsi - work: /Volumes/b2g_gsi + image: b2g_onyx + sourceimage: b2g_onyx + work: /Volumes/b2g_onyx out_work: /Volumes/out - remotepath: b2g_gsi_${{github.event.client_payload.device_name}} + remotepath: b2g_${{github.event.client_payload.device_name}} jobs: repack_aosp: - if: github.event.action == 'b2g_repack' - runs-on: macos-latest + if: github.event.action == 'onyx_b2g_repack' + runs-on: macos-10.15 timeout-minutes: 360 steps: - name: Checkout uses: actions/checkout@v2 with: - ref: android-build + ref: ${{ env.actions_branch }} - name: Clean system environment continue-on-error: true @@ -56,14 +55,14 @@ jobs: - name: Fetch source run: | - ./b2g/source/repo_source.sh + ./onyx/source/repo_source.sh - name: Fix source continue-on-error: true run: | echo Fix source - ./b2g/source/fix_soucre.sh - sudo rm -rf .repo + ./common/source/fix_soucre.sh + ./onyx/source/fix_soucre.sh # upload sparseimage to gdrive - name: Upload Source @@ -74,17 +73,17 @@ jobs: - name: Start build job run: | - ./b2g/init/webhook.sh b2g_aosp_build + ./onyx/init/webhook.sh onyx_aosp_build aosp_build: - if: github.event.action == 'b2g_aosp_build' || github.event.action == 'b2g_b2g_build' - runs-on: macos-latest + if: github.event.action == 'onyx_aosp_build' || github.event.action == 'onyx_b2g_build' + runs-on: macos-10.15 timeout-minutes: 360 steps: - name: Checkout uses: actions/checkout@v2 with: - ref: android-build + ref: ${{ env.actions_branch }} - name: Initialization system environment run: | @@ -99,22 +98,8 @@ jobs: brew install cpanm sudo cpan LWP::UserAgent - ####pre-api-daemon - cd ~ - curl https://packages.preprod.kaiostech.com/ndk/v4/mozbuild.tar.bz2 -o mozbuild.tar.bz2 - tar -xvf mozbuild.tar.bz2 - sudo rm mozbuild.tar.bz2 + ./common/source/download_kaios_ndk.sh - #tmp - cd ${work}/B2G/gonk-misc - sudo rm -r api-daemon - git clone https://github.com/b2g-gsi/api-daemon -b without-api-daemon - #TODO - cd ~ - git clone https://github.com/b2g-gsi/platform_build -b gsi_q --depth=1 - rm ${work}/B2G/build/make/target/product/aosp_arm64.mk - cp ~/platform_build/target/product/aosp_arm64.mk ${work}/B2G/build/make/target/product/ - - name: Check The Previous “error.log” run: | if [ -d "${work}/B2G/out/error.log" ];then @@ -129,23 +114,20 @@ jobs: fi - name: Build Source Without Gecko - if: github.event.action == 'b2g_aosp_build' + if: github.event.action == 'onyx_aosp_build' continue-on-error: true id: build run: | df -h + ./onyx/build/build_without_gecko.sh - ./b2g/build/build_without_gecko.sh - - - name: B2G Build - Build Source include Gecko - if: github.event.action == 'b2g_b2g_build' + if: github.event.action == 'onyx_b2g_build' run: | df -h - ./b2g/build/add_pre_api_daemon.sh - + ./common/build/add_pre_api_daemon.sh #### build - ./b2g/build/build_with_gecko.sh + ./onyx/build/build_with_gecko.sh - name: Check Current ”error.log“ Status @@ -162,28 +144,26 @@ jobs: - name: Repack b2g-sysroot and api-sysroot id: sysroot - if: github.event.action == 'b2g_aosp_build' && steps.check.conclusion == 'success' && steps.build.outcome == 'success' && steps.build.conclusion == 'success' + if: github.event.action == 'onyx_aosp_build' && steps.check.conclusion == 'success' && steps.build.outcome == 'success' && steps.build.conclusion == 'success' run: | - chmod +x ./b2g/build/create-b2g-sysroot.sh - chmod +x ./b2g/build/api_sysroot.sh - cp ./b2g/build/create-b2g-sysroot.sh ${work}/B2G - cp ./b2g/build/api_sysroot.sh ${work}/B2G + cp ./common/build/create-b2g-sysroot.sh ${work}/B2G + cp ./common/build/create-api_sysroot.sh ${work}/B2G pip3 install zstandard pip install zstandard echo repack_b2g-sysroot - ./b2g/build/repack_b2g-sysroot.sh + ./common/build/repack_b2g-sysroot.sh echo repack_api-sysroot - ./b2g/build/repack_api-sysroot.sh + ./common/build/repack_api-sysroot.sh echo Upload b2g-sysroot and api-sysroot - ./b2g/source/upload_sysroot.sh + ./common/source/upload_sysroot.sh - name: Updoal systemimage - if: github.event.action == 'b2g_b2g_build' + if: github.event.action == 'onyx_b2g_build' continue-on-error: true run: | - chmod +x ./b2g/source/upload_systemimage.sh - ./b2g/source/upload_systemimage.sh + chmod +x ./common/source/upload_systemimage.sh + ./common/source/upload_systemimage.sh - name: Clean system environment continue-on-error: true @@ -191,34 +171,30 @@ jobs: ./common/init/all_unmount_darwin.sh - name: Send "build_gecko" WebHook - if: github.event.action == 'b2g_aosp_build' && steps.check.conclusion == 'success' && steps.build.outcome == 'success' && steps.build.conclusion == 'success' + if: github.event.action == 'onyx_aosp_build' && steps.check.conclusion == 'success' && steps.build.outcome == 'success' && steps.build.conclusion == 'success' run: | - ./b2g/init/webhook.sh b2g_gecko_build + ./onyx/init/webhook.sh onyx_gecko_build -# - name: release WebHook -# if: github.event.action == 'b2g_build' -# run: | -# curl -H "Authorization: token ${{secrets.GIT_ACCESS_TOKEN}}" --request POST --data '{"event_type": "release","client_payload": {"image":"'${image}'", "gecko_version":"'${gecko_version}'", "device_name":"'${device_name}'","device_arch":"'${device_arch}'","kernel":"'${kernel}'"}}' https://api.github.com/repos/ittat/SuperBot/dispatches - name: Update Build Source - if: steps.check.conclusion == 'success' && github.event.action == 'b2g_aosp_build' + if: steps.check.conclusion == 'success' && github.event.action == 'onyx_aosp_build' run: | ./common/source/upload_out_image.sh - name: Send "aosp_build" WebHook Again - if: github.event.action == 'b2g_aosp_build' && steps.build.outcome == 'failure' && steps.build.conclusion == 'success' && steps.check.conclusion == 'success' + if: github.event.action == 'onyx_aosp_build' && steps.build.outcome == 'failure' && steps.build.conclusion == 'success' && steps.check.conclusion == 'success' run: | - ./b2g/init/webhook.sh b2g_aosp_build + ./onyx/init/webhook.sh onyx_aosp_build gecko_build: - if: github.event.action == 'b2g_gecko_build' || github.event_name == 'schedule' + if: github.event.action == 'onyx_gecko_build' || github.event_name == 'schedule' runs-on: ubuntu-18.04 timeout-minutes: 360 steps: - name: Checkout uses: actions/checkout@v2 with: - ref: android-build + ref: ${{ env.actions_branch }} - name: Initialization system environment run: | @@ -238,12 +214,21 @@ jobs: - name: Fetch Source run: | df -h + cp ./onyx/source/44fd8680baef9b9b4538dff707eb1f7328756222.patch ~ + cp ./onyx/source/cff33e0d3ee242a68f0484cc00cda6ed8c02c5f2.patch ~ cd ~ curl https://packages.preprod.kaiostech.com/ndk/v4/mozbuild.tar.bz2 -o mozbuild.tar.bz2 tar -xvf mozbuild.tar.bz2 sudo rm mozbuild.tar.bz2 cd ~ - git clone https://github.com/kaiostech/gecko-b2g -b gonk --depth=1 + git clone https://github.com/kaiostech/gecko-b2g -b gonk + #for onyx + # cd gecko-b2g + # git am ~/44fd8680baef9b9b4538dff707eb1f7328756222.patch + # git am ~/cff33e0d3ee242a68f0484cc00cda6ed8c02c5f2.patch + + + #git clone https://github.com/OnePlus-onyx/gecko-b2g-onyx -b onyx --depth=1 df -h - name: Bootstrap Gecko @@ -253,12 +238,13 @@ jobs: export SHELL=/bin/bash sudo apt update export LOCAL_NDK_BASE_URL='ftp://ftp.kaiostech.com/ndk/android-ndk' - ./mach bootstrap --no-interactive --application-choice 'GeckoView/Firefox for Android' + ./mach bootstrap --application-choice 'GeckoView/Firefox for Android' df -h - - name: Build Gecko for gsi + - name: Build Gecko run: | - ./b2g/build/build_gecko.sh + cp ./common/build/build-gecko-srcipt.sh ~/gecko-b2g + ./common/build/build_gecko.sh - name: Get Gecko Version run: | @@ -273,7 +259,6 @@ jobs: TARGET_ARCH=arm ARCH_ABI="androideabi" fi - #echo "::set-env name=B2G_OUT::b2g-${version}.en-US.linux-${ARCH_ABI}-${TARGET_ARCH}.tar.bz2" echo "gecko_version=b2g-${version}.en-US.linux-${ARCH_ABI}-${TARGET_ARCH}.tar.bz2" >> $GITHUB_ENV @@ -281,29 +266,29 @@ jobs: uses: actions/upload-artifact@master with: name: ${{ env.gecko_version }} - path: ~/objdir-gsi-gecko/dist/${{ env.gecko_version }} + path: ~/objdir-gecko/dist/${{ env.gecko_version }} - name: Upload to Gdrive run: | df -h - cd ~/objdir-gsi-gecko/dist + cd ~/objdir-gecko/dist rclone copy ${{ env.gecko_version }} itd:ci/${remotepath} df -h - name: Send "b2g_api_daemon_build" WebHook run: | - ./b2g/init/webhook.sh b2g_api_daemon_build + ./onyx/init/webhook.sh onyx_api_daemon_build api-daemon_build: - if: github.event.action == 'b2g_api_daemon_build' + if: github.event.action == 'onyx_api_daemon_build' runs-on: ubuntu-18.04 timeout-minutes: 360 steps: - name: Checkout uses: actions/checkout@v2 with: - ref: android-build - + ref: ${{ env.actions_branch }} + - name: Initialization system environment run: | df -h @@ -323,10 +308,8 @@ jobs: cd ~ git clone https://github.com/kaiostech/api-daemon - #--depth=1 - cd api-daemon - #git checkout 405f8d72005b0d753ea3a181246d4f5dbf129669 -b test ls -al + - name: build Source run: | #### @@ -335,9 +318,6 @@ jobs: export GONK_DIR=~/.mozbuild/api-sysroot export GONK_PRODUCT=${device_name} cd ~/api-daemon - ### temp - mkdir -p ./target/aarch64-linux-android/release/symbols - ### ./update-prebuilts.sh - name: zip Artifact @@ -356,4 +336,4 @@ jobs: - name: Send Done Notify && Send "b2g_build" WebHook run: | - ./b2g/init/webhook.sh b2g_b2g_build + ./onyx/init/webhook.sh onyx_b2g_build diff --git a/.github/workflows/onyx_b2g_config.yml b/.github/workflows/onyx_b2g_config.yml new file mode 100644 index 0000000..0568c33 --- /dev/null +++ b/.github/workflows/onyx_b2g_config.yml @@ -0,0 +1,36 @@ +name: onyx_b2g_config +on: + workflow_dispatch: + +# NEED +# 1. secrets.GIT_ACCESS_TOKEN +# 2. secrets.RCLONE +# 3. device_name eg;onyx(oneplus x), bacon(oneplus one), phhgsi_arm64_a(phh's gsi) etc. +# out/device_name +# 4. build_device_tag: eg: full-onyx-eng, full-bacon-userdebug etc. +# gsi-build.sh build_device_tag +# 5. repo_dispatches: https://api.github.com/repos/(you id)/(you repo name)/dispatches +# 6. b2g_source: +# remote soucre address +# for example: +env: + GIT_ACCESS_TOKEN: ${{secrets.GIT_ACCESS_TOKEN}} + device_name: onyx + repo_dispatches: "https://api.github.com/repos/b2g-gsi/build-actions/dispatches" + b2g_source: "https://github.com/b2gos/B2G" + b2g_branch: "gsi" + build_device_tag: onyx + device_arch: armv7-linux-androideabi + actions_branch: b2g_gsi + +jobs: + config: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v1 + + - name: Action + run: | + ./onyx/init/webhook.sh onyx_gecko_build + #onyx_b2g_repack onyx_aosp_build onyx_gecko_build onyx_b2g_build onyx_api_daemon_build diff --git a/b2g/build/add_pre_api_daemon.sh b/b2g/build/add_pre_api_daemon.sh deleted file mode 100755 index 09588de..0000000 --- a/b2g/build/add_pre_api_daemon.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/bash -set -e - cd ${work} - mkdir pre-api - cd pre-api - rclone copy itd:ci/${remotepath}/prebuilts.zip ./ - unzip ./prebuilts.zip - APIDeamon_PreBuild="${work}/pre-api/home/runner/api-daemon/prebuilts" - ls ${APIDeamon_PreBuild} - - #### - TARGET_OUT=${out_work}/target/product/${device_name}/system - path_api=${TARGET_OUT}/api-daemon - if [ -d "${path_api}" ]; then - sudo rm -r "${path_api}" - fi - - path_b2g=${TARGET_OUT}/b2g - if [ -d "${path_b2g}" ]; then - sudo rm -r "${path_b2g}" - fi - - mkdir -p ${path_api} - mkdir -p ${path_b2g}/defaults - - cp -r ${APIDeamon_PreBuild}/http_root ${TARGET_OUT}/api-daemon - cp ${APIDeamon_PreBuild}/${device_arch}/api-daemon ${TARGET_OUT}/bin/ - chmod +x ${TARGET_OUT}/bin/api-daemon diff --git a/b2g/build/build_api-daemon.sh b/b2g/build/build_api-daemon.sh deleted file mode 100755 index 13eca92..0000000 --- a/b2g/build/build_api-daemon.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash -set -e - - cd ~ - #### - rustup target add aarch64-linux-android armv7-linux-androideabi - cd ~ - curl https://packages.preprod.kaiostech.com/ndk/v3/mozbuild.tar.bz2 | tar -C ${HOME}/ -xj - rclone copy itd:ci/${remotepath}/api-sysroot.tar.zst ./ - mkdir ~/.mozbuild/api-sysroot - tar -C "$HOME/.mozbuild/api-sysroot" -I zstd -x -a -f api-sysroot.tar.zst - #sudo rm api-sysroot.tar.zst - #sudo rm mozbuild.tar.bz2 - ls ~/.mozbuild/api-sysroot - - cd ~ - git clone https://github.com/kaiostech/api-daemon --depth=1 - ls -al - - #### - export TARGET_ARCH=${device_arch} - export BUILD_WITH_NDK_DIR=~/.mozbuild/android-ndk-r20b-canary - export GONK_DIR=~/.mozbuild/api-sysroot - export GONK_PRODUCT=${device_name} - cd ~/api-daemon - ./update-prebuilts.sh diff --git a/b2g/build/build_gecko.sh b/b2g/build/build_gecko.sh deleted file mode 100755 index bc16bc2..0000000 --- a/b2g/build/build_gecko.sh +++ /dev/null @@ -1,48 +0,0 @@ -#!/bin/bash -set -e - - df -h - cd ~/gecko-b2g - export SHELL=/bin/bash - sudo apt update - export LOCAL_NDK_BASE_URL='ftp://ftp.kaiostech.com/ndk/android-ndk' - ./mach bootstrap --no-interactive --application-choice 'GeckoView/Firefox for Android' - df -h - - df -h - #### - cd ~ - git clone https://github.com/OnePlus-onyx/build-CI -b b2g - chmod +x ~/build-CI/build-gsi-b2g.sh - cp ~/build-CI/build-gsi-b2g.sh ~/gecko-b2g - - rclone copy itd:ci/${remotepath}/b2g-sysroot.tar.zst ./ - tar -C "$HOME/.mozbuild" -I zstd -x -a -f b2g-sysroot.tar.zst - - mkdir ~/objdir-gsi-gecko - tar -C "$HOME/objdir-gsi-gecko" -I zstd -x -a -f b2g-sysroot.tar.zst - ls ~/objdir-gsi-gecko - - sudo rm b2g-sysroot.tar.zst - - cd ~/gecko-b2g - export SHELL=/bin/bash - export GONK_PATH=${HOME}/.mozbuild/b2g-sysroot - - if [ "$device_arch" == "aarch64-linux-android" ]; then - export TARGET_ARCH=arm64 - export TARGET_ARCH_VARIANT=armv8-a - else - export TARGET_ARCH=arm - export TARGET_ARCH_VARIANT=armv7-a-neon - fi - - export GONK_PRODUCT_NAME=${device_name} - export GECKO_OBJDIR=${HOME}/objdir-gsi-gecko - export PLATFORM_VERSION=29 - export TARGET_CPU_VARIANT=generic - export MOZ_DISABLE_LTO=1 - ./build-gsi-b2g.sh - ./build-gsi-b2g.sh package - df -h - ls ${GECKO_OBJDIR}/dist diff --git a/b2g/build/build_with_gecko.sh b/b2g/build/build_with_gecko.sh deleted file mode 100755 index b8a2b6f..0000000 --- a/b2g/build/build_with_gecko.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash -set -e - - df -h - #### - cd ${work} - mkdir pre-gecko - cd pre-gecko - rclone copy itd:ci/${remotepath}/${gecko_version} ./ - - #### build - export CCACHE_DIR=~/.ccache - /usr/local/bin/ccache -M 20G - /usr/local/bin/ccache -s - export USE_CCACHE=1 - cd ${work}/B2G - export DISABLE_SOURCES_XML=true - export USE_PREBUILT_B2G=1 - #export OUT_DIR_COMMON_BASE=${out_work} - export PREFERRED_B2G="${work}/pre-gecko/${gecko_version}" - - export SKIP_ABI_CHECKS=true - - gtimeout 245m ./build.sh -j16 systemimage diff --git a/b2g/build/build_without_gecko.sh b/b2g/build/build_without_gecko.sh deleted file mode 100755 index 7f8a382..0000000 --- a/b2g/build/build_without_gecko.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash -set -e - - df -h - #### - export CCACHE_DIR=~/.ccache - /usr/local/bin/ccache -M 20G - /usr/local/bin/ccache -s - export USE_CCACHE=1 - cd ${work}/B2G - export DISABLE_SOURCES_XML=true - #export OUT_DIR_COMMON_BASE=${out_work} - export PREFERRED_B2G=${work}/b2g-dummy.tar.bz2 - export USE_PREBUILT_B2G=1 - export SKIP_ABI_CHECKS=true - gtimeout 245m ./build.sh -j16 systemimage - #export SKIP_ABI_CHECKS=true - #gtimeout 245m ./build-gsi.sh ${build_device_tag} systemimage - df -h diff --git a/b2g/build/repack_api-sysroot.sh b/b2g/build/repack_api-sysroot.sh deleted file mode 100755 index 0b13618..0000000 --- a/b2g/build/repack_api-sysroot.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/bash -set -e - df -h - cd ${work}/B2G - - if [ "$device_arch" == "aarch64-linux-android" ]; then - export TARGET_ARCH=arm64 - export TARGET_ARCH_VARIANT=armv8-a - else - export TARGET_ARCH=arm - export TARGET_ARCH_VARIANT=armv7-a-neon - fi - - - . "${work}/B2G/.config" - export GONK_PRODUCT_NAME=${TARGET_NAME} - echo GONK_PRODUCT_NAME -- ${GONK_PRODUCT_NAME} - - if [ "$device_name" == "onyx" ]; then - export TARGET_CPU_VARIANT=krait - else - export TARGET_CPU_VARIANT=generic - fi - - ./api_sysroot.sh - sudo rm -rf ./api-sysroot - ls -al - mv api-sysroot.tar.zst ${work} - df -h diff --git a/b2g/build/repack_b2g-sysroot.sh b/b2g/build/repack_b2g-sysroot.sh deleted file mode 100755 index e78fbf8..0000000 --- a/b2g/build/repack_b2g-sysroot.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/bash -set -e - df -h - cd ${work}/B2G - if [ "$device_arch" == "aarch64-linux-android" ]; then - export TARGET_ARCH=arm64 - export TARGET_ARCH_VARIANT=armv8-a - else - export TARGET_ARCH=arm - export TARGET_ARCH_VARIANT=armv7-a-neon - fi - - . "${work}/B2G/.config" - export GONK_PRODUCT_NAME=${TARGET_NAME} - echo GONK_PRODUCT_NAME -- ${GONK_PRODUCT_NAME} - - if [ "$device_name" == "onyx" ]; then - export TARGET_CPU_VARIANT=krait - else - export TARGET_CPU_VARIANT=generic - fi - - #gecko/taskcluster/scripts/misc/create-b2g-sysroot.sh - ./create-b2g-sysroot.sh - ls -al - sudo rm -rf ./b2g-sysroot - ls -al - mv b2g-sysroot.tar.zst ${work} - df -h diff --git a/b2g/init/all_unmount_darwin.sh b/b2g/init/all_unmount_darwin.sh deleted file mode 100755 index 77d38b0..0000000 --- a/b2g/init/all_unmount_darwin.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash -set -e - -cd ~ -df -h - while [ -d "${out_work}" ] ;do - hdiutil detach "${out_work}" -force - done - while [ -d "${work}" ] ;do - hdiutil detach "${work}" -force - done diff --git a/b2g/init/clean_space_darwin.sh b/b2g/init/clean_space_darwin.sh deleted file mode 100755 index 3e65c98..0000000 --- a/b2g/init/clean_space_darwin.sh +++ /dev/null @@ -1,9 +0,0 @@ - - ls -al -h /Applications - df -h - sudo rm -r /Applications/Xcode_10* - #sudo rm -r /Applications/Xcode_12* - sudo rm -r /Applications/Xcode_11.*.app - #Firefox* Julia* Microsoft* R* Visual* - ls -al -h /Applications - df -h diff --git a/b2g/init/docker_env_darwin.sh b/b2g/init/docker_env_darwin.sh deleted file mode 100755 index 5f4c84e..0000000 --- a/b2g/init/docker_env_darwin.sh +++ /dev/null @@ -1,28 +0,0 @@ - - df -h - #### - more /System/Library/CoreServices/SystemVersion.plist - ls /Applications/Xcode_* - #sudo xcode-select --switch /Applications/Xcode_11.app/Contents/Developer - sudo xcode-select --switch /Applications/Xcode_12.app/Contents/Developer - - ####install - brew install expect gnu-sed ccache coreutils zstd gcc perl cpanm unzip binutils - - sudo ln -s /usr/local/bin/gsed /usr/local/bin/sed - #sudo ln -s /usr/local/bin/gstat /usr/local/bin/stat - - ####git - git config --global user.name "ci" - git config --global user.email "ci@github.com" - - #####zstd - brew install zstd - - #####rclone - mkdir -p ~/.config/rclone - git clone git@github.com:ittat/tmp.git - cd tmp - mv ./rclone.conf ~/.config/rclone - brew install rclone - rclone ls itd:test diff --git a/b2g/source/compress_sourceimage.sh b/b2g/source/compress_sourceimage.sh deleted file mode 100755 index ea2ab57..0000000 --- a/b2g/source/compress_sourceimage.sh +++ /dev/null @@ -1,5 +0,0 @@ - - cd ~ - zstd --fast=7 ${sourceimage}.dmg.sparseimage - rm ${sourceimage}.dmg.sparseimage - ls -al ${sourceimage}.dmg.sparseimage* diff --git a/b2g/source/create_outimage.sh b/b2g/source/create_outimage.sh deleted file mode 100755 index 1a9a1a9..0000000 --- a/b2g/source/create_outimage.sh +++ /dev/null @@ -1,3 +0,0 @@ - cd ~ - hdiutil create -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 50g ~/${outimage}.dmg - ls -al ${outimage}.dmg.sparseimage* diff --git a/b2g/source/download_source.sh b/b2g/source/download_source.sh deleted file mode 100755 index cc398c9..0000000 --- a/b2g/source/download_source.sh +++ /dev/null @@ -1,17 +0,0 @@ - - df -h - cd ~ - rclone copy itd:ci/${remotepath}/${sourceimage}.dmg.sparseimage.zst ./ - zstd --decompress ${sourceimage}.dmg.sparseimage.zst - sudo rm -r ./${sourceimage}.dmg.sparseimage.zst - rclone copy itd:ci/${remotepath}/${outimage}.dmg.sparseimage ./ - - #####mount - hdiutil attach /Users/runner/${sourceimage}.dmg.sparseimage -mountpoint ${work} - if [ -d "${work}/B2G/out" ];then - sudo rm -r ${work}/B2G/out - fi - hdiutil attach /Users/runner/${outimage}.dmg.sparseimage -mountpoint ${out_work} - sudo ln -s ${out_path} ${work}/B2G/out - ls -al ${out_work} - df -h diff --git a/b2g/source/fix_soucre.sh b/b2g/source/fix_soucre.sh deleted file mode 100755 index 06b2cb2..0000000 --- a/b2g/source/fix_soucre.sh +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/bash -set -e - ####patcher - if [ -d "${work}/B2G/patcher" ]; then - echo apply patch - cd ${work}/B2G - ./patcher/patcher.sh - fi - - ####fix 10.15 issue - cd ${work}/B2G - /usr/bin/sed -i '' '14d' system/sepolicy/tests/Android.bp - /usr/bin/sed -i '' '65i\'$'\n\"10\.15\"\,\n' build/soong/cc/config/x86_darwin_host.go - - ### - cd ~ - git clone https://github.com/OnePlus-onyx/build-CI -b b2g - sudo chmod +x ~/build-CI/patch-b2g-aosp.sh - ~/build-CI/patch-b2g-aosp.sh - - ### - cd ${work} - # Create a dummy b2g archive - mkdir b2g - tar cvjf b2g-dummy.tar.bz2 b2g - rm -rf b2g - - ####api-daemon split - cd ${work}/B2G/gonk-misc - if [ -d "${work}/B2G/gonk-misc/api-daemon" ];then - echo api-daemon patch - sudo rm -r ${work}/B2G/gonk-misc/api-daemon - fi - git clone https://github.com/b2g-gsi/api-daemon -b without-api-daemon - - - #### - cd ${work}/B2G - sudo rm -rf .repo diff --git a/b2g/source/git_gecko.sh b/b2g/source/git_gecko.sh deleted file mode 100755 index 5e6a84c..0000000 --- a/b2g/source/git_gecko.sh +++ /dev/null @@ -1,12 +0,0 @@ - df -h - cd ~ - curl https://packages.preprod.kaiostech.com/ndk/v3/mozbuild.tar.bz2 -o mozbuild.tar.bz2 - tar -xvf mozbuild.tar.bz2 - sudo rm mozbuild.tar.bz2 - cd ~ - git clone https://github.com/kaiostech/gecko-b2g -b gonk - cd gecko-b2g - git checkout -b 8adcdfd21c3dea054c31b2552c0c00e3517ebd7c - #git clone https://github.com/ittat/gecko-b2g-1 -b ittat-patch-2 --depth=1 - #mv gecko-b2g-1 gecko-b2g - df -h diff --git a/b2g/source/repo_source.sh b/b2g/source/repo_source.sh deleted file mode 100755 index 109b459..0000000 --- a/b2g/source/repo_source.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash -set -e - df -h - cd ${work} - git clone ${b2g_source} -b ${b2g_branch} --depth=1 - cd ./B2G - echo Download ... - #TODO - GITREPO=https://github.com/b2g-gsi/manifests BRANCH=gsi_q REPO_INIT_FLAGS="--depth=1" REPO_SYNC_FLAGS=" -j128 --force-sync --current-branch --no-tags --no-clone-bundle --optimized-fetch --prune" ./config.sh aosp_arm64 - df -h diff --git a/b2g/source/upload_image.sh b/b2g/source/upload_image.sh deleted file mode 100755 index 4d8d02f..0000000 --- a/b2g/source/upload_image.sh +++ /dev/null @@ -1,7 +0,0 @@ - - df -h - rclone copy ~/${sourceimage}.dmg.sparseimage.zst itd:ci/${remotepath} - sudo rm -rf ${sourceimage}.dmg.sparseimage.zst - rclone copy ~/${outimage}.dmg.sparseimage itd:ci/${remotepath} - sudo rm -rf ${outimage}.dmg.sparseimage - df -h diff --git a/b2g/source/upload_out_image.sh b/b2g/source/upload_out_image.sh deleted file mode 100755 index 41550ba..0000000 --- a/b2g/source/upload_out_image.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash -set -e - df -h - cd ~ - rclone copy ./${outimage}.dmg.sparseimage itd:ci/${remotepath} - sudo rm -rf ./${outimage}.dmg.sparseimage - df -h diff --git a/b2g/source/upload_sysroot.sh b/b2g/source/upload_sysroot.sh deleted file mode 100755 index c9c6a84..0000000 --- a/b2g/source/upload_sysroot.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash -set -e - cd ${work} - rclone copy b2g-sysroot.tar.zst itd:ci/${remotepath} - sudo rm b2g-sysroot.tar.zst - rclone copy api-sysroot.tar.zst itd:ci/${remotepath} - sudo rm api-sysroot.tar.zst diff --git a/b2g/source/upload_systemimage.sh b/b2g/source/upload_systemimage.sh deleted file mode 100755 index 5d93c85..0000000 --- a/b2g/source/upload_systemimage.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/bash -set -e - cd ${work} - xz -c B2G/out/target/product/${device_name}/system.img > ~/${systemimage} - cd ~ - rclone copy system.img.xz itd:ci/${remotepath} diff --git a/common/build/add_pre_api_daemon.sh b/common/build/add_pre_api_daemon.sh new file mode 100755 index 0000000..73e5e17 --- /dev/null +++ b/common/build/add_pre_api_daemon.sh @@ -0,0 +1,28 @@ +#!/bin/bash +set -e +cd ${work} +mkdir pre-api +cd pre-api +rclone copy itd:ci/${remotepath}/prebuilts.zip ./ +unzip ./prebuilts.zip +APIDeamon_PreBuild="${work}/pre-api/home/runner/api-daemon/prebuilts" +ls ${APIDeamon_PreBuild} + +#### +TARGET_OUT=${out_work}/target/product/${device_name}/system +path_api=${TARGET_OUT}/api-daemon +if [ -d "${path_api}" ]; then + sudo rm -r "${path_api}" +fi + +path_b2g=${TARGET_OUT}/b2g +if [ -d "${path_b2g}" ]; then + sudo rm -r "${path_b2g}" +fi + +mkdir -p ${path_api} +mkdir -p ${path_b2g}/defaults + +cp -r ${APIDeamon_PreBuild}/http_root ${TARGET_OUT}/api-daemon +cp ${APIDeamon_PreBuild}/${device_arch}/api-daemon ${TARGET_OUT}/bin/ +chmod +x ${TARGET_OUT}/bin/api-daemon \ No newline at end of file diff --git a/common/build/bootstrap_gecko.sh b/common/build/bootstrap_gecko.sh new file mode 100755 index 0000000..cdf51c2 --- /dev/null +++ b/common/build/bootstrap_gecko.sh @@ -0,0 +1,13 @@ +#!/bin/bash +set -e + +cd ~/gecko-b2g +export SHELL=/bin/bash +sudo apt update +# export LOCAL_NDK_BASE_URL='ftp://ftp.kaiostech.com/ndk/android-ndk' +# ./mach bootstrap --application-choice 'GeckoView/Firefox for Android' +wget -q https://hg.mozilla.org/mozilla-central/raw-file/default/python/mozboot/bin/bootstrap.py -O bootstrap.py +python3 bootstrap.py --no-interactive --application-choice=mobile_android + + + diff --git a/common/build/build-gecko-srcipt.sh b/common/build/build-gecko-srcipt.sh new file mode 100755 index 0000000..4d3bfc2 --- /dev/null +++ b/common/build/build-gecko-srcipt.sh @@ -0,0 +1,151 @@ +#!/bin/bash + +set -e + +export RUSTUP_TOOLCHAIN=${RUSTUP_TOOLCHAIN:-stable} + +# Check that the GONK_PATH environment variable is set. +if [ -z ${GONK_PATH+x} ]; +then + echo "Please set GONK_PATH to the root of your Gonk directory first."; + exit 1; +else + echo "Using '$GONK_PATH'"; +fi + +# Check that the GONK_PRODUCT_NAME environment variable is set. +if [ -z ${GONK_PRODUCT_NAME+x} ]; +then + echo "Please set GONK_PRODUCT_NAME to the name of the device (look at $GONK_PATH/out/target/product)."; + exit 1; +else + echo "Product is '$GONK_PRODUCT_NAME'"; +fi + +if [ -z ${GECKO_OBJDIR+x} ]; then + echo "Using default objdir" +else + export MOZ_OBJDIR="$GECKO_OBJDIR" + echo "Building in $MOZ_OBJDIR" +fi + +if [ -z ${PLATFORM_VERSION+x} ]; then + echo "Please set PLATFORM_VERSION to the android version of the device" + exit 1; +elif [ $PLATFORM_VERSION -lt 27 ]; then + echo "This script is not supporting platform version less than 27" + exit 1; +else + echo "Building in platform version $PLATFORM_VERSION" +fi + +export ANDROID_PLATFORM=android-${PLATFORM_VERSION} + +# When user build, check if the JS shell is available. If not, download it +# to make sure we can minify JS code when packaging. +if [[ "$VARIANT" == "user" ]];then + if [ -f "./jsshell/js" ]; then + echo "JS shell found." + else + echo "Downloading JS shell..." + HOST_OS=$(uname -s) + if [ "$HOST_OS" == "Darwin" ]; then + SHELL_ARCH=mac + else + SHELL_ARCH=linux-x86_64 + fi + + mkdir -p jsshell + curl https://ftp.mozilla.org/pub/firefox/releases/67.0b8/jsshell/jsshell-${SHELL_ARCH}.zip > /tmp/jsshell-${SHELL_ARCH}.zip + cd jsshell + unzip /tmp/jsshell-${SHELL_ARCH}.zip + rm /tmp/jsshell-${SHELL_ARCH}.zip + cd .. + fi + export JS_BINARY=`pwd`/jsshell/js +fi + +export MOZCONFIG=`pwd`/mozconfig-b2g + +ANDROID_NDK=${ANDROID_NDK:-$HOME/.mozbuild/android-ndk-r21d} +export ANDROID_NDK="${ANDROID_NDK/#\~/$HOME}" + +TARGET_GCC_VERSION=${TARGET_GCC_VERSION:-4.9} + +export CLANG_PATH=${CLANG_PATH:-$HOME/.mozbuild/clang/bin} + +export PYTHON_PATH=${PYTHON_PATH:-/usr/bin} + +case $TARGET_ARCH in + arm) + ARCH_NAME="arm" + ARCH_DIR="arch-arm" + ARCH_ABI="androideabi" + ;; + arm64) + ARCH_NAME="aarch64" + ARCH_DIR="arch-arm64" + ARCH_ABI="android" + TARGET_TRIPLE=$ARCH_NAME-linux-$ARCH_ABI + BINSUFFIX=64 + ;; + x86) + ARCH_NAME="i686" + ARCH_DIR="arch-x86" + ARCH_ABI="android" + TARGET_TRIPLE=$ARCH_NAME-linux-$ARCH_ABI + ;; + x86_64) + ARCH_NAME="x86" + ARCH_DIR="arch-x86_64" + ARCH_ABI="android" + BINSUFFIX=64 + ;; + *) + echo "Unsupported $TARGET_ARCH" + exit 1 + ;; +esac + +TARGET_TRIPLE=${TARGET_TRIPLE:-$TARGET_ARCH-linux-$ARCH_ABI} +export TARGET_TRIPLE + +export CROSS_TOOLCHAIN_LINKER_PATH=${CROSS_TOOLCHAIN_LINKER_PATH=:-$GONK_PATH/prebuilts/gcc/linux-x86/$ARCH_NAME/$TARGET_TRIPLE-$TARGET_GCC_VERSION/$TARGET_TRIPLE/bin} + +export PATH=$ANDROID_NDK/toolchains/llvm/prebuilt/linux-x86_64/bin:$GONK_PATH/prebuilts/linux-x86_64/bin/:$CLANG_PATH:$PYTHON_PATH:$CROSS_TOOLCHAIN_LINKER_PATH:$PATH + +export GONK_PRODUCT=$GONK_PRODUCT_NAME + +# Create the sysroot +if [ -z ${GECKO_OBJDIR+x} ]; then + SYSROOT_DEST=$(./mach environment | grep -A1 '^object directory' | tail -n 1 | cut -b2-) +else + SYSROOT_DEST="${GECKO_OBJDIR}" +fi + +if [ -d "koost" ]; then + export BUILD_KOOST=1 +fi + +# Export OEM hook flag since it's used by create-b2g-sysroot.sh for HIDL +if [ "$PRODUCT_MANUFACTURER" == "QUALCOMM" ]; then + export DISABLE_OEMHOOK +else + # OEM hook is only supported on Qualcomm platform + export DISABLE_OEMHOOK=1 +fi + +if [ -z ${B2G_STANDALONE_BUILD+x} ]; then + rm -rf "${SYSROOT_DEST}/b2g-sysroot" + taskcluster/scripts/misc/create-b2g-sysroot.sh "${GONK_PATH}" "${SYSROOT_DEST}" +fi + +rustc --version + +export ANDROID_PLATFORM=$ANDROID_PLATFORM +export PRODUCTION_OS_NAME=$PRODUCTION_OS_NAME +# force mach to use system python installation +export MACH_USE_SYSTEM_PYTHON=${MACH_USE_SYSTEM_PYTHON-1} +export MOZ_LINKER= + +./mach build $@ \ No newline at end of file diff --git a/common/build/build_gecko.sh b/common/build/build_gecko.sh new file mode 100755 index 0000000..9aca4c0 --- /dev/null +++ b/common/build/build_gecko.sh @@ -0,0 +1,38 @@ +#!/bin/bash +set -e + +df -h +#### +cd ~ + +rclone copy itd:ci/${remotepath}/b2g-sysroot.tar.zst ./ +tar -C "$HOME/.mozbuild" -I zstd -x -a -f b2g-sysroot.tar.zst + +mkdir ${HOME}/objdir-gecko + + +tar -C "$HOME/objdir-gecko" -I zstd -x -a -f b2g-sysroot.tar.zst + +sudo rm b2g-sysroot.tar.zst + +cd ~/gecko-b2g +export SHELL=/bin/bash +export GONK_PATH=${HOME}/.mozbuild/b2g-sysroot + +if [ "$device_arch" == "aarch64-linux-android" ]; then + export TARGET_ARCH=arm64 + export TARGET_ARCH_VARIANT=armv8-a +else + export TARGET_ARCH=arm + export TARGET_ARCH_VARIANT=armv7-a-neon +fi + +export GONK_PRODUCT_NAME=${device_name} +export GECKO_OBJDIR=${HOME}/objdir-gecko +export PLATFORM_VERSION=29 +export TARGET_CPU_VARIANT=generic +export MOZ_DISABLE_LTO=1 +./build-gecko-srcipt.sh +./build-gecko-srcipt.sh package +df -h +ls ${GECKO_OBJDIR} \ No newline at end of file diff --git a/b2g/build/api_sysroot.sh b/common/build/create-api_sysroot.sh old mode 100644 new mode 100755 similarity index 100% rename from b2g/build/api_sysroot.sh rename to common/build/create-api_sysroot.sh diff --git a/b2g/build/create-b2g-sysroot.sh b/common/build/create-b2g-sysroot.sh old mode 100644 new mode 100755 similarity index 92% rename from b2g/build/create-b2g-sysroot.sh rename to common/build/create-b2g-sysroot.sh index 7b0b966..c2ed13f --- a/b2g/build/create-b2g-sysroot.sh +++ b/common/build/create-b2g-sysroot.sh @@ -78,6 +78,7 @@ out/target/product/${GONK_PRODUCT_NAME}/system/lib${BINSUFFIX}/android.hardware. out/target/product/${GONK_PRODUCT_NAME}/system/lib${BINSUFFIX}/android.hardware.radio@1.0.so out/target/product/${GONK_PRODUCT_NAME}/system/lib${BINSUFFIX}/android.hardware.radio@1.1.so out/target/product/${GONK_PRODUCT_NAME}/system/lib${BINSUFFIX}/android.hardware.sensors@1.0.so +out/target/product/${GONK_PRODUCT_NAME}/system/lib${BINSUFFIX}/android.hardware.sensors@2.0.so out/target/product/${GONK_PRODUCT_NAME}/system/lib${BINSUFFIX}/android.hardware.vibrator@1.0.so out/target/product/${GONK_PRODUCT_NAME}/system/lib${BINSUFFIX}/android.hardware.wifi@1.0.so out/target/product/${GONK_PRODUCT_NAME}/system/lib${BINSUFFIX}/android.hardware.wifi@1.1.so @@ -109,9 +110,12 @@ out/target/product/${GONK_PRODUCT_NAME}/system/lib${BINSUFFIX}/libhidlbase.so out/target/product/${GONK_PRODUCT_NAME}/system/lib${BINSUFFIX}/libhidlmemory.so out/target/product/${GONK_PRODUCT_NAME}/system/lib${BINSUFFIX}/libhidltransport.so out/target/product/${GONK_PRODUCT_NAME}/system/lib${BINSUFFIX}/libhwbinder.so +out/target/product/${GONK_PRODUCT_NAME}/system/lib${BINSUFFIX}/libmedia_helper.so out/target/product/${GONK_PRODUCT_NAME}/system/lib${BINSUFFIX}/libmedia_omx.so out/target/product/${GONK_PRODUCT_NAME}/system/lib${BINSUFFIX}/libmedia.so +out/target/product/${GONK_PRODUCT_NAME}/system/lib${BINSUFFIX}/libmediadrm.so out/target/product/${GONK_PRODUCT_NAME}/system/lib${BINSUFFIX}/libmtp.so +out/target/product/${GONK_PRODUCT_NAME}/system/lib${BINSUFFIX}/libnetdbpf.so out/target/product/${GONK_PRODUCT_NAME}/system/lib${BINSUFFIX}/libstagefright_foundation.so out/target/product/${GONK_PRODUCT_NAME}/system/lib${BINSUFFIX}/libstagefright_omx.so out/target/product/${GONK_PRODUCT_NAME}/system/lib${BINSUFFIX}/libstagefright.so @@ -152,6 +156,7 @@ hardware/interfaces/graphics/composer/2.2/utils/command-buffer/include hardware/interfaces/graphics/composer/2.3/utils/command-buffer/include hardware/libhardware/include hardware/libhardware_legacy/include +system/bpf/libbpf_android/include system/connectivity system/core/base/include system/core/libcutils/include @@ -167,7 +172,9 @@ system/libhidl/base/include system/libhidl/transport/include system/libhidl/transport/token/1.0/utils/include system/media/audio/include -system/media/camera/include" +system/media/camera/include +system/netd/libnetdbpf/include +system/netd/libnetdutils/include" copy_to_sysroot "${INCLUDE_FOLDERS}" "include" @@ -207,6 +214,7 @@ out/soong/.intermediates/hardware/interfaces/power/1.0/android.hardware.power@1. out/soong/.intermediates/hardware/interfaces/radio/1.0/android.hardware.radio@1.0_genc++_headers/gen out/soong/.intermediates/hardware/interfaces/radio/1.1/android.hardware.radio@1.1_genc++_headers/gen out/soong/.intermediates/hardware/interfaces/sensors/1.0/android.hardware.sensors@1.0_genc++_headers/gen +out/soong/.intermediates/hardware/interfaces/sensors/2.0/android.hardware.sensors@2.0_genc++_headers/gen out/soong/.intermediates/hardware/interfaces/vibrator/1.0/android.hardware.vibrator@1.0_genc++_headers/gen out/soong/.intermediates/hardware/interfaces/wifi/1.0/android.hardware.wifi@1.0_genc++_headers/gen out/soong/.intermediates/hardware/interfaces/wifi/1.1/android.hardware.wifi@1.1_genc++_headers/gen @@ -223,6 +231,19 @@ out/soong/.intermediates/system/libhidl/transport/manager/1.0/android.hidl.manag copy_to_sysroot "${GENERATED_HIDL_HEADERS}" "include" + +# if test -z "$DISABLE_OEMHOOK"; then +# # Put HIDL headers and libraries of OEM hook into sysroot +# rsync --times --no-relative --copy-links \ +# "${src}/out/target/product/${GONK_PRODUCT_NAME}/system/product/lib${BINSUFFIX}/vendor.qti.hardware.radio.qcrilhook@1.0.so" \ +# "${dest}/b2g-sysroot/libs/" +# rsync --times --no-relative --copy-links -r \ +# "${src}/out/soong/.intermediates/vendor/qcom/proprietary/commonsys-intf/telephony/interfaces/hal/qcrilhook/1.0/vendor.qti.hardware.radio.qcrilhook@1.0_genc++_headers/gen/" \ +# "${dest}/b2g-sysroot/include/" +# else +# echo "OEM hook is disabled by DISABLE_OEMHOOK" +# fi + if [ ! -z ${BUILD_KOOST+x} ]; then KOOST_FILES="out/soong/.intermediates/gonk-misc/gonk-binder/binder_b2g_connectivity_interface-cpp-source/gen/include diff --git a/common/build/repack_api-sysroot.sh b/common/build/repack_api-sysroot.sh new file mode 100755 index 0000000..c78ca21 --- /dev/null +++ b/common/build/repack_api-sysroot.sh @@ -0,0 +1,29 @@ +#!/bin/bash +set -e +df -h +cp common/build/create-api_sysroot.sh ${work}/B2G +cd ${work}/B2G + +if [ "$device_arch" == "aarch64-linux-android" ]; then + export TARGET_ARCH=arm64 + export TARGET_ARCH_VARIANT=armv8-a +else + export TARGET_ARCH=arm + export TARGET_ARCH_VARIANT=armv7-a-neon +fi + +. "${work}/B2G/.config" +export GONK_PRODUCT_NAME=${TARGET_NAME} +echo GONK_PRODUCT_NAME -- ${GONK_PRODUCT_NAME} + +if [ "$device_name" == "onyx" ]; then + export TARGET_CPU_VARIANT=krait +else + export TARGET_CPU_VARIANT=generic +fi + +./create-api_sysroot.sh +sudo rm -rf ./api-sysroot +ls -al +mv api-sysroot.tar.zst ${work} +df -h diff --git a/common/build/repack_b2g-sysroot.sh b/common/build/repack_b2g-sysroot.sh new file mode 100755 index 0000000..0438b5f --- /dev/null +++ b/common/build/repack_b2g-sysroot.sh @@ -0,0 +1,29 @@ +#!/bin/bash +set -e +df -h +cd ${work}/B2G +if [ "$device_arch" == "aarch64-linux-android" ]; then + export TARGET_ARCH=arm64 + export TARGET_ARCH_VARIANT=armv8-a +else + export TARGET_ARCH=arm + export TARGET_ARCH_VARIANT=armv7-a-neon +fi + +. "${work}/B2G/.config" +export GONK_PRODUCT_NAME=${TARGET_NAME} +echo GONK_PRODUCT_NAME -- ${GONK_PRODUCT_NAME} + +if [ "$device_name" == "onyx" ]; then + export TARGET_CPU_VARIANT=krait +else + export TARGET_CPU_VARIANT=generic +fi + +#gecko/taskcluster/scripts/misc/create-b2g-sysroot.sh +./create-b2g-sysroot.sh +ls -al +sudo rm -rf ./b2g-sysroot +ls -al +mv b2g-sysroot.tar.zst ${work} +df \ No newline at end of file diff --git a/common/init/all_unmount_darwin.sh b/common/init/all_unmount_darwin.sh index 5b561ee..12348b0 100755 --- a/common/init/all_unmount_darwin.sh +++ b/common/init/all_unmount_darwin.sh @@ -1,19 +1,18 @@ #!/bin/bash #set -e cd ~ - df -h - while [ -d "${out_work}" ] ;do - hdiutil detach "${out_work}" -force - done - while [ -d "${work}" ] ;do - hdiutil detach "${work}" -force - done - #if [ -d "${out_work}" ]; then - #hdiutil detach "${out_work}" -force; - #fi - #if [ -d "${work}" ]; then - #hdiutil detach "${work}" -force; - #fi - #rm ${sourceimage}.dmg.sparseimage* - #rm ${outimage}.dmg.sparseimage* - df -h +df -h +while [ -d "${out_work}" ] ;do + hdiutil detach "${out_work}" -force +done +while [ -d "${work}" ] ;do + hdiutil detach "${work}" -force +done +#if [ -d "${out_work}" ]; then +#hdiutil detach "${out_work}" -force; +#fi +#if [ -d "${work}" ]; then +#hdiutil detach "${work}" -force; +#fi +#rm ${sourceimage}.dmg.sparseimage* +#rm ${outimage}.dmg.sparseimage* \ No newline at end of file diff --git a/common/init/clean_space_darwin.sh b/common/init/clean_space_darwin.sh index 99261c1..26e7f80 100755 --- a/common/init/clean_space_darwin.sh +++ b/common/init/clean_space_darwin.sh @@ -1,10 +1,11 @@ #!/bin/bash set -e - ls -al -h /Applications - df -h - sudo rm -r /Applications/Xcode_10* - #sudo rm -r /Applications/Xcode_12* - sudo rm -r /Applications/Xcode_11.*.app - #Firefox* Julia* Microsoft* R* Visual* - ls -al -h /Applications - df -h +ls -al -h /Applications +df -h +sudo rm -r /Applications/Xcode_10* +sudo rm -r /Applications/Xcode_12* +#sudo rm -r /Applications/Xcode_11* +# sudo rm -r /Applications/Xcode_13* +#Firefox* Julia* Microsoft* R* Visual* +ls -al -h /Applications +df -h diff --git a/common/init/clean_space_linux.sh b/common/init/clean_space_linux.sh index a67d6f6..8a0a44a 100755 --- a/common/init/clean_space_linux.sh +++ b/common/init/clean_space_linux.sh @@ -1,16 +1,15 @@ #!/bin/bash set -e - df -h - echo ———————————————————————————————————— - sudo rm -rf "/usr/local/share/boost" - sudo rm -rf "$AGENT_TOOLSDIRECTORY" - sudo apt remove -y 'php.*' - sudo apt-get remove -y '^ghc-8.*' - sudo apt-get remove -y '^dotnet-.*' - sudo apt-get autoremove -y - sudo apt-get clean - sudo rm -rf /etc/mysql - echo "Removing large directories" - # deleting 15GB - rm -rf /usr/share/dotnet/ - df -h +df -h +echo ———————————————————————————————————— +sudo rm -rf "/usr/local/share/boost" +sudo rm -rf "$AGENT_TOOLSDIRECTORY" +sudo apt remove -y 'php.*' +#sudo apt-get remove -y '^ghc-8.*' +sudo apt-get remove -y '^dotnet-.*' +sudo apt-get autoremove -y +sudo apt-get clean +sudo rm -rf /etc/mysql +echo "Removing large directories" +# deleting 15GB +rm -rf /usr/share/dotnet/ diff --git a/common/init/env_darwin.sh b/common/init/env_darwin.sh index 58ce4aa..baaef60 100755 --- a/common/init/env_darwin.sh +++ b/common/init/env_darwin.sh @@ -1,33 +1,32 @@ #!/bin/bash set -e - df -h - #### - more /System/Library/CoreServices/SystemVersion.plist - ls /Applications/Xcode_* - #sudo xcode-select --switch /Applications/Xcode_11.app/Contents/Developer - sudo xcode-select --switch /Applications/Xcode_12.app/Contents/Developer - echo [Set] Xcode_12 - - ####install - brew install expect gnu-sed ccache coreutils zstd gcc perl cpanm unzip binutils repo xmlstarlet - - sudo ln -s /usr/local/bin/gsed /usr/local/bin/sed - #sudo ln -s /usr/local/bin/gstat /usr/local/bin/stat - - ####git - git config --global user.name "ci" - git config --global user.email "ci@github.com" - - #####zstd - brew install zstd - - #####rclone - cd ~ - mkdir -p ~/.config/rclone - #your drive key - echo "$RCLONE" > ~/.config/rclone/rclone.conf - brew install rclone - echo [TEST] rclone - rclone ls itd: - echo [Done] rclone - +df -h +#### +more /System/Library/CoreServices/SystemVersion.plist +ls /Applications/Xcode_* +sudo xcode-select --switch /Applications/Xcode_11.2.app/Contents/Developer +#sudo xcode-select --switch /Applications/Xcode_12.4.app/Contents/Developer +echo [Set] Xcode_12 + +####install +brew install expect gnu-sed ccache coreutils zstd gcc perl cpanm unzip binutils repo xmlstarlet + +sudo ln -s /usr/local/bin/gsed /usr/local/bin/sed +#sudo ln -s /usr/local/bin/gstat /usr/local/bin/stat + +####git +git config --global user.name "ci" +git config --global user.email "ci@github.com" + +#####zstd +brew install zstd + +#####rclone +cd ~ +mkdir -p ~/.config/rclone +#your drive key +echo "$RCLONE" > ~/.config/rclone/rclone.conf +brew install rclone +echo [TEST] rclone +rclone ls itd: +echo [Done] rclone diff --git a/common/init/env_linux.sh b/common/init/env_linux.sh index 334a8bd..4f314fb 100755 --- a/common/init/env_linux.sh +++ b/common/init/env_linux.sh @@ -1,32 +1,32 @@ #!/bin/bash set -e - df -h - ##### - sudo apt install git make mercurial yasm libncurses5 libfuse-dev - wget http://www.nasm.us/pub/nasm/releasebuilds/2.14.02/nasm-2.14.02.tar.bz2 - tar xfj nasm-2.14.02.tar.bz2 - rm nasm-2.14.02.tar.bz2 - cd nasm-2.14.02/ - ./autogen.sh - ./configure --prefix=/usr/local/ - make - sudo make install - nasm -v - cd ../ - rm -r nasm-2.14.02/ - - #### - cd ~ - git config --global user.name "ci" - git config --global user.email "ci@github.com" +df -h +##### +sudo apt install git make mercurial yasm libncurses5 libfuse-dev +wget http://www.nasm.us/pub/nasm/releasebuilds/2.14.02/nasm-2.14.02.tar.bz2 +tar xfj nasm-2.14.02.tar.bz2 +rm nasm-2.14.02.tar.bz2 +cd nasm-2.14.02/ +./autogen.sh +./configure --prefix=/usr/local/ +make +sudo make install +nasm -v +cd ../ +rm -r nasm-2.14.02/ - #rclone - cd ~ - mkdir -p ~/.config/rclone - #your drive key - echo "$RCLONE" > ~/.config/rclone/rclone.conf - #brew install rclone - brew install --build-from-source rclone - echo [TEST] rclone - rclone ls itd: - echo [Done] rclone +#### +cd ~ +git config --global user.name "ci" +git config --global user.email "ci@github.com" + +#rclone +cd ~ +mkdir -p ~/.config/rclone +#your drive key +echo "$RCLONE" > ~/.config/rclone/rclone.conf +#brew install rclone +brew install --build-from-source rclone +echo [TEST] rclone +rclone ls itd: +echo [Done] rclone \ No newline at end of file diff --git a/common/source/compress_sourceimage.sh b/common/source/compress_sourceimage.sh index 7d1db16..b340215 100755 --- a/common/source/compress_sourceimage.sh +++ b/common/source/compress_sourceimage.sh @@ -1,6 +1,6 @@ #!/bin/bash set -e - cd ~ - zstd --fast=7 ${sourceimage}.dmg.sparseimage - rm ${sourceimage}.dmg.sparseimage - ls -al ${sourceimage}.dmg.sparseimage* +cd ~ +zstd --fast=7 ${sourceimage}.dmg.sparseimage +rm ${sourceimage}.dmg.sparseimage +ls -al ${sourceimage}.dmg.sparseimage* \ No newline at end of file diff --git a/common/source/download_kaios_ndk.sh b/common/source/download_kaios_ndk.sh new file mode 100755 index 0000000..ade682b --- /dev/null +++ b/common/source/download_kaios_ndk.sh @@ -0,0 +1,10 @@ +#!/bin/bash +set -e + +cd ~ +# git clone https://github.com/mozilla/gecko-dev -b master --depth=1 +# cd ~/gecko-dev +# ./mach --no-interactive bootstrap --application-choice 'GeckoView/Firefox for Android' +# cd ~ +curl https://packages.preprod.kaiostech.com/ndk/v7/mozbuild.tar.bz2 | tar -C ${HOME}/ -xj + diff --git a/common/source/download_source_from_gdrive.sh b/common/source/download_source_from_gdrive.sh index b31a4ab..3202b5f 100755 --- a/common/source/download_source_from_gdrive.sh +++ b/common/source/download_source_from_gdrive.sh @@ -1,26 +1,24 @@ #!/bin/bash set -e - df -h - cd ~ - rclone copy itd:ci/${remotepath}/${sourceimage}.dmg.sparseimage.zst ./ - zstd --decompress ${sourceimage}.dmg.sparseimage.zst - sudo rm -r ./${sourceimage}.dmg.sparseimage.zst - rclone copy itd:ci/${remotepath}/${outimage}.dmg.sparseimage ./ - - #####mount - hdiutil attach /Users/runner/${sourceimage}.dmg.sparseimage -mountpoint ${work} - - source_path=${work} - if [ -d "${work}/B2G" ];then - source_path=${work}/B2G - fi - - if [ -d "${source_path}/out" ];then - sudo rm -r ${source_path}/out - fi - hdiutil attach /Users/runner/${outimage}.dmg.sparseimage -mountpoint ${out_work} - ##TODO - # mv ${out_work}/B2G/* ${out_work} - sudo ln -s ${out_work} ${source_path}/out - ls -al ${out_work} - df -h +df -h +cd ~ +rclone copy itd:ci/${remotepath}/${sourceimage}.dmg.sparseimage.zst ./ +zstd --decompress ${sourceimage}.dmg.sparseimage.zst +sudo rm -r ./${sourceimage}.dmg.sparseimage.zst +rclone copy itd:ci/${remotepath}/${outimage}.dmg.sparseimage ./ + +#####mount +hdiutil attach /Users/runner/${sourceimage}.dmg.sparseimage -mountpoint ${work} + +source_path=${work} +if [ -d "${work}/B2G" ];then + source_path=${work}/B2G +fi + +if [ -d "${source_path}/out" ];then + sudo rm -r ${source_path}/out +fi +hdiutil attach /Users/runner/${outimage}.dmg.sparseimage -mountpoint ${out_work} +sudo ln -s ${out_work} ${source_path}/out +ls -al ${out_work} +df diff --git a/common/source/fix_soucre.sh b/common/source/fix_soucre.sh new file mode 100755 index 0000000..3988846 --- /dev/null +++ b/common/source/fix_soucre.sh @@ -0,0 +1,36 @@ +#!/bin/bash +set -e + +###build/soong +./common/source/patch-b2g-aosp.sh + +####patcher +if [ -d "${work}/B2G/patcher" ]; then + echo apply patch + cd ${work}/B2G + ./patcher/patcher.sh +fi + +####fix 10.15 issue +cd ${work}/B2G +/usr/bin/sed -i '' '14d' system/sepolicy/tests/Android.bp +/usr/bin/sed -i '' '65i\'$'\n\"10\.15\"\,\n' build/soong/cc/config/x86_darwin_host.go + +### +cd ${work} +# Create a dummy b2g archive +mkdir b2g +tar cvjf b2g-dummy.tar.bz2 b2g +rm -rf b2g + +####api-daemon +cd ${work}/B2G/gonk-misc +if [ -d "${work}/B2G/gonk-misc/api-daemon" ];then + echo api-daemon patch + sudo rm -r ${work}/B2G/gonk-misc/api-daemon +fi +git clone https://github.com/ittat/api-daemon -b without-api-daemon + +#### +cd ${work}/B2G +sudo rm -rf .repo diff --git a/common/source/patch-b2g-aosp.sh b/common/source/patch-b2g-aosp.sh new file mode 100755 index 0000000..0982838 --- /dev/null +++ b/common/source/patch-b2g-aosp.sh @@ -0,0 +1,39 @@ +#https://github.com/kaiostech/gecko-b2g/blob/gonk/taskcluster/scripts/misc/build-b2g-emulator.sh +# + +#!/bin/bash +set -x -e -v + +cd "${work}/B2G" + +# Force compressing debug symbols +patch -d build/soong -p1 <<'EOF' +diff --git a/cc/config/global.go b/cc/config/global.go +index 815c31d8..9d82d460 100644 +--- a/cc/config/global.go ++++ b/cc/config/global.go +@@ -44,6 +44,7 @@ var ( + + "-O2", + "-g", ++ "-gz", // Compress debug symbols + + "-fno-strict-aliasing", + } +@@ -69,6 +70,7 @@ var ( + "-Werror=sequence-point", + "-Werror=date-time", + "-Werror=format-security", ++ "-gz", // Compress debug symbols + } + + deviceGlobalCppflags = []string{ +@@ -85,6 +87,7 @@ var ( + "-Wl,--no-undefined-version", + "-Wl,--exclude-libs,libgcc.a", + "-Wl,--exclude-libs,libgcc_stripped.a", ++ "-Wl,--compress-debug-sections=zlib", // Compress debug symbols + } + + deviceGlobalLldflags = append(ClangFilterUnknownLldflags(deviceGlobalLdflags), +EOF \ No newline at end of file diff --git a/common/source/upload_image.sh b/common/source/upload_image.sh index 525f304..333aebc 100755 --- a/common/source/upload_image.sh +++ b/common/source/upload_image.sh @@ -1,8 +1,8 @@ #!/bin/bash set -e - df -h - rclone copy ~/${sourceimage}.dmg.sparseimage.zst itd:ci/${remotepath} - sudo rm -rf ${sourceimage}.dmg.sparseimage.zst - rclone copy ~/${outimage}.dmg.sparseimage itd:ci/${remotepath} - sudo rm -rf ${outimage}.dmg.sparseimage - df -h +df -h +rclone copy ~/${sourceimage}.dmg.sparseimage.zst itd:ci/${remotepath} +sudo rm -rf ${sourceimage}.dmg.sparseimage.zst +rclone copy ~/${outimage}.dmg.sparseimage itd:ci/${remotepath} +sudo rm -rf ${outimage}.dmg.sparseimage +df -h \ No newline at end of file diff --git a/common/source/upload_out_image.sh b/common/source/upload_out_image.sh index 41550ba..dbf7f0a 100755 --- a/common/source/upload_out_image.sh +++ b/common/source/upload_out_image.sh @@ -1,7 +1,7 @@ #!/bin/bash set -e - df -h - cd ~ - rclone copy ./${outimage}.dmg.sparseimage itd:ci/${remotepath} - sudo rm -rf ./${outimage}.dmg.sparseimage - df -h +df -h +cd ~ +rclone copy ./${outimage}.dmg.sparseimage itd:ci/${remotepath} +sudo rm -rf ./${outimage}.dmg.sparseimage +df -h \ No newline at end of file diff --git a/common/source/upload_sysroot.sh b/common/source/upload_sysroot.sh new file mode 100755 index 0000000..90e9d2a --- /dev/null +++ b/common/source/upload_sysroot.sh @@ -0,0 +1,7 @@ +#!/bin/bash +set -e +cd ${work} +rclone copy b2g-sysroot.tar.zst itd:ci/${remotepath} +sudo rm b2g-sysroot.tar.zst +rclone copy api-sysroot.tar.zst itd:ci/${remotepath} +sudo rm api-sysroot.tar.zst \ No newline at end of file diff --git a/common/source/upload_systemimage.sh b/common/source/upload_systemimage.sh new file mode 100755 index 0000000..4d85722 --- /dev/null +++ b/common/source/upload_systemimage.sh @@ -0,0 +1,6 @@ +#!/bin/bash +set -e +cd ${work} +xz -c B2G/out/target/product/${device_name}/system.img > ~/${systemimage} +cd ~ +rclone copy system.img.xz itd:ci/${remotepath} \ No newline at end of file diff --git a/gsi/build/build_with_gecko.sh b/gsi/build/build_with_gecko.sh new file mode 100755 index 0000000..e77f59b --- /dev/null +++ b/gsi/build/build_with_gecko.sh @@ -0,0 +1,21 @@ +#!/bin/bash +set -e +df -h +#### +cd ${work} +mkdir pre-gecko +cd pre-gecko +rclone copy itd:ci/${remotepath}/${gecko_version} ./ + +#### build +cd ${work}/B2G +export CCACHE_DIR=~/.ccache +/usr/local/bin/ccache -M 20G +/usr/local/bin/ccache -s +export USE_CCACHE=1 +export DISABLE_SOURCES_XML=true +export USE_PREBUILT_B2G=1 +export PREFERRED_B2G="${work}/pre-gecko/${gecko_version}" +export SKIP_ABI_CHECKS=true +#gsi +gtimeout 245m ./build-gsi.sh ${build_device_tag} systemimage \ No newline at end of file diff --git a/gsi/build/build_without_gecko.sh b/gsi/build/build_without_gecko.sh new file mode 100755 index 0000000..cd9e933 --- /dev/null +++ b/gsi/build/build_without_gecko.sh @@ -0,0 +1,17 @@ +#!/bin/bash +set -e +df -h +#### +export CCACHE_DIR=~/.ccache +/usr/local/bin/ccache -M 20G +/usr/local/bin/ccache -s +export USE_CCACHE=1 +cd ${work}/B2G +export DISABLE_SOURCES_XML=true +export PREFERRED_B2G=${work}/b2g-dummy.tar.bz2 +export USE_PREBUILT_B2G=1 +export SKIP_ABI_CHECKS=true +export ANDROID_NDK="${HOME}/.mozbuild/android-ndk-r21d" +#gsi +gtimeout 245m ./build-gsi.sh ${build_device_tag} systemimage +df -h diff --git a/gsi/full/build.sh b/gsi/full/build.sh new file mode 100644 index 0000000..58883af --- /dev/null +++ b/gsi/full/build.sh @@ -0,0 +1,17 @@ +#!/bin/bash +set -e +df -h +#### +export CCACHE_DIR=~/.ccache +/usr/local/bin/ccache -M 20G +/usr/local/bin/ccache -s +export USE_CCACHE=1 +cd ${work}/B2G +export DISABLE_SOURCES_XML=true +# export PREFERRED_B2G=${work}/b2g-dummy.tar.bz2 +# export USE_PREBUILT_B2G=1 +export SKIP_ABI_CHECKS=true +export ANDROID_NDK="${HOME}/.mozbuild/android-ndk-r21d" +#gsi +gtimeout 245m ./build-gsi.sh ${build_device_tag} systemimage +df -h diff --git a/gsi/full/download_kaios_ndk.sh b/gsi/full/download_kaios_ndk.sh new file mode 100644 index 0000000..4318b25 --- /dev/null +++ b/gsi/full/download_kaios_ndk.sh @@ -0,0 +1,20 @@ +#!/bin/bash +set -e + +cd ~ +# git clone https://github.com/mozilla/gecko-dev -b master --depth=1 +# cd ~/gecko-dev +# ./mach --no-interactive bootstrap --application-choice 'GeckoView/Firefox for Android' +# cd ~ + + +cd ~/.mozbuild +wget https://github.com/b2g-gsi/build-actions/releases/download/ndk-macos/android-ndk-0-darwin-x86_64.tar.bz2 +tar -zxvf ./android-ndk-0-darwin-x86_64.tar.bz2 + +mkdir ~/old +curl https://packages.preprod.kaiostech.com/ndk/v7/mozbuild.tar.bz2 | tar -C ${HOME}/old -xj + +#https://github.com/b2g-gsi/build-actions/releases/download/ndk-macos/android-ndk-0-darwin-x86_64.tar.bz2 +cp -r ~/old/.mozbuild/android-ndk-r21d/toolchains/llvm/prebuilt/linux-x86_64 ~/.mozbuild/android-ndk-r21d/toolchains/llvm/prebuilt + diff --git a/gsi/init/webhook.sh b/gsi/init/webhook.sh new file mode 100755 index 0000000..30826c0 --- /dev/null +++ b/gsi/init/webhook.sh @@ -0,0 +1,3 @@ +#!/bin/bash +set -e +curl -H "Authorization: token ${GIT_ACCESS_TOKEN}" --request POST --data '{"event_type": "'$1'", "client_payload": { "device_name":"'${device_name}'", "gecko_version":"'${gecko_version}'", "device_arch":"'${device_arch}'", "repo_dispatches":"'${repo_dispatches}'", "build_device_tag":"'${build_device_tag}'", "b2g_source":"'${b2g_source}'", "b2g_branch":"'${b2g_branch}'", "actions_branch":"'${actions_branch}'" }}' ${repo_dispatches} diff --git a/gsi/source/fix_soucre.sh b/gsi/source/fix_soucre.sh new file mode 100644 index 0000000..e69de29 diff --git a/gsi/source/repo_source.sh b/gsi/source/repo_source.sh new file mode 100755 index 0000000..47732c2 --- /dev/null +++ b/gsi/source/repo_source.sh @@ -0,0 +1,10 @@ +#!/bin/bash +set -e +df -h +cd ${work} +git clone ${b2g_source} -b ${b2g_branch} --depth=1 +cd ./B2G +echo Download ... +#TODO +GITREPO=https://github.com/b2gos/manifests BRANCH=${b2g_branch} REPO_INIT_FLAGS="--depth=1" REPO_SYNC_FLAGS=" -j128 --force-sync --current-branch --no-tags --no-clone-bundle --optimized-fetch --prune" ./config.sh b2g_gsi +df -h \ No newline at end of file diff --git a/onyx/build/build_with_gecko.sh b/onyx/build/build_with_gecko.sh new file mode 100755 index 0000000..0684664 --- /dev/null +++ b/onyx/build/build_with_gecko.sh @@ -0,0 +1,18 @@ +#!/bin/bash +set -e +df -h +#### +cd ${work} +mkdir pre-gecko +cd pre-gecko +rclone copy itd:ci/${remotepath}/${gecko_version} ./ +#### build +export CCACHE_DIR=~/.ccache +/usr/local/bin/ccache -M 20G +/usr/local/bin/ccache -s +export USE_CCACHE=1 +cd ${work}/B2G +export DISABLE_SOURCES_XML=true +export USE_PREBUILT_B2G=1 +export PREFERRED_B2G="${work}/pre-gecko/${gecko_version}" +gtimeout 245m ./build.sh -j16 \ No newline at end of file diff --git a/onyx/build/build_without_gecko.sh b/onyx/build/build_without_gecko.sh new file mode 100755 index 0000000..9757d50 --- /dev/null +++ b/onyx/build/build_without_gecko.sh @@ -0,0 +1,21 @@ +#!/bin/bash +set -e +df -h +#### + + +sudo xcode-select --switch /Applications/Xcode_11.5.app/Contents/Developer + +export CCACHE_DIR=~/.ccache +/usr/local/bin/ccache -M 20G +/usr/local/bin/ccache -s +export USE_CCACHE=1 +cd ${work}/B2G +export DISABLE_SOURCES_XML=true +#export OUT_DIR_COMMON_BASE=${out_work} +export PREFERRED_B2G=${work}/b2g-dummy.tar.bz2 +export USE_PREBUILT_B2G=1 +export ANDROID_NDK="${HOME}/.mozbuild/android-ndk-r21d" +export SELINUX_IGNORE_NEVERALLOWS=true +gtimeout 245m ./build.sh -j16 +df -h diff --git a/b2g/init/webhook.sh b/onyx/init/webhook.sh similarity index 100% rename from b2g/init/webhook.sh rename to onyx/init/webhook.sh diff --git a/onyx/source/44fd8680baef9b9b4538dff707eb1f7328756222.patch b/onyx/source/44fd8680baef9b9b4538dff707eb1f7328756222.patch new file mode 100644 index 0000000..684061c --- /dev/null +++ b/onyx/source/44fd8680baef9b9b4538dff707eb1f7328756222.patch @@ -0,0 +1,30 @@ +From 44fd8680baef9b9b4538dff707eb1f7328756222 Mon Sep 17 00:00:00 2001 +From: ittat +Date: Mon, 31 May 2021 10:54:47 +0800 +Subject: [PATCH] Update HwcHAL.cpp + +--- + widget/gonk/hwchal/HwcHAL.cpp | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/widget/gonk/hwchal/HwcHAL.cpp b/widget/gonk/hwchal/HwcHAL.cpp +index 5021981c4806c..bd37ece9943bb 100644 +--- a/widget/gonk/hwchal/HwcHAL.cpp ++++ b/widget/gonk/hwchal/HwcHAL.cpp +@@ -108,7 +108,8 @@ UniquePtr HwcHALBase::CreateHwcHAL() { + + extern "C" MOZ_EXPORT __attribute__((weak)) HWC2::Display* hwc2_getDisplayById( + HWC2::Device* p, hwc2_display_t id) { +- return p->getDisplayById(id); ++ ALOGI("####test ----------> HW2_libcarthage get a response: display %" PRIu64, id); ++ return p->getDisplayById(1); + } + + extern "C" MOZ_EXPORT __attribute__((weak)) void hwc2_registerCallback( +@@ -124,4 +125,4 @@ extern "C" MOZ_EXPORT __attribute__((weak)) HWC2::Error hwc2_setVsyncEnabled( + extern "C" MOZ_EXPORT __attribute__((weak)) void hwc2_onHotplug( + HWC2::Device* p, hwc2_display_t displayId, HWC2::Connection connection) { + return p->onHotplug(displayId, connection); +-} +\ No newline at end of file ++} diff --git a/onyx/source/cff33e0d3ee242a68f0484cc00cda6ed8c02c5f2.patch b/onyx/source/cff33e0d3ee242a68f0484cc00cda6ed8c02c5f2.patch new file mode 100644 index 0000000..204b342 --- /dev/null +++ b/onyx/source/cff33e0d3ee242a68f0484cc00cda6ed8c02c5f2.patch @@ -0,0 +1,40 @@ +From cff33e0d3ee242a68f0484cc00cda6ed8c02c5f2 Mon Sep 17 00:00:00 2001 +From: ittat +Date: Mon, 31 May 2021 10:54:17 +0800 +Subject: [PATCH] Update GonkDisplay.cpp + +--- + widget/gonk/libdisplay/GonkDisplay.cpp | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/widget/gonk/libdisplay/GonkDisplay.cpp b/widget/gonk/libdisplay/GonkDisplay.cpp +index a0bb8475d8713..1965a5cb9f6b9 100644 +--- a/widget/gonk/libdisplay/GonkDisplay.cpp ++++ b/widget/gonk/libdisplay/GonkDisplay.cpp +@@ -155,7 +155,7 @@ GonkDisplayP::GonkDisplayP() + + std::unique_lock lock(hotplugMutex); + HWC2::Display* hwcDisplay; +- while (!(hwcDisplay = mHwc->getDisplayById(HWC_DISPLAY_PRIMARY))) { ++ while (!(hwcDisplay = mHwc->getDisplayById(1))) { + /* Wait at most 5s for hotplug events */ + hotplugCv.wait_for(lock, std::chrono::seconds(5)); + } +@@ -186,7 +186,7 @@ GonkDisplayP::GonkDisplayP() + /* The emulator actually reports RGBA_8888, but EGL doesn't return + * any matching configuration. We force RGBX here to fix it. */ + /*TODO: need to discuss with vendor to check this format issue.*/ +- dispData.mSurfaceformat = HAL_PIXEL_FORMAT_RGB_565; ++ dispData.mSurfaceformat = HAL_PIXEL_FORMAT_RGBA_8888; + } + (void)hwcDisplay->createLayer(&mlayer); + +@@ -200,7 +200,7 @@ GonkDisplayP::GonkDisplayP() + (void)mPowerModule; + + ALOGI("created native window\n"); +- native_gralloc_initialize(1); ++ native_gralloc_initialize(0); + + mPower = IPower::getService(); + if (mPower == nullptr) { diff --git a/onyx/source/fix_soucre.sh b/onyx/source/fix_soucre.sh new file mode 100755 index 0000000..977df42 --- /dev/null +++ b/onyx/source/fix_soucre.sh @@ -0,0 +1,2 @@ +#!/bin/bash +set -e diff --git a/onyx/source/repo_source.sh b/onyx/source/repo_source.sh new file mode 100755 index 0000000..549a55b --- /dev/null +++ b/onyx/source/repo_source.sh @@ -0,0 +1,10 @@ +#!/bin/bash +set -e +df -h +cd ${work} +git clone ${b2g_source} -b ${b2g_branch} --depth=1 +cd ./B2G +echo Download ... +#TODO +GITREPO=https://github.com/b2gos/manifests BRANCH=gsi REPO_INIT_FLAGS="--depth=1" REPO_SYNC_FLAGS=" -j128 --force-sync --current-branch --no-tags --no-clone-bundle --optimized-fetch --prune" ./config.sh ${device_name} +df -h \ No newline at end of file