From bf38e27ff78355d637a63a7e14abd5cec191612e Mon Sep 17 00:00:00 2001 From: PolyMeilex Date: Mon, 11 Mar 2024 19:43:38 +0100 Subject: [PATCH] [CI] Move ubuntu build to reusable workflow --- .github/actions/ubuntu/action.yml | 23 ++++ .github/workflows/rust.yml | 178 ++++++++++++++---------------- 2 files changed, 107 insertions(+), 94 deletions(-) create mode 100644 .github/actions/ubuntu/action.yml diff --git a/.github/actions/ubuntu/action.yml b/.github/actions/ubuntu/action.yml new file mode 100644 index 00000000..1ed6a326 --- /dev/null +++ b/.github/actions/ubuntu/action.yml @@ -0,0 +1,23 @@ +name: Ubuntu +description: Build ubuntu builds +runs: + using: "composite" + steps: + - name: Install alsa + shell: bash + run: sudo apt update && sudo apt install libasound2-dev libgtk-3-dev + - uses: Swatinem/rust-cache@v1 + - uses: actions-rs/cargo@v1 + with: + command: build + args: --release + - name: Chmod +x + shell: bash + run: chmod +x target/release/neothesia + - name: zip binary + shell: bash + run: zip -rj app.zip target/release/neothesia + - uses: actions/upload-artifact@v2 + with: + name: ubuntu-artifact + path: app.zip diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 71fa24f9..39230ffe 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -10,98 +10,88 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - - name: Install alsa - run: sudo apt update && sudo apt install libasound2-dev libgtk-3-dev - - uses: Swatinem/rust-cache@v1 - - uses: actions-rs/cargo@v1 - with: - command: build - args: --release - - name: Chmod +x - run: chmod +x target/release/neothesia - - name: zip binary - run: zip -rj app.zip target/release/neothesia - - uses: actions/upload-artifact@v2 - with: - name: ubuntu-artifact - path: app.zip - build_windows: - runs-on: windows-latest - steps: - - uses: actions/checkout@v2 - - uses: Swatinem/rust-cache@v1 - - uses: actions-rs/cargo@v1 - with: - command: build - args: --release - - uses: actions/upload-artifact@v2 - with: - name: windows-artifact - path: target/release/neothesia.exe - build_macos: - runs-on: macos-latest - steps: - - uses: actions/checkout@v2 - - uses: Swatinem/rust-cache@v1 - - uses: actions-rs/cargo@v1 - with: - command: build - args: --release - - name: copy binary - run: cp target/release/neothesia .github/app/Neothesia.app/Contents/MacOS - - name: zip binary - run: cd .github/app/ && zip -r app.zip Neothesia.app && cd ../.. - - uses: actions/upload-artifact@v2 - with: - name: macos-artifact - path: .github/app/app.zip - - build_ubuntu_recorder: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Install alsa - run: sudo apt update && sudo apt install libasound2-dev libgtk-3-dev libavcodec-dev libavformat-dev libswscale-dev - - uses: Swatinem/rust-cache@v1 - - uses: actions-rs/cargo@v1 - with: - command: build - args: --release -p neothesia-cli - - name: Chmod +x - run: chmod +x target/release/neothesia-cli - - name: zip binary - run: zip -rj app.zip target/release/neothesia-cli - - uses: actions/upload-artifact@v2 - with: - name: ubuntu-recorder-artifact - path: app.zip - - build_windows_recorder: - runs-on: windows-latest - - env: - FFMPEG_DOWNLOAD_URL: https://www.gyan.dev/ffmpeg/builds/ffmpeg-release-full-shared.7z - - steps: - - uses: actions/checkout@v2 - - - name: Install dependencies - run: | - $VCINSTALLDIR = $(& "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" -latest -property installationPath) - Add-Content $env:GITHUB_ENV "LIBCLANG_PATH=${VCINSTALLDIR}\VC\Tools\LLVM\x64\bin`n" - Invoke-WebRequest "${env:FFMPEG_DOWNLOAD_URL}" -OutFile ffmpeg-release-full-shared.7z - 7z x ffmpeg-release-full-shared.7z - mkdir ffmpeg - mv ffmpeg-*/* ffmpeg/ - Add-Content $env:GITHUB_ENV "FFMPEG_DIR=${pwd}\ffmpeg`n" - Add-Content $env:GITHUB_PATH "${pwd}\ffmpeg\bin`n" + - id: Build + uses: ./.github/actions/ubuntu + - name: ls + run: ls -l app.zip - - uses: Swatinem/rust-cache@v1 - - uses: actions-rs/cargo@v1 - with: - command: build - args: --release -p neothesia-cli - - uses: actions/upload-artifact@v2 - with: - name: windows-recorder-artifact - path: target/release/neothesia-cli.exe + # build_windows: + # runs-on: windows-latest + # steps: + # - uses: actions/checkout@v2 + # - uses: Swatinem/rust-cache@v1 + # - uses: actions-rs/cargo@v1 + # with: + # command: build + # args: --release + # - uses: actions/upload-artifact@v2 + # with: + # name: windows-artifact + # path: target/release/neothesia.exe + # build_macos: + # runs-on: macos-latest + # steps: + # - uses: actions/checkout@v2 + # - uses: Swatinem/rust-cache@v1 + # - uses: actions-rs/cargo@v1 + # with: + # command: build + # args: --release + # - name: copy binary + # run: cp target/release/neothesia .github/app/Neothesia.app/Contents/MacOS + # - name: zip binary + # run: cd .github/app/ && zip -r app.zip Neothesia.app && cd ../.. + # - uses: actions/upload-artifact@v2 + # with: + # name: macos-artifact + # path: .github/app/app.zip + # + # build_ubuntu_recorder: + # runs-on: ubuntu-latest + # steps: + # - uses: actions/checkout@v2 + # - name: Install alsa + # run: sudo apt update && sudo apt install libasound2-dev libgtk-3-dev libavcodec-dev libavformat-dev libswscale-dev + # - uses: Swatinem/rust-cache@v1 + # - uses: actions-rs/cargo@v1 + # with: + # command: build + # args: --release -p neothesia-cli + # - name: Chmod +x + # run: chmod +x target/release/neothesia-cli + # - name: zip binary + # run: zip -rj app.zip target/release/neothesia-cli + # - uses: actions/upload-artifact@v2 + # with: + # name: ubuntu-recorder-artifact + # path: app.zip + # + # build_windows_recorder: + # runs-on: windows-latest + # + # env: + # FFMPEG_DOWNLOAD_URL: https://www.gyan.dev/ffmpeg/builds/ffmpeg-release-full-shared.7z + # + # steps: + # - uses: actions/checkout@v2 + # + # - name: Install dependencies + # run: | + # $VCINSTALLDIR = $(& "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" -latest -property installationPath) + # Add-Content $env:GITHUB_ENV "LIBCLANG_PATH=${VCINSTALLDIR}\VC\Tools\LLVM\x64\bin`n" + # Invoke-WebRequest "${env:FFMPEG_DOWNLOAD_URL}" -OutFile ffmpeg-release-full-shared.7z + # 7z x ffmpeg-release-full-shared.7z + # mkdir ffmpeg + # mv ffmpeg-*/* ffmpeg/ + # Add-Content $env:GITHUB_ENV "FFMPEG_DIR=${pwd}\ffmpeg`n" + # Add-Content $env:GITHUB_PATH "${pwd}\ffmpeg\bin`n" + # + # - uses: Swatinem/rust-cache@v1 + # - uses: actions-rs/cargo@v1 + # with: + # command: build + # args: --release -p neothesia-cli + # - uses: actions/upload-artifact@v2 + # with: + # name: windows-recorder-artifact + # path: target/release/neothesia-cli.exe