Skip to content

Merge pull request #312 from rennerdo30/fix/dead-code-sweep #302

Merge pull request #312 from rennerdo30/fix/dead-code-sweep

Merge pull request #312 from rennerdo30/fix/dead-code-sweep #302

Workflow file for this run

name: Nightly Build
on:
push:
branches: [master, main]
workflow_dispatch: # Allow manual trigger
env:
GO_VERSION: '1.25.5'
jobs:
test:
name: Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- name: Set up Go
uses: actions/setup-go@v7
with:
go-version: ${{ env.GO_VERSION }}
- name: Set up Node.js
uses: actions/setup-node@v7
with:
node-version: '22'
- name: Run tests
run: make test
nightly:
name: Nightly Release
runs-on: ubuntu-latest
needs: [test]
permissions:
contents: write
steps:
- uses: actions/checkout@v7
with:
fetch-depth: 0
- name: Set up Go
uses: actions/setup-go@v7
with:
go-version: ${{ env.GO_VERSION }}
- name: Set up Node.js
uses: actions/setup-node@v7
with:
node-version: '22'
- name: Build all platforms
run: make build-all
- name: Build OpenWrt platforms
run: |
make build-openwrt VERSION=nightly
make build-openwrt-ipk VERSION=nightly
- name: Generate checksums
run: |
cd dist
sha256sum $(find . -maxdepth 2 -type f -not -name "checksums.txt") > checksums.txt
- name: Get short SHA
id: sha
run: echo "short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
- name: Delete existing nightly release
run: gh release delete nightly --yes || true
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Delete existing nightly tag
run: git push origin :refs/tags/nightly || true
- name: Create nightly release
uses: softprops/action-gh-release@v3
with:
tag_name: nightly
name: Nightly Build (${{ steps.sha.outputs.short }})
body: |
Automated nightly build from `${{ github.ref_name }}` branch.
**Commit:** ${{ github.sha }}
**Built:** ${{ github.event.head_commit.timestamp }}
> **Warning**: This is an unstable development build. Use at your own risk.
## Downloads
### Desktop / Server
| Platform | Server | Client |
|----------|--------|--------|
| Linux (amd64) | `bifrost-server-linux-amd64` | `bifrost-client-linux-amd64` |
| Linux (arm64) | `bifrost-server-linux-arm64` | `bifrost-client-linux-arm64` |
| macOS (amd64) | `bifrost-server-darwin-amd64` | `bifrost-client-darwin-amd64` |
| macOS (arm64) | `bifrost-server-darwin-arm64` | `bifrost-client-darwin-arm64` |
| Windows (amd64) | `bifrost-server-windows-amd64.exe` | `bifrost-client-windows-amd64.exe` |
### OpenWrt / Embedded (OPKG Packages)
**Recommended for LuCI / GL.iNet users.**
| Architecture | IPK Package (Server) | Common Devices |
|--------------|----------------------|----------------|
| ARM64 | `bifrost-server_nightly_arm64-openwrt.ipk` | Flint 2, Beryl AX, Slate AX, Brume 2 |
| ARM v7 | `bifrost-server_nightly_arm7.ipk` | Slate Plus, Pi 2/3 |
| MIPS (le) | `bifrost-server_nightly_mipsle.ipk` | Beryl, Mango, Puli |
| MIPS (be) | `bifrost-server_nightly_mips.ipk` | Archer C7, older routers |
### OpenWrt / Embedded (Raw Binaries)
| Platform | Server | Client |
|----------|--------|--------|
| MIPS (be) | `bifrost-server-linux-mips` | `bifrost-client-linux-mips` |
| MIPS (le) | `bifrost-server-linux-mipsle` | `bifrost-client-linux-mipsle` |
| ARM v6 | `bifrost-server-linux-arm6` | `bifrost-client-linux-arm6` |
| ARM v7 | `bifrost-server-linux-arm7` | `bifrost-client-linux-arm7` |
| ARM64 (OpenWrt) | `bifrost-server-linux-arm64-openwrt` | `bifrost-client-linux-arm64-openwrt` |
See [OpenWrt Installation Guide](https://github.com/rennerdo30/bifrost-proxy/blob/master/docs/openwrt.md) for setup instructions.
prerelease: true
files: |
dist/*
dist/ipk/*
docker-nightly:
name: Docker Nightly
runs-on: ubuntu-latest
needs: [test]
permissions:
packages: write
steps:
- uses: actions/checkout@v7
- name: Set up QEMU
uses: docker/setup-qemu-action@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v4
- name: Login to GitHub Container Registry
uses: docker/login-action@v4
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push server image
uses: docker/build-push-action@v7
with:
context: .
file: docker/Dockerfile
platforms: linux/amd64,linux/arm64
push: true
build-args: |
VERSION=nightly
COMMIT=${{ github.sha }}
tags: |
ghcr.io/${{ github.repository_owner }}/bifrost-server:nightly
ghcr.io/${{ github.repository_owner }}/bifrost-server:${{ github.sha }}
- name: Build and push client image
uses: docker/build-push-action@v7
with:
context: .
file: docker/Dockerfile.client
platforms: linux/amd64,linux/arm64
push: true
build-args: |
VERSION=nightly
COMMIT=${{ github.sha }}
tags: |
ghcr.io/${{ github.repository_owner }}/bifrost-client:nightly
ghcr.io/${{ github.repository_owner }}/bifrost-client:${{ github.sha }}