proxywoman/.github/workflows/main.yml

177 lines
No EOL
4.9 KiB
YAML

name: Build Proxywoman
on:
push:
tags:
- 'v*'
jobs:
build-linux:
name: Linux Build
runs-on: ubuntu-latest
steps:
- name: Install Dependencies
run: sudo apt install gcc libgtk-3-dev libappindicator3-dev libwebkit2gtk-4.0-dev
-
name: Checkout
uses: actions/checkout@v2
-
name: Unshallow
run: git fetch --prune --unshallow
-
name: Set up Go
uses: actions/setup-go@v2
with:
go-version: 1.14
-
name: Run Builds
run: |
rm -rf ./out
./build.sh linux server
./build.sh linux desktop
- name: Upload Build Artifact
uses: actions/upload-artifact@v2
with:
# Artifact name
# name: # optional
path: ./out/**/*
build-darwin:
name: Darwin Build
runs-on: macos-latest
steps:
-
name: Checkout
uses: actions/checkout@v2
-
name: Unshallow
run: git fetch --prune --unshallow
-
name: Set up Go
uses: actions/setup-go@v2
with:
go-version: 1.14
-
name: Run Builds
run: |
rm -rf ./out
./build.sh darwin server
./build.sh darwin desktop
- name: Upload Build Artifact
uses: actions/upload-artifact@v2
with:
# Artifact name
# name: # optional
path: ./out/**/*
build-windows:
name: Windows Build
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v2
-
name: Unshallow
run: git fetch --prune --unshallow
-
name: Set up Go
uses: actions/setup-go@v2
with:
go-version: 1.14
-
name: Run Builds
run: |
rm -rf ./out
./build.sh windows server
./build.sh windows desktop
- name: Upload Build Artifact
uses: actions/upload-artifact@v2
with:
# Artifact name
# name: # optional
path: ./out/**/*
generate-release:
name: Execute Release
runs-on: ubuntu-latest
needs: [build-linux, build-darwin, build-windows]
steps:
-
name: Checkout
uses: actions/checkout@v2
-
name: Unshallow
run: git fetch --prune --unshallow
-
name: Prepare Release Directory
run: mkdir ./release
-
name: Download a Build Artifact
uses: actions/download-artifact@v2
with:
# Destination path
path: ./release # optional
-
name: Load version information
run: |
source ./version.properties
echo "::set-env name=VERSION_NAME::$VERSION_NAME"
echo "::set-env name=VERSION_CODE::$VERSION_CODE"
-
name: Display structure of downloaded files
working-directory: ./release
run: |
ls -R
-
name: Create a Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
# The name of the tag. This should come from the webhook payload, `github.GITHUB_REF` when a user pushes a new tag
tag_name: "v${{ env.VERSION_NAME }}"
# The name of the release. For example, `Release v1.0.1`
release_name: "Release v${{ env.VERSION_NAME }}"
# Text describing the contents of the tag.
body: ""
draft: false
prerelease: false
-
name: Upload Windows Release Assets
id: upload_release_assets_windows
uses: NBTX/upload-release-assets@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
targets: "./release/artifact/windows-*/*.exe"
-
name: Upload Linux Release Assets
id: upload_release_assets_linux
uses: NBTX/upload-release-assets@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
targets: "./release/artifact/linux-*/*.!(md)"
-
name: Upload macOS Server Release Assets
id: upload_release_assets_darwin_server
uses: NBTX/upload-release-assets@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
targets: "./release/artifact/darwin-server/*.!(md)"
-
name: Upload macOS Desktop Release Assets
id: upload_release_assets_darwin
uses: NBTX/upload-release-assets@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
targets: "./release/artifact/darwin-*/*.zip"