feat: improve build system

This commit is contained in:
Evsyukov Denis 2024-02-08 20:52:49 +03:00
parent d3a2aa8fb0
commit a2e9c9952f
No known key found for this signature in database
6 changed files with 52 additions and 46 deletions

View file

@ -6,17 +6,18 @@ on:
pull_request: pull_request:
branches: branches:
- '**' - '**'
workflow_dispatch:
jobs: jobs:
windowsAmd64Build: windowsAmd64Build:
name: Build Windows amd64 Version name: Build Windows amd64 Version
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v4
- name: Setting up Go - name: Setting up Go
uses: actions/setup-go@v2 uses: actions/setup-go@v5
with: with:
go-version: "1.20" go-version: "1.21"
- name: Building Windows amd64 Version - name: Building Windows amd64 Version
run: | run: |
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -o WireProxy_amd64.exe -v ./cmd/wireproxy CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -o WireProxy_amd64.exe -v ./cmd/wireproxy
@ -24,7 +25,7 @@ jobs:
mv WireProxy_amd64.exe wireproxy.exe mv WireProxy_amd64.exe wireproxy.exe
cp wireproxy.exe release_windows_amd64/wireproxy.exe cp wireproxy.exe release_windows_amd64/wireproxy.exe
- name: Upload Windows amd64 Version - name: Upload Windows amd64 Version
uses: actions/upload-artifact@v1 uses: actions/upload-artifact@v4
with: with:
name: WireProxy_windows_amd64 name: WireProxy_windows_amd64
path: release_windows_amd64 path: release_windows_amd64
@ -32,11 +33,11 @@ jobs:
name: Build Windows arm64 Version name: Build Windows arm64 Version
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v4
- name: Setting up Go - name: Setting up Go
uses: actions/setup-go@v2 uses: actions/setup-go@v5
with: with:
go-version: "1.20" go-version: "1.21"
- name: Building Windows arm64 Version - name: Building Windows arm64 Version
run: | run: |
CGO_ENABLED=0 GOOS=windows GOARCH=arm64 go build -o WireProxy_arm64.exe -v ./cmd/wireproxy CGO_ENABLED=0 GOOS=windows GOARCH=arm64 go build -o WireProxy_arm64.exe -v ./cmd/wireproxy
@ -44,7 +45,7 @@ jobs:
mv WireProxy_arm64.exe wireproxy.exe mv WireProxy_arm64.exe wireproxy.exe
cp wireproxy.exe release_windows_arm64/wireproxy.exe cp wireproxy.exe release_windows_arm64/wireproxy.exe
- name: Upload Windows arm64 Version - name: Upload Windows arm64 Version
uses: actions/upload-artifact@v1 uses: actions/upload-artifact@v4
with: with:
name: WireProxy_windows_arm64 name: WireProxy_windows_arm64
path: release_windows_arm64 path: release_windows_arm64
@ -52,11 +53,11 @@ jobs:
name: Build Linux amd64 Version name: Build Linux amd64 Version
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v4
- name: Setting up Go - name: Setting up Go
uses: actions/setup-go@v2 uses: actions/setup-go@v5
with: with:
go-version: "1.20" go-version: "1.21"
- name: Building Linux amd64 Version - name: Building Linux amd64 Version
run: | run: |
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o WireProxy_amd64 -v ./cmd/wireproxy CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o WireProxy_amd64 -v ./cmd/wireproxy
@ -64,7 +65,7 @@ jobs:
mv WireProxy_amd64 wireproxy mv WireProxy_amd64 wireproxy
cp wireproxy release_linux_amd64/wireproxy cp wireproxy release_linux_amd64/wireproxy
- name: Upload Linux amd64 Version - name: Upload Linux amd64 Version
uses: actions/upload-artifact@v1 uses: actions/upload-artifact@v4
with: with:
name: WireProxy_linux_amd64 name: WireProxy_linux_amd64
path: release_linux_amd64 path: release_linux_amd64
@ -72,11 +73,11 @@ jobs:
name: Build Linux arm64 Version name: Build Linux arm64 Version
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v4
- name: Setting up Go - name: Setting up Go
uses: actions/setup-go@v2 uses: actions/setup-go@v5
with: with:
go-version: "1.20" go-version: "1.21"
- name: Building Linux arm64 Version - name: Building Linux arm64 Version
run: | run: |
CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -o WireProxy_arm64 -v ./cmd/wireproxy CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -o WireProxy_arm64 -v ./cmd/wireproxy
@ -84,7 +85,7 @@ jobs:
mv WireProxy_arm64 wireproxy mv WireProxy_arm64 wireproxy
cp wireproxy release_linux_arm64/wireproxy cp wireproxy release_linux_arm64/wireproxy
- name: Upload Linux arm64 Version - name: Upload Linux arm64 Version
uses: actions/upload-artifact@v1 uses: actions/upload-artifact@v4
with: with:
name: WireProxy_linux_arm64 name: WireProxy_linux_arm64
path: release_linux_arm64 path: release_linux_arm64
@ -92,11 +93,11 @@ jobs:
name: Build Linux s390x Version name: Build Linux s390x Version
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v4
- name: Setting up Go - name: Setting up Go
uses: actions/setup-go@v2 uses: actions/setup-go@v5
with: with:
go-version: "1.20" go-version: "1.21"
- name: Building Linux s390x Version - name: Building Linux s390x Version
run: | run: |
CGO_ENABLED=0 GOOS=linux GOARCH=s390x go build -o WireProxy_s390x -v ./cmd/wireproxy CGO_ENABLED=0 GOOS=linux GOARCH=s390x go build -o WireProxy_s390x -v ./cmd/wireproxy
@ -104,7 +105,7 @@ jobs:
mv WireProxy_s390x wireproxy mv WireProxy_s390x wireproxy
cp wireproxy release_linux_s390x/wireproxy cp wireproxy release_linux_s390x/wireproxy
- name: Upload Linux s390x Version - name: Upload Linux s390x Version
uses: actions/upload-artifact@v1 uses: actions/upload-artifact@v4
with: with:
name: WireProxy_linux_s390x name: WireProxy_linux_s390x
path: release_linux_s390x path: release_linux_s390x
@ -112,11 +113,11 @@ jobs:
name: Build Darwin amd64 Version name: Build Darwin amd64 Version
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v4
- name: Setting up Go - name: Setting up Go
uses: actions/setup-go@v2 uses: actions/setup-go@v5
with: with:
go-version: "1.20" go-version: "1.21"
- name: Building Darwin amd64 Version - name: Building Darwin amd64 Version
run: | run: |
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -o WireProxy_amd64 -v ./cmd/wireproxy CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -o WireProxy_amd64 -v ./cmd/wireproxy
@ -124,7 +125,7 @@ jobs:
mv WireProxy_amd64 wireproxy mv WireProxy_amd64 wireproxy
cp wireproxy release_darwin_amd64/wireproxy cp wireproxy release_darwin_amd64/wireproxy
- name: Upload Darwin amd64 Version - name: Upload Darwin amd64 Version
uses: actions/upload-artifact@v1 uses: actions/upload-artifact@v4
with: with:
name: WireProxy_darwin_amd64 name: WireProxy_darwin_amd64
path: release_darwin_amd64 path: release_darwin_amd64
@ -132,11 +133,11 @@ jobs:
name: Build Darwin arm64 Version name: Build Darwin arm64 Version
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v4
- name: Setting up Go - name: Setting up Go
uses: actions/setup-go@v2 uses: actions/setup-go@v5
with: with:
go-version: "1.20" go-version: "1.21"
- name: Building Darwin arm64 Version - name: Building Darwin arm64 Version
run: | run: |
CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build -o WireProxy_arm64 -v ./cmd/wireproxy CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build -o WireProxy_arm64 -v ./cmd/wireproxy
@ -144,7 +145,7 @@ jobs:
mv WireProxy_arm64 wireproxy mv WireProxy_arm64 wireproxy
cp wireproxy release_darwin_arm64/wireproxy cp wireproxy release_darwin_arm64/wireproxy
- name: Upload Darwin arm64 Version - name: Upload Darwin arm64 Version
uses: actions/upload-artifact@v1 uses: actions/upload-artifact@v4
with: with:
name: WireProxy_darwin_arm64 name: WireProxy_darwin_arm64
path: release_darwin_arm64 path: release_darwin_arm64

