From 792f56db79fe28800350dec6b7ef9482ca3babdc Mon Sep 17 00:00:00 2001 From: "Lucas.Xu" Date: Fri, 2 Feb 2024 16:42:23 +0700 Subject: [PATCH] chore: remove unused build and add build bot (#4586) --- .github/workflows/build_android_apk.yaml | 99 ------------------------ .github/workflows/build_bot.yaml | 29 +++++++ .github/workflows/build_command.yml | 42 ++++++++++ 3 files changed, 71 insertions(+), 99 deletions(-) delete mode 100644 .github/workflows/build_android_apk.yaml create mode 100644 .github/workflows/build_bot.yaml create mode 100644 .github/workflows/build_command.yml diff --git a/.github/workflows/build_android_apk.yaml b/.github/workflows/build_android_apk.yaml deleted file mode 100644 index f4f4e1bf9f..0000000000 --- a/.github/workflows/build_android_apk.yaml +++ /dev/null @@ -1,99 +0,0 @@ -name: Build AppFlowy Release APK - -on: workflow_dispatch - -env: - FLUTTER_VERSION: "3.18.0-0.2.pre" - RUST_TOOLCHAIN: "1.75" - -jobs: - build: - strategy: - fail-fast: false - matrix: - os: [ubuntu-latest] - include: - - os: ubuntu-latest - target: aarch64-linux-android - runs-on: ${{ matrix.os }} - - steps: - # the following step is required to avoid running out of space - - name: Maximize build space - if: matrix.os == 'ubuntu-latest' - run: | - sudo rm -rf /usr/share/dotnet - sudo rm -rf /opt/ghc - sudo rm -rf "/usr/local/share/boost" - sudo rm -rf "$AGENT_TOOLSDIRECTORY" - - - name: Checkout source code - uses: actions/checkout@v2 - - - name: Install Rust toolchain - id: rust_toolchain - uses: actions-rs/toolchain@v1 - with: - toolchain: ${{ env.RUST_TOOLCHAIN }} - target: ${{ matrix.target }} - override: true - profile: minimal - - - name: Install flutter - id: flutter - uses: subosito/flutter-action@v2 - with: - channel: "beta" - flutter-version: ${{ env.FLUTTER_VERSION }} - cache: true - - - uses: nttld/setup-ndk@v1 - id: setup-ndk - with: - ndk-version: "r24" - add-to-path: true - - - uses: Swatinem/rust-cache@v2 - with: - prefix-key: ${{ matrix.os }} - workspaces: | - frontend/rust-lib - - - uses: davidB/rust-cargo-make@v1 - with: - version: "0.36.6" - - - name: Install prerequisites - working-directory: frontend - run: | - rustup target install aarch64-linux-android - rustup target install x86_64-linux-android - cargo install --force duckscript_cli - cargo install cargo-ndk - if [ "$RUNNER_OS" == "Linux" ]; then - sudo wget -qO /etc/apt/trusted.gpg.d/dart_linux_signing_key.asc https://dl-ssl.google.com/linux/linux_signing_key.pub - sudo wget -qO /etc/apt/sources.list.d/dart_stable.list https://storage.googleapis.com/download.dartlang.org/linux/debian/dart_stable.list - sudo apt-get update - sudo apt-get install -y dart curl build-essential libssl-dev clang cmake ninja-build pkg-config libgtk-3-dev - sudo apt-get install keybinder-3.0 libnotify-dev - sudo apt-get install gcc-multilib - elif [ "$RUNNER_OS" == "Windows" ]; then - vcpkg integrate install - elif [ "$RUNNER_OS" == "macOS" ]; then - echo 'do nothing' - fi - cargo make appflowy-flutter-deps-tools - shell: bash - - - name: Build AppFlowy - working-directory: frontend - env: - ANDROID_NDK_HOME: ${{ steps.setup-ndk.outputs.ndk-path }} - run: | - cargo make --profile production-android appflowy-android - - - name: Upload APK - uses: actions/upload-artifact@v2 - with: - name: app-arm64-v8a-release.apk - path: frontend/appflowy_flutter/build/app/outputs/flutter-apk/ diff --git a/.github/workflows/build_bot.yaml b/.github/workflows/build_bot.yaml new file mode 100644 index 0000000000..7a67f0a669 --- /dev/null +++ b/.github/workflows/build_bot.yaml @@ -0,0 +1,29 @@ +name: Build Bot + +on: + issue_comment: + types: [created] + +jobs: + dispatch_slash_command: + runs-on: ubuntu-latest + steps: + - name: Checkout source code + uses: actions/checkout@v3 + + # get build name from pubspec.yaml + - name: Get build version + working-directory: frontend/appflowy_flutter + id: get_build_name + run: | + echo "fetching version from pubspec.yaml..." + echo "build_name=$(grep 'version: ' pubspec.yaml | awk '{print $2}')" >> $GITHUB_OUTPUT + + + - uses: peter-evans/slash-command-dispatch@v4 + with: + token: ${{ secrets.PAT }} + commands: build + static-args: | + ref=refs/pull/${{ github.event.issue.number }}/head + build_name=${{ steps.get_build_name.outputs.build_name }} diff --git a/.github/workflows/build_command.yml b/.github/workflows/build_command.yml new file mode 100644 index 0000000000..1648953bae --- /dev/null +++ b/.github/workflows/build_command.yml @@ -0,0 +1,42 @@ +name: build + +on: + repository_dispatch: + types: [build-command] + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: notify appflowy_builder + run: | + platform=${{ github.event.client_payload.slash_command.args.unnamed.arg1 }} + build_name=${{ github.event.client_payload.slash_command.args.named.build_name }} + branch=${{ github.event.client_payload.slash_command.args.named.ref }} + build_type="" + arch="" + + if [ "$platform" = "android" ]; then + build_type="apk" + elif [ "$platform" = "macos" ]; then + arch="universal" + fi + + params=$(jq -n \ + --arg ref "main" \ + --arg repo "LucasXu0/AppFlowy" \ + --arg branch "$branch" \ + --arg build_name "$build_name" \ + --arg build_type "$build_type" \ + --arg arch "$arch" \ + '{ref: $ref, inputs: {repo: $repo, branch: $branch, build_name: $build_name, build_type: $build_type, arch: $arch}} | del(.inputs | .. | select(. == ""))') + + echo "params: $params" + + curl -L \ + -X POST \ + -H "Accept: application/vnd.github+json" \ + -H "Authorization: Bearer ${{ secrets.TOKEN }}" \ + -H "X-GitHub-Api-Version: 2022-11-28" \ + https://api.github.com/repos/AppFlowy-IO/AppFlowy-Builder/actions/workflows/$platform.yaml/dispatches \ + -d "$params"