Update release.yaml #108
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Release | |
| permissions: | |
| contents: write | |
| on: | |
| push: | |
| tags: | |
| - v[0-9]+.* | |
| env: | |
| CARGO_TERM_COLOR: always | |
| jobs: | |
| create-release: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: taiki-e/create-gh-release-action@v1 | |
| with: | |
| # (optional) Path to changelog. | |
| changelog: CHANGELOG.md | |
| # (required) GitHub token for creating GitHub Releases. | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| upload-assets: | |
| needs: create-release | |
| strategy: | |
| matrix: | |
| include: | |
| - os: "macos-latest" # for Arm based macs (M1 and above). | |
| target: "aarch64-apple-darwin" | |
| - os: "macos-latest" # for Intel based macs. | |
| target: "x86_64-apple-darwin" | |
| - os: "ubuntu-24.04" | |
| target: x86_64-unknown-linux-gnu | |
| - os: "windows-latest" | |
| target: x86_64-pc-windows-msvc | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: install dependencies macos | |
| if: ${{ matrix.os == 'macos-latest' }} | |
| run: brew install ffmpeg pkgconf | |
| - name: install dependencies linux | |
| if: ${{ matrix.os == 'ubuntu-24.04' }} | |
| run: | | |
| sudo apt-get update | |
| sudo apt-install libssl-dev autoconf automake build-essential cmake git-core libass-dev libfreetype6-dev libgnutls28-dev libmp3lame-dev libtool libvorbis-dev meson ninja-build pkg-config texinfo wget curl yasm zlib1g-dev nasm | |
| mkdir -p ~/ffmpeg_sources /tmp/bin /tmp/ffmpeg | |
| cd ~/ffmpeg_sources | |
| git clone --depth 1 -b release/7.1 https://git.ffmpeg.org/ffmpeg.git ffmpeg | |
| cd ffmpeg | |
| PATH="/tmp/bin:$PATH" PKG_CONFIG_PATH="/tmp/ffmpeg/lib/pkgconfig" ./configure \ | |
| --prefix="/tmp/ffmpeg" \ | |
| --pkg-config-flags="--static" \ | |
| --extra-cflags="-I/tmp/ffmpeg/include" \ | |
| --extra-ldflags="-L/tmp/ffmpeg/lib" \ | |
| --extra-libs="-lpthread -lm" \ | |
| --ld="g++" \ | |
| --bindir="/tmp/bin" \ | |
| --disable-autodetect \ | |
| --enable-shared --disable-debug --enable-lto \ | |
| --enable-version3 \ | |
| --disable-programs \ | |
| --disable-doc \ | |
| --disable-everything \ | |
| --enable-protocol=file --enable-muxer=mp4 | tee ffmpeg.txt | |
| PATH="/tmp/bin:$PATH" make | |
| make install | |
| echo "FFMPEG_PKG_CONFIG_PATH=/tmp/ffmpeg/lib/pkgconfig" >> $GITHUB_ENV | |
| - name: Install winget | |
| if: ${{ matrix.os == 'windows-latest' }} | |
| uses: Cyberboss/install-winget@v1 | |
| - name: install ffmpeg windows | |
| if: ${{ matrix.os == 'windows-latest' }} | |
| run: | | |
| mkdir ffmpeg | |
| winget install --id BtbN.FFmpeg.GPL.Shared.7.1 -l ffmpeg --accept-package-agreements --accept-source-agreements | |
| $dir = Get-Item ffmpeg/ffmpeg-* | Select-Object -First 1 | |
| Rename-Item -Path $dir.FullName -NewName "ffmpeg" | |
| ls -l ffmpeg/ffmpeg | |
| $ffmpeg = Resolve-Path -Path "ffmpeg/ffmpeg" | Select-Object -ExpandProperty Path | |
| echo "FFMPEG_LIBS_DIR=$ffmpeg/lib" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append | |
| echo "FFMPEG_INCLUDE_DIR=$ffmpeg/include" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append | |
| - uses: taiki-e/upload-rust-binary-action@v1 | |
| with: | |
| # (required) Comma-separated list of binary names (non-extension portion of filename) to build and upload. | |
| # Note that glob pattern is not supported yet. | |
| bin: fav_bili | |
| # (optional) Target triple, default is host triple. | |
| # This is optional but it is recommended that this always be set to | |
| # clarify which target you are building for if macOS is included in | |
| # the matrix because GitHub Actions changed the default architecture | |
| # of macos-latest since macos-14. | |
| target: ${{ matrix.target }} | |
| # (optional) Archive name (non-extension portion of filename) to be uploaded. | |
| # [default value: $bin-$target] | |
| # [possible values: the following variables and any string] | |
| # variables: | |
| # - $bin - Binary name (non-extension portion of filename). | |
| # - $target - Target triple. | |
| # - $tag - Tag of this release. | |
| # When multiple binary names are specified, default archive name or $bin variable cannot be used. | |
| archive: $bin-$tag-$target | |
| # (optional) On which platform to distribute the `.tar.gz` file. | |
| # [default value: unix] | |
| # [possible values: all, unix, windows, none] | |
| tar: unix | |
| # (optional) On which platform to distribute the `.zip` file. | |
| # [default value: windows] | |
| # [possible values: all, unix, windows, none] | |
| zip: windows | |
| # (required) GitHub token for uploading assets to GitHub Releases. | |
| token: ${{ secrets.GITHUB_TOKEN }} |