pr.yml 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. name: Test Full Build
  2. on:
  3. pull_request:
  4. branches:
  5. - nonexistent
  6. paths-ignore:
  7. - '**.md'
  8. - 'LICENSE'
  9. env:
  10. DOCKER_BUILDKIT: 1
  11. jobs:
  12. build:
  13. name: Test Full Build
  14. runs-on: ubuntu-24.04
  15. strategy:
  16. fail-fast: false
  17. matrix:
  18. target: [win32,win64,winarm64]
  19. variant: [gpl-shared,gpl-shared 7.1]
  20. quickbuild: [1]
  21. include:
  22. - target: linux64
  23. variant: gpl
  24. quickbuild: ''
  25. - target: linux64
  26. variant: gpl 7.1
  27. quickbuild: ''
  28. - target: linuxarm64
  29. variant: gpl
  30. quickbuild: ''
  31. - target: linuxarm64
  32. variant: gpl 7.1
  33. quickbuild: ''
  34. steps:
  35. - name: Free Disk-Space
  36. run: df -h && sudo apt-get clean && docker system prune -a -f && sudo rm -rf /usr/local/lib/android /usr/share/dotnet /opt/ghc && df -h
  37. - name: Checkout
  38. uses: actions/checkout@v4
  39. - name: Install buildx
  40. uses: docker/setup-buildx-action@v3
  41. with:
  42. buildkitd-config: .github/buildkit.toml
  43. driver: docker
  44. - name: Get download cache key
  45. id: dl_cache
  46. run: |
  47. echo "dltagname=$(./util/get_dl_cache_tag.sh)" >> $GITHUB_OUTPUT
  48. - name: Cache
  49. uses: actions/cache/restore@v4
  50. with:
  51. path: .cache/downloads
  52. key: download-cache-${{ steps.dl_cache.outputs.dltagname }}
  53. restore-keys: |
  54. download-cache-
  55. - name: Build Image
  56. run: ./makeimage.sh ${{ matrix.target }} ${{ matrix.variant }}
  57. env:
  58. QUICKBUILD: ${{ matrix.quickbuild }}
  59. - name: Build ffmpeg
  60. run: ./build.sh ${{ matrix.target }} ${{ matrix.variant }}
  61. - name: Replace spaces in string
  62. id: strs
  63. run: |
  64. SLUG="${{ matrix.target }}-${{ matrix.variant }}"
  65. echo "artifact_slug=${SLUG// /-}" >> $GITHUB_OUTPUT
  66. - name: Upload artifacts
  67. uses: actions/upload-artifact@v4
  68. with:
  69. name: ffmpeg-${{ steps.strs.outputs.artifact_slug }}
  70. overwrite: true
  71. path: artifacts/*