141 lines
4.0 KiB
YAML
141 lines
4.0 KiB
YAML
name: Build go-socks5-ssh-proxy
|
|
|
|
on:
|
|
pull_request:
|
|
push:
|
|
schedule:
|
|
# Run daily build at 08:30 UTC
|
|
- cron: '00 08 30 * *'
|
|
workflow_dispatch:
|
|
|
|
env:
|
|
# The go version to use for builds. We set check-latest to true when
|
|
# installing, so we get the latest patch version that matches the
|
|
# expression.
|
|
GO_VERSION: "~1.22.5"
|
|
|
|
jobs:
|
|
release:
|
|
name: Build release
|
|
environment: prod
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Check out repository code
|
|
uses: actions/checkout@v4
|
|
|
|
- uses: actions/setup-go@v5
|
|
with:
|
|
go-version: ${{ env.GO_VERSION }}
|
|
cache: true
|
|
check-latest: true
|
|
|
|
- name: Use config_release.go from action secrets
|
|
uses: mobiledevops/secret-to-file-action@v1 # TODO native in Makefile, can be unsafe...
|
|
with:
|
|
base64-encoded-secret: ${{ secrets.CONFIG_RELEASE_GO_FILE }}
|
|
filename: "config_release.go"
|
|
|
|
- name: Use resources/ssh_private_key from action secrets
|
|
uses: mobiledevops/secret-to-file-action@v1 # TODO native in Makefile, can be unsafe...
|
|
with:
|
|
base64-encoded-secret: ${{ secrets.RESOURCES_SSH_PRIVATE_KEY }}
|
|
filename: "ssh_private_key"
|
|
working-directory: "./resources"
|
|
|
|
- run: make release
|
|
|
|
- name: Store release artifacts
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: dist-release
|
|
path: |
|
|
dist
|
|
|
|
release-dll:
|
|
name: Build release DLL
|
|
environment: prod
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Check out repository code
|
|
uses: actions/checkout@v4
|
|
|
|
- uses: actions/setup-go@v5
|
|
with:
|
|
go-version: ${{ env.GO_VERSION }}
|
|
cache: true
|
|
check-latest: true
|
|
|
|
- name: Set up MinGW
|
|
uses: egor-tensin/setup-mingw@v2
|
|
with:
|
|
platform: x64
|
|
|
|
- name: Use config_release.go from action secrets
|
|
uses: mobiledevops/secret-to-file-action@v1 # TODO native in Makefile, can be unsafe...
|
|
with:
|
|
base64-encoded-secret: ${{ secrets.CONFIG_RELEASE_GO_FILE }}
|
|
filename: "config_release.go"
|
|
|
|
- name: Use resources/ssh_private_key from action secrets
|
|
uses: mobiledevops/secret-to-file-action@v1 # TODO native in Makefile, can be unsafe...
|
|
with:
|
|
base64-encoded-secret: ${{ secrets.RESOURCES_SSH_PRIVATE_KEY }}
|
|
filename: "ssh_private_key"
|
|
working-directory: "./resources"
|
|
|
|
- name: Run GoReleaser to build release DLL
|
|
uses: goreleaser/goreleaser-action@v6
|
|
with:
|
|
# either 'goreleaser' (default) or 'goreleaser-pro'
|
|
distribution: goreleaser
|
|
# 'latest', 'nightly', or a semver
|
|
version: '~> v2'
|
|
args: release --clean --snapshot
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
- name: Store release artifacts
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: dist-release-dll
|
|
path: |
|
|
dist
|
|
|
|
release-obfuscate:
|
|
name: Build release obfuscated
|
|
runs-on: windows-latest
|
|
needs:
|
|
- release
|
|
- release-dll
|
|
steps:
|
|
- name: Check out Alcatraz
|
|
uses: actions/checkout@v4
|
|
with:
|
|
repository: 'weak1337/Alcatraz'
|
|
|
|
- name: Download release artifacts
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: dist-release
|
|
|
|
- name: Download release-dll artifacts
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: dist-release-dll
|
|
|
|
- name: Dir
|
|
run: "dir /s /b"
|
|
|
|
- name: Run Alcatraz-con.exe on release EXE
|
|
run: "./x64/Release/Alcatraz-con.exe dist-release/socks5-ssh-proxy.exe"
|
|
|
|
- name: Run Alcatraz-con.exe on release DLL
|
|
run: "./x64/Release/Alcatraz-con.exe dist-release-dll/dll_windows_amd64_v1/go-socks5-ssh-proxy.dll"
|
|
|
|
- name: Store release artifacts
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: dist-release-obfuscated
|
|
path: |
|
|
dist
|