name: Build and release on: push: workflow_dispatch: jobs: build: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v2 - name: Detect starting type id: check-start-type run: | COMM_MSG=$(git log -1 --pretty=%B) if [ "${GITHUB_EVENT_NAME}" == "push" ]; then if [[ "${COMM_MSG}" == *"initial"* ]]; then echo "build_and_release=true" >> $GITHUB_ENV else echo "build_and_release=false" >> $GITHUB_ENV fi elif [ "${GITHUB_EVENT_NAME}" == "workflow_dispatch" ]; then echo "build_and_release=true" >> $GITHUB_ENV fi - name: Cleanup id: cleanup if: env.build_and_release == 'true' uses: rokibhasansagar/slimhub_actions@main - name: Setup GitHub CLI id: setup-gh if: env.build_and_release == 'true' run: | type -p curl >/dev/null || (sudo apt update && sudo apt install curl -y) curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg \ && sudo chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg \ && echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null \ && sudo apt update \ && sudo apt install gh -y - name: Update and setup packages id: setup-packages if: env.build_and_release == 'true' run: | sudo apt update \ && sudo apt upgrade -y \ && sudo apt install make xz-utils aria2 gawk -y - name: Save spefic version variables id: save-vars if: env.build_and_release == 'true' run: | . build/workflow/build.config echo "PMT_VERSION=${PMT_VERSION}" >> $GITHUB_ENV echo "PMT_VERSION_CODE=${PMT_VERSION_CODE}" >> $GITHUB_ENV echo "NDK_VERSION=${NDK_VERSION}" >> $GITHUB_ENV echo "NDK_LINK=${NDK_LINK}" >> $GITHUB_ENV echo "NDK_IS=${NDK_IS}" >> $GITHUB_ENV cd /home sudo git clone https://github.com/ShawkTeam/pmt -b ${PMT_VERSION} sudo chmod 777 pmt echo "PMT_SRCDIR=/home/pmt" >> $GITHUB_ENV echo "NDK_DIR=/home/ndk/android-ndk" >> $GITHUB_ENV echo "NDK_IN_DIR=/home/ndk" >> $GITHUB_ENV sudo mkdir -p "/home/ndk" && cd "/home/ndk" && sudo chmod 777 "/home/ndk" - name: Download and extract NDK id: setup-ndk if: env.build_and_release == 'true' run: | echo "Downloading NDK ${{ env.NDK_VERSION }}..." aria2c "${{ env.NDK_LINK }}" echo "Extracting..." unzip -q *.zip && rm *.zip mv * "${{ env.NDK_IS }}" sudo chmod -R 777 * working-directory: ${{ env.NDK_IN_DIR }} - name: Build pmt id: build-pmt if: env.build_and_release == 'true' run: | make gen-ndk-makefiles export NDK_PROJECT_PATH=${PWD} export NDK_ROOT_DIR=${{ env.NDK_DIR }} echo "NDK_ROOT_DIR=${NDK_ROOT_DIR}" >> $GITHUB_ENV bash build/bash/gen-header cd ${{ env.NDK_DIR }} ./ndk-build working-directory: ${{ env.PMT_SRCDIR }} - name: Last small transactions id: small-transactions if: env.build_and_release == 'true' run: | export CC_64="${PWD}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android21-clang" export CC_32="${PWD}/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi21-clang" export AR="${PWD}/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar" export CC_VERSION=$(${CC_64} --version | head -n 1) echo "CC_VERSION=${CC_VERSION}" >> $GITHUB_ENV . ${{ env.PMT_SRCDIR }}/build/workflow/build.config . ${{ env.PMT_SRCDIR }}/build/workflow/relnotes > /home/pmt/release_body.txt cd ${{ env.PMT_SRCDIR }} zip -rq pmt-objs-local.zip obj/local/arm64-v8a obj/local/armeabi-v7a xz libs/arm64-v8a/pmt mv libs/arm64-v8a/pmt.xz ${PWD}/pmt-arm64-v8a.xz xz libs/armeabi-v7a/pmt mv libs/armeabi-v7a/pmt.xz ${PWD}/pmt-armeabi-v7a.xz make CC="${CC_64}" AR="${AR}" make deb FOR_THIS=64 mv out/debpackage/*.deb . make clean make CC="${CC_32}" AR="${AR}" make deb FOR_THIS=32 mv out/debpackage/*.deb . make clean working-directory: ${{ env.NDK_DIR }} - name: Upload to release id: upload-to-rels if: env.build_and_release == 'true' uses: softprops/action-gh-release@v2 with: files: | /home/pmt/pmt*.xz /home/pmt/pmt*.deb /home/pmt/pmt-objs-local.zip name: Partition Manager ${{ env.PMT_VERSION }} Release tag_name: ${{ env.PMT_VERSION }} body_path: /home/pmt/release_body.txt env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}