build #15
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: build | |
on: | |
workflow_dispatch: | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
outputs: | |
tag: ${{ steps.prepare.outputs.tag }} | |
strategy: | |
matrix: | |
branch: [openwrt-23.05] | |
arch: | |
- aarch64_cortex-a53 | |
- mipsel_24kc | |
- x86_64 | |
container: | |
image: openwrt/sdk:${{ matrix.arch }}-${{ matrix.branch }} | |
options: --user root | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
repository: 'a1ef/nfqws-openwrt' | |
path: nfqws | |
- name: Setup ccache | |
uses: actions/cache@v4 | |
with: | |
path: '/builder/.ccache' | |
key: ccache-${{ matrix.arch }}-${{ matrix.branch }}-${{ github.run_id }} | |
restore-keys: | | |
ccache-${{ matrix.arch }}-${{ matrix.branch }}- | |
- name: Prepare build | |
id: prepare | |
shell: bash | |
run : | | |
apt update | |
apt install -y jq | |
TAG=$(wget -qO- 'https://api.github.com/repos/bol-van/zapret/releases/latest' | jq -r '.tag_name') | |
sed -i "s|_VERSION_|${TAG/v}|" nfqws-openwrt/Makefile | |
echo "tag=${TAG}" >> $GITHUB_OUTPUT | |
- name: Build package | |
id: build | |
working-directory: /builder | |
env: | |
ARCH: ${{ matrix.arch }} | |
BRANCH: ${{ matrix.branch }} | |
CCACHE_DIR: /builder/.ccache | |
shell: bash | |
run: | | |
cp -r .gnupg /github/home | |
./setup.sh | |
echo "src-link nfqws-openwrt $GITHUB_WORKSPACE" > feeds.conf | |
scripts/feeds update nfqws-openwrt | |
scripts/feeds install -ap nfqws-openwrt | |
make defconfig | |
make package/nfqws-openwrt/compile V=s -j$(nproc) BUILD_LOG=1 | |
make package/index | |
tar cvf "${GITHUB_WORKSPACE}/ipk-${BRANCH}-${ARCH}.tar" -C bin/packages/*/nfqws --transform "s|^\./|${BRANCH/openwrt-}/${ARCH}/|" --show-transformed-names . | |
- name: Compress build logs | |
if: always() | |
env: | |
ARCH: ${{ matrix.arch }} | |
BRANCH: ${{ matrix.branch }} | |
LOGS_DIR: '/builder/logs' | |
run: | | |
[ -d "${LOGS_DIR}" ] || mkdir "${LOGS_DIR}" | |
tar cJvf "logs-${BRANCH}-${ARCH}.tar.xz" "${LOGS_DIR}" | |
- name: Upload packages | |
if: steps.build.outcome == 'success' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ipk-${{ matrix.branch }}-${{ matrix.arch }} | |
path: ./**/ipk-${{ matrix.branch }}-${{ matrix.arch }}.tar | |
if-no-files-found: error | |
- name: Upload build logs | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: logs-${{ matrix.branch }}-${{ matrix.arch }} | |
path: ./**/logs-*.tar.xz | |
gh-pages: | |
needs: build | |
permissions: | |
contents: write | |
runs-on: ubuntu-latest | |
steps: | |
- name: Download artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
pattern: ipk-* | |
- name: Prepare files | |
run: | | |
mkdir public | |
find . -name 'ipk-*.tar' -exec tar xvf -C public {} \; | |
- name: Deploy to GH pages | |
uses: peaceiris/actions-gh-pages@v4 | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
user_name: 'github-actions[bot]' | |
user_email: 'github-actions[bot]@users.noreply.github.com' | |
full_commit_message: 'Deploy ${{ needs.build.outputs.tag }}' | |
force_orphan: true | |
release: | |
needs: [build, gh-pages] | |
permissions: | |
contents: write | |
runs-on: ubuntu-latest | |
strategy: | |
max-parallel: 1 | |
matrix: | |
branch: ['23.05'] | |
steps: | |
- name: Download artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
pattern: ipk-* | |
- name: Prepare files | |
env: | |
BRANCH: ${{ matrix.branch }} | |
run: | | |
find . -name "ipk-openwrt-${BRANCH}-*.tar" -exec tar -xvf {} --wildcards '*.ipk' \; | |
- name: Upload release assets | |
uses: ncipollo/release-action@v1 | |
with: | |
allowUpdates: true | |
prerelease: false | |
tag: ${{ needs.build.outputs.tag }}-${{ matrix.branch }} | |
name: ${{ needs.build.outputs.tag }} for OpenWrt ${{ matrix.branch }} | |
artifacts: ./**/*.ipk |