tools.yml 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. name: Build host tools
  2. on:
  3. pull_request:
  4. paths:
  5. - 'tools/**'
  6. - '.github/workflows/tools.yml'
  7. permissions:
  8. contents: read
  9. jobs:
  10. build:
  11. name: tools-${{ matrix.os }}
  12. runs-on: ${{ matrix.os }}
  13. strategy:
  14. fail-fast: False
  15. matrix:
  16. os:
  17. - ubuntu-latest
  18. - macos-latest
  19. steps:
  20. - name: Checkout
  21. uses: actions/checkout@v2
  22. with:
  23. fetch-depth: 0
  24. path: openwrt
  25. - name: Setup MacOS
  26. if: ${{ matrix.os == 'macos-latest' }}
  27. run: |
  28. echo "WORKPATH=/Volumes/OpenWrt/openwrt/" >> "$GITHUB_ENV"
  29. hdiutil create -size 20g -type SPARSE -fs "Case-sensitive HFS+" -volname OpenWrt OpenWrt.sparseimage
  30. hdiutil attach OpenWrt.sparseimage
  31. mv "$GITHUB_WORKSPACE/openwrt" /Volumes/OpenWrt/
  32. cd "$WORKPATH"
  33. brew install \
  34. autoconf \
  35. automake \
  36. coreutils \
  37. diffutils \
  38. findutils \
  39. gawk \
  40. gettext \
  41. git-extras \
  42. gmp \
  43. gnu-getopt \
  44. gnu-sed \
  45. gnu-tar \
  46. grep \
  47. libidn2 \
  48. libunistring \
  49. m4 \
  50. make \
  51. mpfr \
  52. ncurses \
  53. [email protected] \
  54. pcre \
  55. pkg-config \
  56. quilt \
  57. readline \
  58. wget \
  59. zstd
  60. echo "/bin" >> "$GITHUB_PATH"
  61. echo "/sbin/Library/Apple/usr/bin" >> "$GITHUB_PATH"
  62. echo "/usr/bin" >> "$GITHUB_PATH"
  63. echo "/usr/local/bin" >> "$GITHUB_PATH"
  64. echo "/usr/local/opt/coreutils/bin" >> "$GITHUB_PATH"
  65. echo "/usr/local/opt/findutils/libexec/gnubin" >> "$GITHUB_PATH"
  66. echo "/usr/local/opt/gettext/bin" >> "$GITHUB_PATH"
  67. echo "/usr/local/opt/gnu-getopt/bin" >> "$GITHUB_PATH"
  68. echo "/usr/local/opt/make/libexec/gnubin" >> "$GITHUB_PATH"
  69. echo "/usr/local/opt/make/libexec/gnubin" >> "$GITHUB_PATH"
  70. echo "/usr/sbin" >> "$GITHUB_PATH"
  71. pwd
  72. - name: Setup Ubuntu
  73. if: ${{ matrix.os == 'ubuntu-latest' }}
  74. env:
  75. DEBIAN_FRONTEND: noninteractive
  76. run: |
  77. sudo apt-get update
  78. sudo apt-get -y install \
  79. build-essential \
  80. ccache \
  81. clang-12 \
  82. ecj \
  83. fastjar \
  84. file \
  85. g++ \
  86. gawk \
  87. gettext \
  88. git \
  89. java-propose-classpath \
  90. libelf-dev \
  91. libncurses-dev \
  92. libssl-dev \
  93. mkisofs \
  94. python3 \
  95. python3-dev \
  96. python3-distutils \
  97. python3-setuptools \
  98. qemu-utils \
  99. rsync \
  100. subversion \
  101. swig \
  102. unzip \
  103. wget \
  104. xsltproc \
  105. zlib1g-dev
  106. echo "WORKPATH=$GITHUB_WORKSPACE/openwrt/" >> "$GITHUB_ENV"
  107. cd "$WORKPATH"
  108. pwd
  109. - name: Make prereq
  110. run: |
  111. cd "$WORKPATH"
  112. pwd
  113. make defconfig
  114. - name: Build tools
  115. run: |
  116. cd "$WORKPATH"
  117. make tools/install -j$(nproc) BUILD_LOG=1 || ret=$? .github/workflows/scripts/show_build_failures.sh
  118. - name: Move logs to GITHUB_WORKSPACE
  119. if: always()
  120. run: |
  121. cp -r "$WORKPATH/logs" "$GITHUB_WORKSPACE"
  122. cp -r "$WORKPATH/.config" "$GITHUB_WORKSPACE/config"
  123. - name: Upload logs
  124. if: always()
  125. uses: actions/upload-artifact@v2
  126. with:
  127. name: ${{ matrix.os }}-logs
  128. path: "logs"
  129. - name: Upload config
  130. if: always()
  131. uses: actions/upload-artifact@v2
  132. with:
  133. name: ${{ matrix.os }}-config
  134. path: "config"