Skip to content

Commit

Permalink
Merge build actions from community edition
Browse files Browse the repository at this point in the history
  • Loading branch information
Diordany committed Sep 13, 2024
1 parent 602bf0e commit 7f86bda
Showing 1 changed file with 99 additions and 123 deletions.
222 changes: 99 additions & 123 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,139 +8,115 @@ on:
pull_request:
branches: [ master ]





jobs:
build-docker:
runs-on: ubuntu-latest
container: docker://hhmhh/weylus_build:latest
build-windows:
runs-on: windows-2022
steps:
- uses: actions/checkout@v3
- uses: actions/cache@v3
with:
path: deps/dist*
key: ${{ runner.os }}-deps-${{ hashFiles('deps/*') }}
- uses: actions/cache@v3
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-cargo-${{ hashFiles('Cargo.lock') }}
- name: Build
run: ./docker_build.sh
shell: bash
- name: Artifacts1
uses: actions/upload-artifact@v2
with:
name: linux
path: packages/weylus-linux.zip
- name: Artifacts2
uses: actions/upload-artifact@v2
with:
name: linux-deb
path: packages/Weylus*.deb
- name: Artifacts3
uses: actions/upload-artifact@v3
with:
name: windows
path: packages/weylus-windows.zip
- name: Publish
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
files: |
packages/weylus-linux.zip
packages/Weylus*.deb
packages/weylus-windows.zip
prerelease: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- uses: actions/checkout@v3
- uses: actions-rust-lang/setup-rust-toolchain@v1
- name: Build
run: |
choco install -y --no-progress nodejs.install
npm install -g typescript
choco install -y --no-progress 7zip
Invoke-WebRequest -Uri https://www.gyan.dev/ffmpeg/builds/packages/ffmpeg-6.1.1-full_build-shared.7z -OutFile ffmpeg.7z
7z x ffmpeg.7z
del .\ffmpeg-6.1.1-full_build-shared\bin\*.exe
$env:INCLUDE = ".\ffmpeg-6.1.1-full_build-shared\include\;" + $env:INCLUDE
$env:LIB = ".\ffmpeg-6.1.1-full_build-shared\lib\;" + $env:LIB
Invoke-WebRequest -Uri https://github.com/ShiftMediaProject/x264/releases/download/0.164.r3191/libx264_0.164.r3191_msvc17.zip -OutFile x264.zip
7z x x264.zip -ox264
$env:LIB = ".\x264\lib\x64\;" + $env:LIB
$env:RUSTFLAGS="$RUSTFLAGS -A dead_code -A unused_imports"
cargo b --features ffmpeg-system --release
mkdir weylus
cp .\ffmpeg-6.1.1-full_build-shared\bin\* weylus
cp .\target\release\weylus.exe weylus
7z a weylus_windows.7z weylus\*
- name: Upload 7zip
uses: actions/upload-artifact@v3
with:
name: weylus
path: weylus_windows.7z

build-docker-alpine:
runs-on: ubuntu-latest
container: docker://hhmhh/weylus_build_alpine:latest
build-linux:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
- uses: actions/cache@v3
with:
path: deps/dist*
key: ${{ runner.os }}-alpine-deps-${{ hashFiles('deps/*') }}
- uses: actions/cache@v3
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-alpine-cargo-${{ hashFiles('Cargo.lock') }}
- uses: actions-rust-lang/setup-rust-toolchain@v1
- name: Build
run: cargo build --release && cd target/release && tar czf weylus-linux-alpine-musl.tar.gz weylus
shell: bash
- name: Artifacts1
uses: actions/upload-artifact@v2
with:
name: linux-alpine-musl
path: target/release/weylus-linux-alpine-musl.tar.gz
- name: Publish
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
run: |
sudo apt-get install -y libx11-dev libxext-dev libxft-dev libxinerama-dev libxcursor-dev libxrender-dev libxfixes-dev libxtst-dev libxrandr-dev libxcomposite-dev libxi-dev libxv-dev autoconf libtool-bin nvidia-cuda-dev pkg-config libdrm-dev libpango1.0-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libdbus-1-dev libavcodec-dev libavformat-dev libswscale-dev libva-dev libavdevice-dev libavfilter-dev libpostproc-dev libx264-dev
RUSTFLAGS="$RUSTFLAGS -A dead_code -A unused_imports" cargo b --features ffmpeg-system --release
mv target/release/weylus .
tar -czvf weylus_linux.tar.gz weylus
- name: Upload tar
uses: actions/upload-artifact@v3
with:
files: |
target/release/weylus-linux-alpine-musl.tar.gz
prerelease: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
name: weylus
path: weylus_linux.tar.gz

