Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions .actrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Act configuration for netremote
# Use full Ubuntu image (includes PowerShell, .NET, and other tools)
# Note: This image is large (~15GB) but matches GitHub runners more closely
-P ubuntu-latest=catthehacker/ubuntu:full-latest
-P ubuntu-24.04=catthehacker/ubuntu:full-24.04
-P ubuntu-22.04=catthehacker/ubuntu:full-22.04

# Reuse containers between runs for faster iteration
--reuse

# Set artifact server path
--artifact-server-path /tmp/act-artifacts
43 changes: 32 additions & 11 deletions .github/actions/build-with-host/action.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@

name: 'build-on-host'
description: 'Build the repository on the runner host system'
inputs:
Expand Down Expand Up @@ -29,37 +29,58 @@ inputs:
required: false
default: 'dev'
description: 'The name of the preset to use for all CMake operations (configure, build, test, install, package)'
github-token:
required: true
description: 'GitHub token for NuGet package authentication (use secrets.GITHUB_TOKEN)'

runs:
using: 'composite'
steps:
- name: Configure vcpkg to use Github Actions Cache
uses: actions/github-script@v7
with:
script: |
core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || '');
core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || '');
core.exportVariable('VCPKG_BINARY_SOURCES', 'clear;x-gha,readwrite');

- name: Install Linux build dependencies
if: ${{ inputs.os == 'linux' }}
run: |
export DEBIAN_FRONTEND=noninteractive
sudo -E apt-get update
sudo -E apt-get upgrade
# Install core build dependencies
sudo -E apt-get install -qq --no-install-recommends autoconf automake autopoint build-essential ca-certificates cmake curl git gnupg libltdl-dev libmount-dev libtool linux-libc-dev libstdc++-14-dev ninja-build pkg-config python3-jinja2 tar unzip zip
sudo -E apt-get install -qq --no-install-recommends autoconf autoconf-archive automake autopoint build-essential ca-certificates cmake curl git gnupg libltdl-dev libmount-dev libtool linux-libc-dev libstdc++-14-dev ninja-build pkg-config python3-jinja2 tar unzip zip
# Install LLVM 18 toolchain
sudo -E apt-get install -qq --no-install-recommends libllvm-18-ocaml-dev libllvm18 llvm-18 llvm-18-dev llvm-18-doc llvm-18-examples llvm-18-runtime clang-18 clang-tools-18 clang-18-doc libclang-common-18-dev libclang-18-dev libclang1-18 clang-format-18 python3-clang-18 clangd-18 clang-tidy-18 libclang-rt-18-dev libpolly-18-dev libfuzzer-18-dev lldb-18 libc++-18-dev libc++abi-18-dev libomp-18-dev libclc-18-dev libunwind-18-dev libmlir-18-dev mlir-18-tools libbolt-18-dev bolt-18 flang-18 libclang-rt-18-dev-wasm32 libclang-rt-18-dev-wasm64 libc++-18-dev-wasm32 libc++abi-18-dev-wasm32 libclang-rt-18-dev-wasm32 libclang-rt-18-dev-wasm64 libllvmlibc-18-dev
# Install hostapd dependencies
sudo -E apt-get install -qq --no-install-recommends libnl-3-200-dbg libnl-3-dev libssl-dev libnl-genl-3-dev libdbus-c++-dev libnl-route-3-dev
shell: bash

- name: Configure vcpkg binary caching with GitHub Packages
shell: pwsh
env:
GITHUB_TOKEN: ${{ inputs.github-token }}
run: |
dotnet nuget add source "https://nuget.pkg.github.com/${{ github.repository_owner }}/index.json" --name "GitHubPackages" --username "${{ github.repository_owner }}" --password "$env:GITHUB_TOKEN" --store-password-in-clear-text 2>$null
if ($LASTEXITCODE -ne 0) {
# Source may already exist, try updating instead
dotnet nuget update source "GitHubPackages" --source "https://nuget.pkg.github.com/${{ github.repository_owner }}/index.json" --username "${{ github.repository_owner }}" --password "$env:GITHUB_TOKEN" --store-password-in-clear-text
}

- name: Set vcpkg environment variables
uses: actions/github-script@v7
with:
script: |
core.exportVariable('VCPKG_BINARY_SOURCES', 'clear;nuget,https://nuget.pkg.github.com/${{ github.repository_owner }}/index.json,readwrite');

- name: CMake Configure
if: ${{ ! inputs.arch }}
run: cmake --preset ${{ inputs.preset-name }}-${{ inputs.os }} --fresh -DCMAKE_BUILD_TYPE=${{ inputs.build-type }}
shell: pwsh

- name: Upload vcpkg logs on failure
if: failure()
uses: actions/upload-artifact@v4
with:
name: vcpkg-logs-${{ runner.os }}-${{ inputs.build-type }}
path: |
${{ github.workspace }}-cmake/build/${{ inputs.preset-name }}-${{ inputs.os }}/vcpkg-manifest-install.log
${{ github.workspace }}/vcpkg/buildtrees/**/*.log
if-no-files-found: ignore

- name: CMake Configure Cross-Compile ${{ inputs.arch }}
if: ${{ inputs.arch }}
run: cmake --preset ${{ inputs.preset-name }}-${{ inputs.os }} --fresh -DCMAKE_BUILD_TYPE=${{ inputs.build-type }} -DNETREMOTE_EXCLUDE_TESTS=TRUE -A ${{ inputs.arch }}
Expand Down
5 changes: 4 additions & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,7 @@ jobs:
contents: read
actions: read
security-events: write
packages: write
strategy:
fail-fast: false
matrix:
Expand All @@ -105,7 +106,7 @@ jobs:
- { os: ubuntu-24.04, os-name: 'linux' }
build-type: ${{ fromJson(inputs.build-types) }}
runs-on: ${{ matrix.config.os }}

steps:
- name: Checkout repository
uses: actions/checkout@v4
Expand All @@ -127,6 +128,7 @@ jobs:
package: ${{ inputs.package }}
publish-artifacts: ${{ inputs.publish-artifacts }}
preset-name: ${{ inputs.preset-name }}
github-token: ${{ secrets.GITHUB_TOKEN }}

- name: 'Build Linux 🐧'
if: ${{ contains(matrix.config.os-name, 'linux') }}
Expand All @@ -139,6 +141,7 @@ jobs:
package: ${{ inputs.package }}
publish-artifacts: ${{ inputs.publish-artifacts }}
preset-name: ${{ inputs.preset-name }}
github-token: ${{ secrets.GITHUB_TOKEN }}

- name: Perform CodeQL Analysis
if: inputs.analyze-codeql == true
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/cicd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ jobs:
contents: read
actions: read
security-events: write
packages: write
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
Expand Down
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,7 @@ vcpkg_installed*/

# Debug logs.
*-LogNetRemote*.txt

# Act (local GitHub Actions testing)
.secrets
.github/workflows/act-test.yml
6 changes: 6 additions & 0 deletions .secrets.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Secrets for local act runs
# Copy this file to .secrets and fill in values
# NEVER commit the .secrets file!

# GitHub token (create a PAT with packages:write for NuGet caching)
GITHUB_TOKEN=your_github_pat_here

This file was deleted.

60 changes: 0 additions & 60 deletions packaging/vcpkg/ports/abseil/portfile.cmake

This file was deleted.

27 changes: 0 additions & 27 deletions packaging/vcpkg/ports/abseil/vcpkg.json

This file was deleted.

2 changes: 1 addition & 1 deletion vcpkg
Submodule vcpkg updated 9262 files
Loading
Loading