Build IPK #19
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
# This is open source software, licensed under the MIT License. | |
# https://opensource.org/license/mit | |
# | |
# Copyright (C) 2024 BobbyUnknown | |
# | |
# Description: | |
# This software provides a secure tunneling application for OpenWrt. | |
# The application allows users to configure and manage ngrok tunnels | |
# on their OpenWrt router, enabling secure remote access to local | |
# network services through public endpoints. It features a user-friendly | |
# web interface for easy tunnel management and configuration. | |
name: Build IPK | |
on: | |
push: | |
paths: | |
- 'Makefile' | |
workflow_dispatch: | |
jobs: | |
build: | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: main | |
- name: Dapatkan Versi dan Nama Paket | |
id: get_info | |
run: | | |
echo "version=$(grep 'PKG_VERSION:=' luci-app-ngrok/Makefile | awk -F '=' '{print $2}' | tr -d ' ')" >> $GITHUB_OUTPUT | |
echo "PKG_NAME=luci-app-ngrok" >> $GITHUB_OUTPUT | |
- name: Siapkan OpenWrt SDK | |
run: | | |
sudo apt update | |
sudo apt install build-essential clang flex bison g++ gawk gcc-multilib g++-multilib gettext git libncurses-dev libssl-dev python3-distutils rsync unzip zlib1g-dev file wget tar -y | |
wget https://downloads.openwrt.org/releases/23.05.5/targets/x86/64/openwrt-sdk-23.05.5-x86-64_gcc-12.3.0_musl.Linux-x86_64.tar.xz | |
tar xJf openwrt-sdk-23.05.5-x86-64_gcc-12.3.0_musl.Linux-x86_64.tar.xz | |
mv openwrt-sdk-23.05.5-x86-64_gcc-12.3.0_musl.Linux-x86_64 openwrt-sdk | |
- name: Perbarui dan pasang feeds | |
run: | | |
cd openwrt-sdk | |
./scripts/feeds update -a | |
./scripts/feeds install -a | |
- name: Siapkan Paket | |
run: | | |
cd openwrt-sdk | |
cp -r ${{ github.workspace }}/luci-app-ngrok package/ | |
cp -r ${{ github.workspace }}/ngrok-x86 package/ | |
- name: Build Paket | |
id: build | |
run: | | |
cd openwrt-sdk && make defconfig | |
sed -i 's/CONFIG_LUCI_SRCDIET=y/# CONFIG_LUCI_SRCDIET is not set/' .config | |
sed -i 's/CONFIG_LUCI_JSMIN=y/# CONFIG_LUCI_JSMIN is not set/' .config | |
sed -i 's/CONFIG_LUCI_CSSTIDY=y/# CONFIG_LUCI_CSSTIDY is not set/' .config | |
sed -i 's/# CONFIG_NO_STRIP is not set/CONFIG_NO_STRIP=y/' .config | |
sed -i 's/CONFIG_USE_STRIP=y/# CONFIG_USE_STRIP is not set/' .config | |
sed -i 's/CONFIG_USE_SSTRIP=y/# CONFIG_USE_SSTRIP is not set/' .config | |
make package/${{ steps.get_info.outputs.PKG_NAME }}/compile V=s -j$(nproc) || echo "BUILD_FAILED=true" >> $GITHUB_ENV | |
if [ "${{ env.BUILD_FAILED }}" != "true" ]; then | |
mv bin/packages/x86_64/base/${{ steps.get_info.outputs.PKG_NAME }}*.ipk ../${{ steps.get_info.outputs.PKG_NAME }}_${{ steps.get_info.outputs.version }}_beta_all.ipk | |
fi | |
- name: Buat Rilis | |
if: env.BUILD_FAILED != 'true' | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
release_date=$(date +'%y%m%d') | |
release_name="${{ steps.get_info.outputs.PKG_NAME }}-${release_date}" | |
release_tag="${{ steps.get_info.outputs.version }}" | |
release_body="# π Ngrok for OpenWrt | |
## π¦ Release Version: \`${{ steps.get_info.outputs.version }}\` | |
### π Description | |
This software provides a secure remote access and reverse proxy application for OpenWrt. | |
### π¦ Packages: | |
- ngrok-core: Tunnel service binary | |
- luci-app-ngrok: Web interface for configuration | |
### π Features: | |
- Secure tunnel creation | |
- Multiple tunnel support | |
- TCP/HTTP/HTTPS protocols | |
- Web interface for easy management | |
- Service control (start/stop/restart) | |
### π Requirements: | |
- OpenWrt 23+ | |
- Architecture: x86_64 | |
> π Always ensure you're using the latest version for the best experience! | |
*Thank you for using ${{ steps.get_info.outputs.PKG_NAME }}!* π" | |
gh release create "$release_tag" \ | |
--title "$release_name" \ | |
--notes "$release_body" \ | |
--generate-notes=false | |
- name: Unggah IPK | |
if: env.BUILD_FAILED != 'true' | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
gh release upload ${{ steps.get_info.outputs.version }} \ | |
./${{ steps.get_info.outputs.PKG_NAME }}-${{ steps.get_info.outputs.version }}_beta_all.ipk |