build-macos:
runs-on: macOS-latest
strategy:
matrix:
os: [ macos-latest, macos-13 ] # -latest if for Apple Silicon, -13 is for Intel
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: actions/cache@v3
with:
path: deps/dist
key: ${{ runner.os }}-deps-${{ hashFiles('deps/*') }}
- uses: actions/cache@v3
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-cargo-${{ hashFiles('Cargo.lock') }}
- name: Download deps
run: |
npm install -g typescript
brew install nasm
cargo install cargo-bundle
shell: bash
- name: Build
# run: MACOSX_DEPLOYMENT_TARGET=10.13 cargo bundle --release
run: cargo bundle --release
- name: Package
run: cd target/release/bundle/osx/ && zip -r macOS.zip Weylus.app
- name: Artifacts
uses: actions/upload-artifact@v2
with:
name: ${{ runner.os }}
path: |
target/release/bundle/osx/macOS.zip
- name: ArtifactsDebug
if: failure()
uses: actions/upload-artifact@v2
with:
name: ${{ runner.os }}-ffbuild
path: |
deps/ffmpeg/ffbuild
- name: Debug via SSH
if: failure()
uses: luchihoratiu/debug-via-ssh@main
with:
NGROK_AUTH_TOKEN: ${{ secrets.NGROK_AUTH_TOKEN }}
SSH_PASS: ${{ secrets.SSH_PASS }}
NGROK_REGION: eu
- name: Publish
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
- uses: actions/checkout@v3
- uses: actions/cache@v3
with:
path: deps/dist
key: ${{ runner.os }}-deps-${{ hashFiles('deps/*') }}
- uses: actions/cache@v3
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-cargo-${{ hashFiles('Cargo.lock') }}
- name: Download deps
run: |
npm install -g typescript
brew install nasm
cargo install cargo-bundle
shell: bash
- name: Build
# run: MACOSX_DEPLOYMENT_TARGET=10.13 cargo bundle --release
run: cargo bundle --release
- name: Package
run: |
MACOS_BUILD_NAME=weylus-macos-$([ "${{ matrix.os }}" == "macos-latest" ] && echo "arm" || echo "intel")
echo "MACOS_BUILD_NAME=$MACOS_BUILD_NAME" >> $GITHUB_ENV
cd target/release/bundle/osx/ && zip -r ${MACOS_BUILD_NAME}.zip Weylus.app
- name: Artifacts
uses: actions/upload-artifact@v3
with:
name: weylus
path: target/release/bundle/osx/${{ env.MACOS_BUILD_NAME }}.zip
- name: ArtifactsDebug
if: failure()
uses: actions/upload-artifact@v4
with:
name: ${{ runner.os }}-ffbuild
path: |
deps/ffmpeg/ffbuild
- name: Debug via SSH
if: failure()
uses: luchihoratiu/debug-via-ssh@main
with:
NGROK_AUTH_TOKEN: ${{ secrets.NGROK_AUTH_TOKEN }}
SSH_PASS: ${{ secrets.SSH_PASS }}
NGROK_REGION: eu
- name: Publish
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
files: |
target/release/bundle/osx/macOS.zip
prerelease: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

0 comments on commit 7f86bda

Please sign in to comment.