-
-
Notifications
You must be signed in to change notification settings - Fork 208
3.2.0 #76
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
3.2.0 #76
Changes from all commits
777d650
a993581
d6051c0
1c849bd
d7a758a
563a999
1d968b3
d702722
0a0b3ba
0213546
cd850bb
ed3b8ec
5ed2cf1
de79a7e
9b729f9
daa66a0
4624010
3413b47
0c4d0f8
f750ecd
16d4741
3f71a34
05a8217
c1c99d9
c34f266
31c3559
9669a3e
3406f9f
18a06fe
b4d11e0
00f8a4a
47063b9
3ad55ab
a86f3e1
2fa07ae
abfae9b
b7ea32d
fab6912
236e466
5b46b88
3aac7ea
3614c88
82a4e67
0cb1aaa
6fab55e
8118978
c5b5f48
25183f1
1aed5cd
32b4268
a8e7eb6
5cb9e98
9ece0f1
b68cea4
b2324c1
ac9d1af
bb8ca75
0297297
489b901
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,104 @@ | ||
| name: Build Linux | ||
|
|
||
| on: | ||
| push: | ||
| branches: [ master, dev ] | ||
| pull_request: | ||
| branches: [ master, dev ] | ||
| workflow_dispatch: | ||
|
|
||
| jobs: | ||
| build: | ||
| runs-on: ubuntu-latest | ||
|
|
||
| steps: | ||
| - name: Checkout code | ||
| uses: actions/checkout@v4 | ||
|
|
||
| - name: Install build dependencies | ||
| run: | | ||
| sudo apt-get update | ||
| sudo apt-get install -y \ | ||
| build-essential \ | ||
| gcc \ | ||
| make \ | ||
| libnetfilter-queue-dev \ | ||
| libnfnetlink-dev \ | ||
| libgtk-3-dev \ | ||
| pkg-config | ||
| shell: bash | ||
|
|
||
| - name: Verify dependencies | ||
| run: | | ||
| echo "=== Checking GCC ===" | ||
| gcc --version | ||
| echo "" | ||
| echo "=== Checking Make ===" | ||
| make --version | ||
| echo "" | ||
| echo "=== Checking pkg-config ===" | ||
| pkg-config --version | ||
| echo "" | ||
| echo "=== Checking GTK3 ===" | ||
| pkg-config --modversion gtk+-3.0 | ||
| echo "" | ||
| echo "=== Checking libnetfilter_queue ===" | ||
| pkg-config --modversion libnetfilter_queue || echo "Package info not available, but headers should be present" | ||
| shell: bash | ||
|
|
||
| - name: Build project | ||
| run: | | ||
| cd Linux | ||
| chmod +x build.sh | ||
| ./build.sh | ||
| shell: bash | ||
|
|
||
| - name: Verify build output | ||
| run: | | ||
| echo "=== Build Output ===" | ||
| ls -lh Linux/output/ | ||
| echo "" | ||
| if [ -f "Linux/output/libproxybridge.so" ]; then | ||
| echo "✓ Library built successfully" | ||
| file Linux/output/libproxybridge.so | ||
| else | ||
| echo "✗ Library build failed" | ||
| exit 1 | ||
| fi | ||
| echo "" | ||
| if [ -f "Linux/output/ProxyBridge" ]; then | ||
| echo "✓ CLI built successfully" | ||
| file Linux/output/ProxyBridge | ||
| else | ||
| echo "✗ CLI build failed" | ||
| exit 1 | ||
| fi | ||
| echo "" | ||
| if [ -f "Linux/output/ProxyBridgeGUI" ]; then | ||
| echo "✓ GUI built successfully" | ||
| file Linux/output/ProxyBridgeGUI | ||
| else | ||
| echo "⚠ GUI build skipped (GTK3 not available or build failed)" | ||
| fi | ||
| shell: bash | ||
|
|
||
| - name: Upload artifacts | ||
| uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: ProxyBridge-Linux-Build-${{ github.sha }} | ||
| path: Linux/output/ | ||
| retention-days: 30 | ||
|
|
||
| - name: Display build summary | ||
| run: | | ||
| echo "" | ||
| echo "=========================================" | ||
| echo "Build Complete!" | ||
| echo "=========================================" | ||
| cd Linux/output | ||
| for file in *; do | ||
| size=$(du -h "$file" | cut -f1) | ||
| echo " $file - $size" | ||
| done | ||
| echo "=========================================" | ||
| shell: bash | ||
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,129 @@ | ||||||||||||||||||||||||||||||||
| name: Release ProxyBridge Linux | ||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||
| on: | ||||||||||||||||||||||||||||||||
| release: | ||||||||||||||||||||||||||||||||
| types: [published, created] | ||||||||||||||||||||||||||||||||
| workflow_dispatch: | ||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||
| jobs: | ||||||||||||||||||||||||||||||||
| build-and-release: | ||||||||||||||||||||||||||||||||
| runs-on: ubuntu-latest | ||||||||||||||||||||||||||||||||
| if: github.event_name == 'release' || (github.event_name == 'workflow_dispatch' && github.actor == github.repository_owner) | ||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||
| steps: | ||||||||||||||||||||||||||||||||
| - name: Checkout code | ||||||||||||||||||||||||||||||||
| uses: actions/checkout@v4 | ||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||
| - name: Install build dependencies | ||||||||||||||||||||||||||||||||
| run: | | ||||||||||||||||||||||||||||||||
| sudo apt-get update | ||||||||||||||||||||||||||||||||
| sudo apt-get install -y \ | ||||||||||||||||||||||||||||||||
| build-essential \ | ||||||||||||||||||||||||||||||||
| gcc \ | ||||||||||||||||||||||||||||||||
| make \ | ||||||||||||||||||||||||||||||||
| libnetfilter-queue-dev \ | ||||||||||||||||||||||||||||||||
| libnfnetlink-dev \ | ||||||||||||||||||||||||||||||||
| libgtk-3-dev \ | ||||||||||||||||||||||||||||||||
| pkg-config | ||||||||||||||||||||||||||||||||
| shell: bash | ||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||
| - name: Build project | ||||||||||||||||||||||||||||||||
| run: | | ||||||||||||||||||||||||||||||||
| cd Linux | ||||||||||||||||||||||||||||||||
| chmod +x build.sh | ||||||||||||||||||||||||||||||||
| ./build.sh | ||||||||||||||||||||||||||||||||
| shell: bash | ||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||
| - name: Copy setup script to output | ||||||||||||||||||||||||||||||||
| run: | | ||||||||||||||||||||||||||||||||
| echo "Copying setup.sh to output directory..." | ||||||||||||||||||||||||||||||||
| cp Linux/setup.sh Linux/output/ | ||||||||||||||||||||||||||||||||
| chmod +x Linux/output/setup.sh | ||||||||||||||||||||||||||||||||
| echo "✓ Setup script copied" | ||||||||||||||||||||||||||||||||
| shell: bash | ||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||
| - name: Verify build output | ||||||||||||||||||||||||||||||||
| run: | | ||||||||||||||||||||||||||||||||
| echo "=== Build Output ===" | ||||||||||||||||||||||||||||||||
| ls -lh Linux/output/ | ||||||||||||||||||||||||||||||||
| echo "" | ||||||||||||||||||||||||||||||||
| if [ -f "Linux/output/libproxybridge.so" ]; then | ||||||||||||||||||||||||||||||||
| echo "✓ Library built successfully" | ||||||||||||||||||||||||||||||||
| file Linux/output/libproxybridge.so | ||||||||||||||||||||||||||||||||
| else | ||||||||||||||||||||||||||||||||
| echo "✗ Library build failed" | ||||||||||||||||||||||||||||||||
| exit 1 | ||||||||||||||||||||||||||||||||
| fi | ||||||||||||||||||||||||||||||||
| echo "" | ||||||||||||||||||||||||||||||||
| if [ -f "Linux/output/ProxyBridge" ]; then | ||||||||||||||||||||||||||||||||
| echo "✓ CLI built successfully" | ||||||||||||||||||||||||||||||||
| file Linux/output/ProxyBridge | ||||||||||||||||||||||||||||||||
| else | ||||||||||||||||||||||||||||||||
| echo "✗ CLI build failed" | ||||||||||||||||||||||||||||||||
| exit 1 | ||||||||||||||||||||||||||||||||
| fi | ||||||||||||||||||||||||||||||||
| echo "" | ||||||||||||||||||||||||||||||||
| if [ -f "Linux/output/setup.sh" ]; then | ||||||||||||||||||||||||||||||||
| echo "✓ Setup script copied" | ||||||||||||||||||||||||||||||||
| else | ||||||||||||||||||||||||||||||||
| echo "✗ Setup script missing" | ||||||||||||||||||||||||||||||||
| exit 1 | ||||||||||||||||||||||||||||||||
| fi | ||||||||||||||||||||||||||||||||
| shell: bash | ||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||
| - name: Extract version from tag | ||||||||||||||||||||||||||||||||
| id: version | ||||||||||||||||||||||||||||||||
| run: | | ||||||||||||||||||||||||||||||||
| if [ "${{ github.event_name }}" == "release" ]; then | ||||||||||||||||||||||||||||||||
| VERSION="${{ github.event.release.tag_name }}" | ||||||||||||||||||||||||||||||||
| else | ||||||||||||||||||||||||||||||||
| VERSION="dev-$(date +%Y%m%d-%H%M%S)" | ||||||||||||||||||||||||||||||||
| fi | ||||||||||||||||||||||||||||||||
| # Remove 'v' prefix if present | ||||||||||||||||||||||||||||||||
| VERSION="${VERSION#v}" | ||||||||||||||||||||||||||||||||
| echo "version=$VERSION" >> $GITHUB_OUTPUT | ||||||||||||||||||||||||||||||||
| echo "Version: $VERSION" | ||||||||||||||||||||||||||||||||
| shell: bash | ||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||
| - name: Create release archive | ||||||||||||||||||||||||||||||||
| run: | | ||||||||||||||||||||||||||||||||
| VERSION="${{ steps.version.outputs.version }}" | ||||||||||||||||||||||||||||||||
| ARCHIVE_NAME="ProxyBridge-Linux-v${VERSION}.tar.gz" | ||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||
| echo "Creating archive: $ARCHIVE_NAME" | ||||||||||||||||||||||||||||||||
| cd Linux/output | ||||||||||||||||||||||||||||||||
| tar -czf "../$ARCHIVE_NAME" ./* | ||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||
| echo "" | ||||||||||||||||||||||||||||||||
| echo "Archive created successfully:" | ||||||||||||||||||||||||||||||||
| ls -lh "../$ARCHIVE_NAME" | ||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||
| # Move archive to root for upload | ||||||||||||||||||||||||||||||||
| mv "../$ARCHIVE_NAME" "../../$ARCHIVE_NAME" | ||||||||||||||||||||||||||||||||
| shell: bash | ||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||
| - name: List release files | ||||||||||||||||||||||||||||||||
| run: | | ||||||||||||||||||||||||||||||||
| echo "" | ||||||||||||||||||||||||||||||||
| echo "===================================" | ||||||||||||||||||||||||||||||||
| echo "Release Files:" | ||||||||||||||||||||||||||||||||
| echo "===================================" | ||||||||||||||||||||||||||||||||
| ls -lh ProxyBridge-Linux-*.tar.gz | ||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||
| echo "" | ||||||||||||||||||||||||||||||||
| echo "Archive contents:" | ||||||||||||||||||||||||||||||||
| tar -tzf ProxyBridge-Linux-*.tar.gz | ||||||||||||||||||||||||||||||||
| shell: bash | ||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||
| - name: Upload archive to release | ||||||||||||||||||||||||||||||||
| if: github.event_name == 'release' | ||||||||||||||||||||||||||||||||
| uses: softprops/action-gh-release@v1 | ||||||||||||||||||||||||||||||||
| with: | ||||||||||||||||||||||||||||||||
| files: ProxyBridge-Linux-v*.tar.gz | ||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||
| - name: Upload build artifacts | ||||||||||||||||||||||||||||||||
| uses: actions/upload-artifact@v4 | ||||||||||||||||||||||||||||||||
| with: | ||||||||||||||||||||||||||||||||
| name: ProxyBridge-Linux-Release-${{ steps.version.outputs.version }} | ||||||||||||||||||||||||||||||||
| path: ProxyBridge-Linux-*.tar.gz | ||||||||||||||||||||||||||||||||
| retention-days: 90 | ||||||||||||||||||||||||||||||||
|
Comment on lines
+10
to
+129
Check warningCode scanning / CodeQL Workflow does not contain permissions Medium
Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {contents: read}
Copilot AutofixAI about 1 month ago In general, the fix is to add an explicit The best minimal fix without changing functionality is:
Concretely, edit permissions:
contents: writebetween the
Suggested changeset
1
.github/workflows/release-linux.yml
Copilot is powered by AI and may make mistakes. Always verify output.
Unable to commit as this autofix suggestion is now outdated
Refresh and try again.
|
||||||||||||||||||||||||||||||||
Check warning
Code scanning / CodeQL
Workflow does not contain permissions Medium
Copilot Autofix
AI about 1 month ago
To fix the problem, explicitly declare minimal
GITHUB_TOKENpermissions in the workflow. Since this job only needs to read repository contents (foractions/checkout) and upload artifacts (which does not require repository write access), we can safely restrict permissions tocontents: readat the workflow or job level.The best fix without changing functionality is to add a root‑level
permissionsblock right under thename:line in.github/workflows/build-linux.yml, applying to all jobs that don’t override it. For example:No other permissions appear necessary for the shown steps. No additional imports, methods, or definitions are required; this is a pure YAML configuration change.