117 lines
3.3 KiB
YAML
117 lines
3.3 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:
|
|
build-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-folder
|
|
path: |
|
|
dist
|
|
|
|
build-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-dll
|
|
path: |
|
|
dist
|
|
|
|
build-release-dll-obfuscated:
|
|
name: Build release DLL obfuscated
|
|
runs-on: windows-latest
|
|
steps:
|
|
- name: Check out Alcatraz
|
|
uses: actions/checkout@v4
|
|
with:
|
|
repository: 'https://github.com/weak1337/Alcatraz'
|
|
|
|
- name: Run Alcatraz-con.exe
|
|
run: "./x64/Release/Alcatraz-con.exe"
|
|
|
|
|