View file

@ -28,26 +28,26 @@ jobs:
steps: steps:
- name: Set up QEMU - name: Set up QEMU
uses: docker/setup-qemu-action@v2 uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx - name: Set up Docker Buildx
id: buildx id: buildx
uses: docker/setup-buildx-action@v2.0.0 uses: docker/setup-buildx-action@v3.0.0
- name: Login to GitHub Container Registry - name: Login to GitHub Container Registry
uses: docker/login-action@v2 uses: docker/login-action@v3
with: with:
registry: ghcr.io registry: ghcr.io
username: ${{ github.actor }} username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }} password: ${{ secrets.GITHUB_TOKEN }}
- uses: actions/checkout@v3 - uses: actions/checkout@v4
with: with:
submodules: recursive submodules: recursive
# Needed for buildx gha cache to work # Needed for buildx gha cache to work
- name: Expose GitHub Runtime - name: Expose GitHub Runtime
uses: crazy-max/ghaction-github-runtime@v2 uses: crazy-max/ghaction-github-runtime@v3
- name: Build container - name: Build container
env: env:

View file

@ -6,6 +6,8 @@ on:
pull_request: pull_request:
branches: branches:
- '**' - '**'
workflow_dispatch:
permissions: permissions:
contents: read contents: read
jobs: jobs:
@ -13,9 +15,11 @@ jobs:
name: lint name: lint
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/setup-go@v2 - uses: actions/setup-go@v5
with: with:
go-version: '1.20' go-version: '1.21'
- uses: actions/checkout@v3 - uses: actions/checkout@v4
- name: golangci-lint - name: golangci-lint
uses: golangci/golangci-lint-action@v3 uses: golangci/golangci-lint-action@v3
with:
version: latest

