tools.yml 3.5 KB

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