You've already forked dependencies
mirror of
https://github.com/duckstation/dependencies.git
synced 2026-06-22 14:42:28 -07:00
235 lines
6.2 KiB
YAML
235 lines
6.2 KiB
YAML
name: Build Dependencies
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
push:
|
|
branches:
|
|
- master
|
|
paths-ignore:
|
|
- '**.md'
|
|
- '**.txt'
|
|
|
|
permissions:
|
|
contents: write
|
|
|
|
jobs:
|
|
build-sources:
|
|
name: "📝 Sources"
|
|
runs-on: ubuntu-22.04
|
|
timeout-minutes: 240
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
|
|
- name: Install Packages
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y wget zip
|
|
|
|
- name: Download Sources
|
|
run: ./download-sources.sh
|
|
|
|
- name: Create Archive
|
|
run: zip -r deps-sources.zip deps-build
|
|
|
|
- name: Upload Artifact
|
|
uses: actions/upload-artifact@v6
|
|
with:
|
|
name: deps-sources
|
|
path: deps-sources.zip
|
|
compression-level: 0
|
|
if-no-files-found: error
|
|
|
|
build-windows:
|
|
name: "💻 Windows"
|
|
needs: build-sources
|
|
runs-on: windows-2025-vs2026
|
|
timeout-minutes: 240
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
|
|
- name: Download Sources
|
|
uses: actions/download-artifact@v6
|
|
with:
|
|
name: deps-sources
|
|
path: ./deps-sources
|
|
|
|
- name: Extract Sources
|
|
shell: cmd
|
|
run: |
|
|
"C:\Program Files\7-Zip\7z.exe" x deps-sources/deps-sources.zip
|
|
|
|
- name: Build x64 Dependencies
|
|
run: .\build-dependencies-windows-x64.bat -skip-download -skip-cleanup
|
|
|
|
- name: Build ARM64 Dependencies
|
|
run: .\build-dependencies-windows-arm64.bat -skip-download -skip-cleanup
|
|
|
|
- name: Create Archives
|
|
shell: cmd
|
|
run: |
|
|
"C:\Program Files\7-Zip\7z.exe" a -r deps-windows-x64.7z windows-x64
|
|
"C:\Program Files\7-Zip\7z.exe" a -r deps-windows-arm64.7z windows-arm64
|
|
|
|
- name: Upload Artifacts
|
|
uses: actions/upload-artifact@v6
|
|
with:
|
|
name: deps-windows
|
|
path: |
|
|
deps-windows-x64.7z
|
|
deps-windows-arm64.7z
|
|
compression-level: 0
|
|
if-no-files-found: error
|
|
|
|
build-macos:
|
|
name: "🍎 MacOS"
|
|
needs: build-sources
|
|
runs-on: macos-26
|
|
timeout-minutes: 240
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
|
|
- name: Download Sources
|
|
uses: actions/download-artifact@v6
|
|
with:
|
|
name: deps-sources
|
|
path: ./deps-sources
|
|
|
|
- name: Extract Sources
|
|
run: unzip deps-sources/deps-sources.zip
|
|
|
|
- name: Use Xcode 26.5
|
|
run: sudo xcode-select -s /Applications/Xcode_26.5.app
|
|
|
|
- name: Build Dependencies
|
|
run: ./build-dependencies-mac.sh -skip-download macos-universal
|
|
|
|
- name: Create Archive
|
|
run: tar -cJf deps-macos-universal.tar.xz macos-universal
|
|
|
|
- name: Upload Artifact
|
|
uses: actions/upload-artifact@v6
|
|
with:
|
|
name: deps-macos-universal
|
|
path: deps-macos-universal.tar.xz
|
|
compression-level: 0
|
|
if-no-files-found: error
|
|
|
|
build-linux-x64:
|
|
name: "🐧 Linux x64"
|
|
needs: build-sources
|
|
runs-on: ubuntu-22.04
|
|
timeout-minutes: 240
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
|
|
- name: Download Sources
|
|
uses: actions/download-artifact@v6
|
|
with:
|
|
name: deps-sources
|
|
path: ./deps-sources
|
|
|
|
- name: Extract Sources
|
|
run: unzip deps-sources/deps-sources.zip
|
|
|
|
- name: Install Packages
|
|
run: ./install-packages-linux.sh
|
|
|
|
- name: Build Dependencies
|
|
run: ./build-dependencies-linux.sh -skip-download linux-x64
|
|
|
|
- name: Build FFmpeg
|
|
run: ./build-ffmpeg-linux.sh linux-x64
|
|
|
|
- name: Create Archive
|
|
run: tar -cJf deps-linux-x64.tar.xz linux-x64
|
|
|
|
- name: Upload Artifact
|
|
uses: actions/upload-artifact@v6
|
|
with:
|
|
name: deps-linux-x64
|
|
path: deps-linux-x64.tar.xz
|
|
compression-level: 0
|
|
if-no-files-found: error
|
|
|
|
build-linux-cross:
|
|
name: "🐧 Linux ${{ matrix.arch }}"
|
|
needs: [build-sources, build-linux-x64]
|
|
runs-on: ubuntu-22.04
|
|
container:
|
|
image: ghcr.io/duckstation/cross-build-${{ matrix.arch }}:latest
|
|
timeout-minutes: 240
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
arch: ["arm64", "armhf"]
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
|
|
- name: Download Sources
|
|
uses: actions/download-artifact@v6
|
|
with:
|
|
name: deps-sources
|
|
path: ./deps-sources
|
|
|
|
- name: Extract Sources
|
|
run: unzip deps-sources/deps-sources.zip
|
|
|
|
- name: Download x64 Artifact
|
|
uses: actions/download-artifact@v6
|
|
with:
|
|
name: deps-linux-x64
|
|
path: ./deps-linux-x64
|
|
|
|
- name: Extract x64 Artifact
|
|
run: |
|
|
tar -xvf deps-linux-x64/deps-linux-x64.tar.xz
|
|
|
|
- name: Build Dependencies
|
|
run: |
|
|
./build-dependencies-linux-cross.sh -skip-download "linux-x64" "${{ matrix.arch }}" "/${{ matrix.arch }}-chroot" "linux-cross-${{matrix.arch}}"
|
|
|
|
- name: Create Archive
|
|
run: tar -cJf "deps-linux-cross-${{ matrix.arch }}.tar.xz" "linux-cross-${{matrix.arch}}"
|
|
|
|
- name: Upload Artifact
|
|
uses: actions/upload-artifact@v6
|
|
with:
|
|
name: deps-linux-cross-${{ matrix.arch }}
|
|
path: deps-linux-cross-${{ matrix.arch }}.tar.xz
|
|
compression-level: 0
|
|
if-no-files-found: error
|
|
|
|
create-release:
|
|
name: "📤 Create Release"
|
|
if: github.ref == 'refs/heads/master'
|
|
needs: [build-windows, build-macos, build-linux-x64, build-linux-cross, build-sources]
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
|
|
- name: Get Current Date
|
|
id: date
|
|
run: echo "date=$(date +'%Y%m%d')" >> "$GITHUB_OUTPUT"
|
|
|
|
- name: Download All Artifacts
|
|
uses: actions/download-artifact@v6
|
|
with:
|
|
path: artifacts
|
|
|
|
- name: Create Release
|
|
env:
|
|
GH_TOKEN: ${{ github.token }}
|
|
run: |
|
|
TAG="release-${{ steps.date.outputs.date }}"
|
|
gh release delete "$TAG" --yes --cleanup-tag || true
|
|
gh release create "$TAG" \
|
|
--title "$TAG" \
|
|
--notes "Dependencies built on $(date +'%Y-%m-%d') from commit ${{ github.sha }}." \
|
|
artifacts/deps-windows/deps-windows-x64.7z \
|
|
artifacts/deps-windows/deps-windows-arm64.7z \
|
|
artifacts/deps-macos-universal/deps-macos-universal.tar.xz \
|
|
artifacts/deps-linux-x64/deps-linux-x64.tar.xz \
|
|
artifacts/deps-linux-cross-arm64/deps-linux-cross-arm64.tar.xz \
|
|
artifacts/deps-linux-cross-armhf/deps-linux-cross-armhf.tar.xz \
|
|
artifacts/deps-sources/deps-sources.zip
|