Skip to content

Build IPK

Build IPK #7

Workflow file for this run

# 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 Ngrok Package & Core
on:
workflow_dispatch:
inputs:
ngrok_version:
description: 'Ngrok version'
required: true
default: 'v3.19.1'
type: string
luci-app-ngrok_version:
description: 'LuCI App Ngrok version'
required: true
default: '1.0.0'
type: string
jobs:
build_core:
permissions:
contents: write
name: Build Core
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
release:
- 23.05.4
arch:
- x86_64
- arm_cortex-a7_neon-vfpv4
- aarch64_cortex-a53
- aarch64_cortex-a72
- aarch64_generic
steps:
- name: Checkout Repository
uses: actions/checkout@v4
with:
ref: main
- name: Preparing Core
run: |
mkdir -p feeds artifacts
cp -rf ./ngrok-arm ./feeds/
cp -rf ./ngrok-x86 ./feeds/
- name: Building Core Packages
uses: nosignals/gh-action-sdk@main
env:
ARCH: ${{ matrix.arch }}-${{ matrix.release }}
ARTIFACTS_DIR: ${{ github.workspace }}/artifacts
FEED_DIR: ${{ github.workspace }}/feeds
PACKAGES: ngrok
NO_SHFMT_CHECK: 1
- name: Delivering Package
uses: actions/upload-artifact@v4
with:
name: ngrok-${{ matrix.release }}_${{ matrix.arch }}
path: |
${{ github.workspace }}/artifacts/bin/packages/${{ matrix.arch }}/action/ngrok*
build_luci:
permissions:
contents: write
name: Build LuCI Package
runs-on: ubuntu-22.04
steps:
- name: Checkout Repository
uses: actions/checkout@v4
with:
ref: main
- name: Preparing Package
run: |
mkdir -p feeds artifacts
cp -rf ./luci-app-ngrok ./feeds/
- name: Building LuCI Package
uses: nosignals/gh-action-sdk@main
env:
ARCH: all
ARTIFACTS_DIR: ${{ github.workspace }}/artifacts
FEED_DIR: ${{ github.workspace }}/feeds
PACKAGES: luci-app-ngrok
NO_SHFMT_CHECK: 1
- name: Delivering Package
uses: actions/upload-artifact@v4
with:
name: luci-app-ngrok
path: ${{ github.workspace }}/artifacts/bin/packages/*/action/luci-app-ngrok*
push_packages:
needs: [build_core, build_luci]
name: Push Packages to Release
permissions:
contents: write
runs-on: ubuntu-latest
steps:
- name: Download temporary artifact
uses: actions/download-artifact@v4
- name: Moving artifact to releases
shell: bash
run: |
mkdir ./release
# Copy core packages
cp -rf ./ngrok-23.05.4_x86_64/ngrok* ./release/
cp -rf ./ngrok-23.05.4_arm_cortex-a7_neon-vfpv4/ngrok* ./release/
cp -rf ./ngrok-23.05.4_aarch64_generic/ngrok* ./release/
cp -rf ./ngrok-23.05.4_aarch64_cortex-a53/ngrok* ./release/
cp -rf ./ngrok-23.05.4_aarch64_cortex-a72/ngrok* ./release/
# Copy LuCI package
cp -rf ./luci-app-ngrok/luci-app-ngrok* ./release/luci-app-ngrok_${{ inputs.luci-app-ngrok_version }}_all.ipk
- name: Upload release asset
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: ./release/*
overwrite: true
tag: ${{ inputs.luci-app-ngrok_version }}
file_glob: true
body: |
# 🌐 Ngrok for OpenWrt
## πŸ“¦ Release Information
- Core Version: ${{ inputs.ngrok_version }}
- LuCI App Version: ${{ inputs.luci-app-ngrok_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
### πŸ“‹ Requirements:
- OpenWrt 23.xx.x
- Supported architectures: x86_64, arm_cortex-a7, aarch64