Static Stealth Build & www push #32
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
name: Static Stealth Build & www push | |
on: [workflow_dispatch] | |
permissions: | |
contents: write | |
env: | |
OPENSSL_VER: 1.1.1w | |
VER: 1.4.42dev2 | |
BINDIR: ${{ github.ref == 'refs/heads/master' && 'bin' || 'beta/bin' }} | |
jobs: | |
MacOS: | |
runs-on: macos-13 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Compile | |
run: | | |
brew install automake | |
./bootstrap | |
./configure --prefix=/opt --enable-static --enable-stealth | |
make all | |
strip tools/gs-netcat | |
mv tools/gs-netcat tools/gs-netcat_mini-macOS-x86_64 | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: gsnc | |
path: tools/gs-netcat_mini-macOS-x86_64 | |
# 2024-01-09, throws errors: Job is about to start running on the hosted runner: GitHub Actions 5 (hosted) | |
# The job was not started because recent account payments have failed or your spending limit needs to be increased. Please check the 'Billing & plans' section in your settings. | |
# MacOS-arm64: | |
# runs-on: macos-latest-xlarge | |
# steps: | |
# - uses: actions/checkout@v3 | |
# - name: Compile | |
# run: | | |
# brew install automake | |
# ./bootstrap | |
# ./configure --prefix=/opt --enable-static --enable-stealth | |
# make all | |
# strip tools/gs-netcat | |
# mv tools/gs-netcat tools/gs-netcat_mini-macOS-arm64 | |
# - name: Upload artifacts | |
# uses: actions/upload-artifact@v3 | |
# with: | |
# name: gsnc | |
# path: tools/gs-netcat_mini-macOS-arm64 | |
# # https://github.com/vmactions/openbsd-vm | |
OpenBSD: | |
env: | |
OS: "openbsd" | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Starting the VM | |
uses: vmactions/openbsd-vm@v1 | |
with: | |
usesh: true | |
prepare: | | |
pkg_add curl | |
pkg_add autoconf-2.71 | |
pkg_add automake-1.16.5 | |
pkg_add openssl-3.0.8 | |
pkg_info -Q tar | |
pkg_add gcc-11.2.0p3 | |
pkg_add gmake | |
pkg_add tar | |
run: | | |
curl -SsfL https://www.openssl.org/source/openssl-${OPENSSL_VER:-1.1.1w}.tar.gz | tar -xzf - -C /tmp/ | |
( cd /tmp/openssl-${OPENSSL_VER:-1.1.1w} && \ | |
./Configure --prefix=/opt no-tests no-dso no-threads no-shared BSD-generic64 && \ | |
make install_sw ) | |
rm -rf rm -rf /tmp/openssl-${OPENSSL_VER:-1.1.1w} /opt/bin/openssl /opt/bin/c_rehash | |
export AUTOCONF_VERSION=2.71 | |
export AUTOMAKE_VERSION=1.16 | |
./bootstrap | |
./configure --enable-static --prefix=/opt --enable-stealth | |
make all | |
strip tools/gs-netcat | |
mv tools/gs-netcat tools/gs-netcat_mini-${{ env.OS }}-x86_64 | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: gsnc | |
path: tools/gs-netcat_mini-${{ env.OS }}-x86_64 | |
FreeBSD: | |
env: | |
OS: "freebsd" | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Starting the VM | |
uses: vmactions/freebsd-vm@v1 | |
with: | |
usesh: true | |
prepare: | | |
pkg install -y curl automake autoconf gcc | |
run: | | |
curl -SsfL https://www.openssl.org/source/openssl-${OPENSSL_VER:-1.1.1w}.tar.gz | tar -xzf - -C /tmp/ | |
( cd /tmp/openssl-${OPENSSL_VER:-1.1.1w} && \ | |
./Configure --prefix=/opt no-tests no-dso no-threads no-shared BSD-generic64 && \ | |
make install_sw ) | |
rm -rf rm -rf /tmp/openssl-${OPENSSL_VER:-1.1.1w} /opt/bin/openssl /opt/bin/c_rehash | |
./bootstrap | |
./configure --enable-static --prefix=/opt --enable-stealth | |
make all | |
strip tools/gs-netcat | |
mv tools/gs-netcat tools/gs-netcat_mini-${{ env.OS }}-x86_64 | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: gsnc | |
path: tools/gs-netcat_mini-${{ env.OS }}-x86_64 | |
Linux-Cross-Compile: | |
strategy: | |
matrix: | |
arch: [x86_64, aarch64, mips64, mips32, mipsel, i686, arm, armv6, armv7l, powerpc, powerpc64, powerpcle, powerpc64le] | |
include: | |
- arch: x86_64 | |
cc: x86_64-linux-musl | |
ssl: linux-generic64 | |
# some linux kernels kill UPX packed binaries..(grsec?) | |
upx: 1 | |
- arch: aarch64 | |
cc: aarch64-linux-musl | |
ssl: linux-generic64 | |
upx: 1 | |
- arch: mips64 | |
cc: mips64-linux-musl | |
ssl: linux64-mips64 | |
- arch: mips32 | |
cc: mips-linux-muslsf | |
ssl: linux-mips32 | |
- arch: mipsel | |
cc: mipsel-linux-muslsf | |
ssl: linux-mips32 | |
- arch: i686 | |
cc: i686-linux-musl | |
ssl: linux-generic32 | |
- arch: arm | |
cc: arm-linux-musleabi | |
ssl: linux-generic32 | |
- arch: armv6 | |
cc: armv6-linux-musleabi | |
ssl: linux-generic32 | |
- arch: armv7l | |
cc: armv7l-linux-musleabihf | |
ssl: linux-generic32 | |
- arch: powerpc | |
cc: powerpc-linux-muslsf # Big Endian, 32bit | |
ssl: linux-generic32 | |
- arch: powerpc64 | |
cc: powerpc64-linux-musl # Big Endian, 64bit | |
ssl: linux-generic64 | |
- arch: powerpcle | |
cc: powerpcle-linux-muslsf # Little Endian, 32bit | |
ssl: linux-generic32 | |
- arch: powerpc64le | |
cc: powerpc64le-linux-musl # Little Endian, 64bit | |
ssl: linux-generic64 | |
runs-on: ubuntu-latest | |
container: | |
image: muslcc/x86_64:${{ matrix.cc }} | |
options: --user root | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Add build dependencies | |
run: | | |
apk add --update --no-cache --no-progress bash perl make curl upx tar dpkg autoconf automake | |
- name: Cache SSL | |
id: cachessl | |
uses: actions/cache@v3 | |
with: | |
path: /opt | |
key: ${{ matrix.arch }}-ssl | |
- name: Generate OpenSSL | |
if: steps.cachessl.outputs.cache-hit != 'true' | |
run: | | |
curl -SsfL https://www.openssl.org/source/openssl-${OPENSSL_VER:-1.1.1w}.tar.gz | tar -xzf - -C /tmp/ | |
( cd /tmp/openssl-${OPENSSL_VER:-1.1.1w} && \ | |
./Configure --prefix=/opt no-tests no-dso no-threads no-shared ${{ matrix.ssl }} && \ | |
make install_sw ) | |
rm -rf rm -rf /tmp/openssl-${OPENSSL_VER:-1.1.1w} /opt/bin/openssl /opt/bin/c_rehash | |
- name: SaveCache | |
if: steps.cachessl.outputs.cache-hit != 'true' | |
uses: actions/cache/save@v3 | |
with: | |
path: /opt | |
key: ${{ matrix.arch }}-ssl | |
- name: Compile-${{ matrix.arch }} | |
run: | | |
[ ! -d /opt/dist ] && mkdir -p /opt/dist | |
./bootstrap | |
./configure --prefix=/opt --enable-realprefix=/usr --enable-static --host=${{ matrix.arch }} --enable-stealth | |
make all | |
echo "UPX='${{ matrix.upx }}'" | |
strip tools/gs-netcat | |
if [ "${{ matrix.upx }}" != '' ]; then | |
upx tools/gs-netcat | |
fi | |
mv tools/gs-netcat tools/gs-netcat_mini-linux-${{ matrix.arch }} | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: gsnc | |
path: tools/gs-netcat_mini-linux-${{ matrix.arch }} | |
deploy: | |
needs: [Linux-Cross-Compile, MacOS, OpenBSD, FreeBSD] | |
name: Deploy to gsocket.io | |
runs-on: ubuntu-latest | |
steps: | |
- name: Download artifacts | |
uses: actions/download-artifact@v3 | |
with: | |
path: /tmp | |
- name: Deploy to gsocket.io/bin | |
env: | |
SSH_DEPLOY_KEY: ${{ secrets.SSH_DEPLOY_KEY }} | |
run: | | |
mkdir ~/.ssh && echo "$SSH_DEPLOY_KEY" >~/.ssh/id_ed25519 && chmod 600 ~/.ssh/id_ed25519 | |
cd /tmp | |
git clone -b gh-pages --single-branch [email protected]:hackerschoice/gsocket.io.git | |
cd gsocket.io/${BINDIR:-/dev/null} | |
mv /tmp/gsnc/gs-netcat_* . | |
pwd | |
ls -alR | |
git config --local user.name "GitHub Action" | |
git config --local user.email "[email protected]" | |
git add gs-netcat_* && git commit -m "stealth binary" && git push | |