# # This is free software, lisence use MIT. # # Copyright (C) 2019 P3TERX # Copyright (C) 2019 KFERMercer # # # name: OpenWrt-CI on: schedule: - cron: 0 20 * * * push: tags: - '*' jobs: build_openwrt: name: Build OpenWrt and release runs-on: ubuntu-18.04 steps: - name: Checkout uses: actions/checkout@v2 with: ref: master - name: Space cleanup env: DEBIAN_FRONTEND: noninteractive run: | docker rmi `docker images -q` sudo rm -rf /usr/share/dotnet /etc/mysql /etc/php /etc/apt/sources.list.d sudo -E apt-get -y purge azure-cli ghc* zulu* hhvm llvm* firefox google* dotnet* powershell openjdk* mysql* php* sudo -E apt-get update sudo -E apt-get -y install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch python3 unzip zlib1g-dev lib32gcc1 libc6-dev-i386 subversion flex uglifyjs gcc-multilib g++-multilib p7zip p7zip-full msmtp libssl-dev texinfo libglib2.0-dev xmlto qemu-utils upx libelf-dev autoconf automake libtool autopoint device-tree-compiler antlr3 gperf sudo -E apt-get -y autoremove --purge sudo -E apt-get clean df -h - name: Update feeds run: | sed -i 's/\"#src-git\"/\"src-git\"/g' ./feeds.conf.default ./scripts/feeds update -a ./scripts/feeds install -a - name: Generate configuration file run: make defconfig - name: Make download run: | make download -j8 find dl -size -1024c -exec rm -f {} \; - name: Compile firmware run: | make -j$(nproc) || make -j1 V=s echo "=======================" echo "Space usage:" echo "=======================" df -h echo "=======================" du -h --max-depth=1 ./ --exclude=build_dir --exclude=bin du -h --max-depth=1 ./build_dir du -h --max-depth=1 ./bin - name: Prepare artifact run: find ./bin/targets/ -type d -name "packages" | xargs rm -rf {} - name: Upload artifact uses: actions/upload-artifact@master with: name: OpenWrt_firmware path: ./bin/targets/ - name: Create release if: github.event == 'push' id: create_release uses: actions/create-release@v1.0.1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: tag_name: ${{ github.ref }} release_name: ${{ github.ref }} draft: false prerelease: false - name: Upload release asset if: github.event == 'push' id: upload-release-asset uses: actions/upload-release-asset@v1.0.2 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: ./bin/targets/*/*/