View file

@ -6,17 +6,18 @@ on:
pull_request: pull_request:
branches: branches:
- '**' - '**'
workflow_dispatch:
jobs: jobs:
test: test:
name: Test wireproxy name: Test wireproxy
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v4
- name: Setting up Go - name: Setting up Go
uses: actions/setup-go@v2 uses: actions/setup-go@v5
with: with:
go-version: "1.20" go-version: "1.21"
- name: Install dependencies - name: Install dependencies
run: sudo apt install wireguard curl run: sudo apt install wireguard curl
- name: Building wireproxy - name: Building wireproxy

View file

@ -28,12 +28,12 @@ jobs:
cp ./.github/wireproxy-releaser.yml ${{ env.workdir }}/.goreleaser.yml cp ./.github/wireproxy-releaser.yml ${{ env.workdir }}/.goreleaser.yml
- name: Set up GoReleaser - name: Set up GoReleaser
uses: actions/setup-go@v2 uses: actions/setup-go@v5
with: with:
go-version: "1.20" go-version: "1.21"
- name: Run GoReleaser - name: Run GoReleaser
uses: goreleaser/goreleaser-action@v2 uses: goreleaser/goreleaser-action@v5
with: with:
distribution: goreleaser distribution: goreleaser
workdir: ${{ env.workdir }} workdir: ${{ env.workdir }}

View file

@ -1,5 +1,5 @@
# Start by building the application. # Start by building the application.
FROM docker.io/golang:1.20 as build FROM docker.io/golang:1.21 as build
WORKDIR /usr/src/wireproxy WORKDIR /usr/src/wireproxy
COPY . . COPY . .
@ -14,6 +14,6 @@ VOLUME [ "/etc/wireproxy"]
ENTRYPOINT [ "/usr/bin/wireproxy" ] ENTRYPOINT [ "/usr/bin/wireproxy" ]
CMD [ "--config", "/etc/wireproxy/config" ] CMD [ "--config", "/etc/wireproxy/config" ]
LABEL org.opencontainers.image.title wireproxy LABEL org.opencontainers.image.title="wireproxy"
LABEL org.opencontainers.image.description "Wireguard client that exposes itself as a socks5 proxy" LABEL org.opencontainers.image.description="Wireguard client that exposes itself as a socks5 proxy"
LABEL org.opencontainers.image.licenses ISC LABEL org.opencontainers.image.licenses="ISC"