Add native local scope for Windows/Linux #3431
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: package-plugin-workflow | |
on: | |
push: | |
branches: | |
- main | |
- release/* | |
pull_request: | |
paths-ignore: | |
- "**.md" | |
jobs: | |
android-sdk: | |
uses: ./.github/workflows/sdk-build.yml | |
with: | |
target: Android | |
runsOn: ubuntu-latest | |
ios-sdk: | |
uses: ./.github/workflows/sdk-download.yml | |
with: | |
target: IOS | |
runsOn: ubuntu-latest | |
macos-sdk: | |
uses: ./.github/workflows/sdk-download.yml | |
with: | |
target: Mac | |
runsOn: ubuntu-latest | |
linux-sdk: | |
uses: ./.github/workflows/sdk-build.yml | |
with: | |
target: Linux | |
runsOn: ubuntu-22.04 | |
container: ubuntu:20.04 | |
linux-arm64-sdk: | |
uses: ./.github/workflows/sdk-build.yml | |
with: | |
target: LinuxArm64 | |
runsOn: ubuntu-22.04-arm | |
container: arm64v8/ubuntu:20.04 | |
windows-crashpad-sdk: | |
uses: ./.github/workflows/sdk-build.yml | |
with: | |
target: Win64-Crashpad | |
runsOn: windows-2019 | |
windows-breakpad-sdk: | |
uses: ./.github/workflows/sdk-build.yml | |
with: | |
target: Win64-Breakpad | |
runsOn: windows-2019 | |
package-preparation: | |
needs: [android-sdk, ios-sdk, macos-sdk, linux-sdk, linux-arm64-sdk, windows-crashpad-sdk, windows-breakpad-sdk] | |
name: Package | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Download CLI | |
shell: pwsh | |
run: ./scripts/download-cli.ps1 | |
- uses: actions/download-artifact@v4 | |
with: | |
name: Android-sdk | |
path: plugin-dev/Source/ThirdParty/Android | |
- uses: actions/download-artifact@v4 | |
with: | |
name: IOS-sdk | |
path: plugin-dev/Source/ThirdParty/IOS | |
- uses: actions/download-artifact@v4 | |
with: | |
name: Mac-sdk | |
path: plugin-dev/Source/ThirdParty/Mac | |
- uses: actions/download-artifact@v4 | |
with: | |
name: Linux-sdk | |
path: plugin-dev/Source/ThirdParty/Linux | |
- uses: actions/download-artifact@v4 | |
with: | |
name: LinuxArm64-sdk | |
path: plugin-dev/Source/ThirdParty/LinuxArm64 | |
- uses: actions/download-artifact@v4 | |
with: | |
name: Win64-Crashpad-sdk | |
path: plugin-dev/Source/ThirdParty/Win64/Crashpad | |
- uses: actions/download-artifact@v4 | |
with: | |
name: Win64-Breakpad-sdk | |
path: plugin-dev/Source/ThirdParty/Win64/Breakpad | |
# Workaround for https://github.com/actions/download-artifact/issues/14 | |
# Adding execute permission for crashpad before preparing final packages | |
# allows to avoid issues with plugin initialization on Unix-based systems. | |
- name: Set permissions for crashpad_handler | |
shell: pwsh | |
run: | | |
chmod +x plugin-dev/Source/ThirdParty/Linux/bin/crashpad_handler | |
chmod +x plugin-dev/Source/ThirdParty/LinuxArm64/bin/crashpad_handler | |
- name: Prepare Sentry packages for release | |
shell: pwsh | |
run: ./scripts/packaging/pack.ps1 | |
- name: Upload release artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
# Artifact name is the commit sha. Which is what craft uses to find the relevant artifact. | |
name: ${{ github.sha }} | |
if-no-files-found: error | |
path: | | |
sentry-unreal-*.zip | |
package-validation: | |
needs: [package-preparation] | |
name: Check snapshot | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Download packages | |
uses: actions/download-artifact@v4 | |
with: | |
name: ${{ github.sha }} | |
# If this step fails, you can accept the new file content by | |
# running the following script locally with 'accept' as an argument | |
# and committing the new snapshot file to your branch. i.e: | |
# pwsh ./scripts/test-contents.ps1 accept | |
- name: Verify package content against snapshot | |
shell: pwsh | |
run: ./scripts/packaging/test-contents.ps1 | |
test-linux: | |
needs: [package-preparation] | |
name: Linux UE ${{ matrix.unreal }} | |
secrets: inherit | |
strategy: | |
fail-fast: false | |
matrix: | |
# Note: these versions must match scripts/packaging/engine-versions.txt | |
# Note: Currently 5.0 is not supported due to ue4-docker issue https://github.com/adamrehn/ue4-docker/issues/373 | |
unreal: ['4.27', '5.1', '5.2', '5.3', '5.4', '5.5'] | |
uses: ./.github/workflows/test-linux.yml | |
with: | |
unreal-version: ${{ matrix.unreal }} | |
test-windows: | |
needs: [package-preparation] | |
name: Windows UE ${{ matrix.unreal }} | |
secrets: inherit | |
strategy: | |
fail-fast: false | |
matrix: | |
# Note: these versions must match scripts/packaging/engine-versions.txt | |
unreal: ['4.27', '5.0', '5.1', '5.2', '5.3', '5.4', '5.5'] | |
uses: ./.github/workflows/test-windows.yml | |
with: | |
unreal-version: ${{ matrix.unreal }} |