tools.yml 3.7 KB

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