Workflows: use env vars to prevent injections #234
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: Build all | ||
| on: | ||
| workflow_dispatch: | ||
| inputs: | ||
| branch: | ||
| description: PDFium branch | ||
| required: false | ||
| default: main | ||
| version: | ||
| description: PDFium version | ||
| required: false | ||
| default: "" | ||
| enable_v8: | ||
| description: Enable V8 | ||
| type: boolean | ||
| required: false | ||
| default: false | ||
| is_debug: | ||
| description: Is debug | ||
| type: boolean | ||
| required: false | ||
| default: false | ||
| release: | ||
| description: Publish GitHub release | ||
| type: boolean | ||
| required: false | ||
| default: false | ||
| nuget: | ||
| description: Publish on nuget.org | ||
| type: boolean | ||
| required: false | ||
| default: false | ||
| anaconda: | ||
| description: Publish on anaconda.org | ||
| type: boolean | ||
| required: false | ||
| default: false | ||
| jobs: | ||
| android_arm: | ||
| name: Android ARM | ||
| uses: ./.github/workflows/build.yml | ||
| with: | ||
| branch: ${{ github.event.inputs.branch }} | ||
| version: ${{ github.event.inputs.version }} | ||
| is_debug: ${{ github.event.inputs.is_debug == 'true' }} | ||
| target_os: android | ||
| target_cpu: arm | ||
| enable_v8: false | ||
| android_arm_v8: | ||
| name: Android ARM V8 | ||
| if: github.event.inputs.enable_v8 == 'true' | ||
| needs: android_arm | ||
| uses: ./.github/workflows/build.yml | ||
| with: | ||
| branch: ${{ github.event.inputs.branch }} | ||
| version: ${{ github.event.inputs.version }} | ||
| is_debug: ${{ github.event.inputs.is_debug == 'true' }} | ||
| target_os: android | ||
| target_cpu: arm | ||
| enable_v8: true | ||
| android_arm64: | ||
| name: Android ARM64 | ||
| uses: ./.github/workflows/build.yml | ||
| with: | ||
| branch: ${{ github.event.inputs.branch }} | ||
| version: ${{ github.event.inputs.version }} | ||
| is_debug: ${{ github.event.inputs.is_debug == 'true' }} | ||
| target_os: android | ||
| target_cpu: arm64 | ||
| enable_v8: false | ||
| android_arm64_v8: | ||
| name: Android ARM64 V8 | ||
| if: github.event.inputs.enable_v8 == 'true' | ||
| needs: android_arm64 | ||
| uses: ./.github/workflows/build.yml | ||
| with: | ||
| branch: ${{ github.event.inputs.branch }} | ||
| version: ${{ github.event.inputs.version }} | ||
| is_debug: ${{ github.event.inputs.is_debug == 'true' }} | ||
| target_os: android | ||
| target_cpu: arm64 | ||
| enable_v8: true | ||
| android_x64: | ||
| name: Android x64 | ||
| uses: ./.github/workflows/build.yml | ||
| with: | ||
| branch: ${{ github.event.inputs.branch }} | ||
| version: ${{ github.event.inputs.version }} | ||
| is_debug: ${{ github.event.inputs.is_debug == 'true' }} | ||
| target_os: android | ||
| target_cpu: x64 | ||
| enable_v8: false | ||
| android_x64_v8: | ||
| name: Android x64 V8 | ||
| if: github.event.inputs.enable_v8 == 'true' | ||
| needs: android_x64 | ||
| uses: ./.github/workflows/build.yml | ||
| with: | ||
| branch: ${{ github.event.inputs.branch }} | ||
| version: ${{ github.event.inputs.version }} | ||
| is_debug: ${{ github.event.inputs.is_debug == 'true' }} | ||
| target_os: android | ||
| target_cpu: x64 | ||
| enable_v8: true | ||
| android_x86: | ||
| name: Android x86 | ||
| uses: ./.github/workflows/build.yml | ||
| with: | ||
| branch: ${{ github.event.inputs.branch }} | ||
| version: ${{ github.event.inputs.version }} | ||
| is_debug: ${{ github.event.inputs.is_debug == 'true' }} | ||
| target_os: android | ||
| target_cpu: x86 | ||
| enable_v8: false | ||
| android_x86_v8: | ||
| name: Android x86 V8 | ||
| if: github.event.inputs.enable_v8 == 'true' | ||
| needs: android_x86 | ||
| uses: ./.github/workflows/build.yml | ||
| with: | ||
| branch: ${{ github.event.inputs.branch }} | ||
| version: ${{ github.event.inputs.version }} | ||
| is_debug: ${{ github.event.inputs.is_debug == 'true' }} | ||
| target_os: android | ||
| target_cpu: x86 | ||
| enable_v8: true | ||
| ios_catalyst_arm64: | ||
| name: iOS catalyst ARM64 | ||
| uses: ./.github/workflows/build.yml | ||
| with: | ||
| branch: ${{ github.event.inputs.branch }} | ||
| version: ${{ github.event.inputs.version }} | ||
| is_debug: ${{ github.event.inputs.is_debug == 'true' }} | ||
| target_os: ios | ||
| target_cpu: arm64 | ||
| target_environment: catalyst | ||
| enable_v8: false | ||
| ios_catalyst_arm64_v8: | ||
| name: iOS catalyst ARM64 V8 | ||
| if: github.event.inputs.enable_v8 == 'true' | ||
| needs: ios_catalyst_arm64 | ||
| uses: ./.github/workflows/build.yml | ||
| with: | ||
| branch: ${{ github.event.inputs.branch }} | ||
| version: ${{ github.event.inputs.version }} | ||
| is_debug: ${{ github.event.inputs.is_debug == 'true' }} | ||
| target_os: ios | ||
| target_cpu: arm64 | ||
| target_environment: catalyst | ||
| enable_v8: true | ||
| ios_catalyst_x64: | ||
| name: iOS catalyst x64 | ||
| uses: ./.github/workflows/build.yml | ||
| with: | ||
| branch: ${{ github.event.inputs.branch }} | ||
| version: ${{ github.event.inputs.version }} | ||
| is_debug: ${{ github.event.inputs.is_debug == 'true' }} | ||
| target_os: ios | ||
| target_cpu: x64 | ||
| target_environment: catalyst | ||
| enable_v8: false | ||
| ios_catalyst_x64_v8: | ||
| name: iOS catalyst x64 V8 | ||
| if: github.event.inputs.enable_v8 == 'true' | ||
| needs: ios_catalyst_x64 | ||
| uses: ./.github/workflows/build.yml | ||
| with: | ||
| branch: ${{ github.event.inputs.branch }} | ||
| version: ${{ github.event.inputs.version }} | ||
| is_debug: ${{ github.event.inputs.is_debug == 'true' }} | ||
| target_os: ios | ||
| target_cpu: x64 | ||
| target_environment: catalyst | ||
| enable_v8: true | ||
| ios_device_arm64: | ||
| name: iOS device ARM64 | ||
| uses: ./.github/workflows/build.yml | ||
| with: | ||
| branch: ${{ github.event.inputs.branch }} | ||
| version: ${{ github.event.inputs.version }} | ||
| is_debug: ${{ github.event.inputs.is_debug == 'true' }} | ||
| target_os: ios | ||
| target_cpu: arm64 | ||
| target_environment: device | ||
| enable_v8: false | ||
| ios_device_arm64_v8: | ||
| name: iOS device ARM64 V8 | ||
| if: github.event.inputs.enable_v8 == 'true' | ||
| needs: ios_device_arm64 | ||
| uses: ./.github/workflows/build.yml | ||
| with: | ||
| branch: ${{ github.event.inputs.branch }} | ||
| version: ${{ github.event.inputs.version }} | ||
| is_debug: ${{ github.event.inputs.is_debug == 'true' }} | ||
| target_os: ios | ||
| target_cpu: arm64 | ||
| target_environment: device | ||
| enable_v8: true | ||
| ios_simulator_arm64: | ||
| name: iOS simulator ARM64 | ||
| uses: ./.github/workflows/build.yml | ||
| with: | ||
| branch: ${{ github.event.inputs.branch }} | ||
| version: ${{ github.event.inputs.version }} | ||
| is_debug: ${{ github.event.inputs.is_debug == 'true' }} | ||
| target_os: ios | ||
| target_cpu: arm64 | ||
| target_environment: simulator | ||
| enable_v8: false | ||
| ios_simulator_arm64_v8: | ||
| name: iOS simulator ARM64 V8 | ||
| if: github.event.inputs.enable_v8 == 'true' | ||
| needs: ios_simulator_arm64 | ||
| uses: ./.github/workflows/build.yml | ||
| with: | ||
| branch: ${{ github.event.inputs.branch }} | ||
| version: ${{ github.event.inputs.version }} | ||
| is_debug: ${{ github.event.inputs.is_debug == 'true' }} | ||
| target_os: ios | ||
| target_cpu: arm64 | ||
| target_environment: simulator | ||
| enable_v8: true | ||
| ios_simulator_x64: | ||
| name: iOS simulator x64 | ||
| uses: ./.github/workflows/build.yml | ||
| with: | ||
| branch: ${{ github.event.inputs.branch }} | ||
| version: ${{ github.event.inputs.version }} | ||
| is_debug: ${{ github.event.inputs.is_debug == 'true' }} | ||
| target_os: ios | ||
| target_cpu: x64 | ||
| target_environment: simulator | ||
| enable_v8: false | ||
| ios_simulator_x64_v8: | ||
| name: iOS simulator x64 V8 | ||
| if: github.event.inputs.enable_v8 == 'true' | ||
| needs: ios_simulator_x64 | ||
| uses: ./.github/workflows/build.yml | ||
| with: | ||
| branch: ${{ github.event.inputs.branch }} | ||
| version: ${{ github.event.inputs.version }} | ||
| is_debug: ${{ github.event.inputs.is_debug == 'true' }} | ||
| target_os: ios | ||
| target_cpu: x64 | ||
| target_environment: simulator | ||
| enable_v8: true | ||
| linux_arm: | ||
| name: Linux ARM | ||
| uses: ./.github/workflows/build.yml | ||
| with: | ||
| branch: ${{ github.event.inputs.branch }} | ||
| version: ${{ github.event.inputs.version }} | ||
| is_debug: ${{ github.event.inputs.is_debug == 'true' }} | ||
| target_os: linux | ||
| target_cpu: arm | ||
| enable_v8: false | ||
| linux_arm_v8: | ||
| name: Linux ARM V8 | ||
| if: github.event.inputs.enable_v8 == 'true' | ||
| needs: linux_arm | ||
| uses: ./.github/workflows/build.yml | ||
| with: | ||
| branch: ${{ github.event.inputs.branch }} | ||
| version: ${{ github.event.inputs.version }} | ||
| is_debug: ${{ github.event.inputs.is_debug == 'true' }} | ||
| target_os: linux | ||
| target_cpu: arm | ||
| enable_v8: true | ||
| linux_arm64: | ||
| name: Linux ARM64 | ||
| uses: ./.github/workflows/build.yml | ||
| with: | ||
| branch: ${{ github.event.inputs.branch }} | ||
| version: ${{ github.event.inputs.version }} | ||
| is_debug: ${{ github.event.inputs.is_debug == 'true' }} | ||
| target_os: linux | ||
| target_cpu: arm64 | ||
| enable_v8: false | ||
| linux_arm64_v8: | ||
| name: Linux ARM64 V8 | ||
| if: github.event.inputs.enable_v8 == 'true' | ||
| needs: linux_arm64 | ||
| uses: ./.github/workflows/build.yml | ||
| with: | ||
| branch: ${{ github.event.inputs.branch }} | ||
| version: ${{ github.event.inputs.version }} | ||
| is_debug: ${{ github.event.inputs.is_debug == 'true' }} | ||
| target_os: linux | ||
| target_cpu: arm64 | ||
| enable_v8: true | ||
| linux_x64: | ||
| name: Linux x64 | ||
| uses: ./.github/workflows/build.yml | ||
| with: | ||
| branch: ${{ github.event.inputs.branch }} | ||
| version: ${{ github.event.inputs.version }} | ||
| is_debug: ${{ github.event.inputs.is_debug == 'true' }} | ||
| target_os: linux | ||
| target_cpu: x64 | ||
| enable_v8: false | ||
| linux_x64_v8: | ||
| name: Linux x64 V8 | ||
| if: github.event.inputs.enable_v8 == 'true' | ||
| needs: linux_x64 | ||
| uses: ./.github/workflows/build.yml | ||
| with: | ||
| branch: ${{ github.event.inputs.branch }} | ||
| version: ${{ github.event.inputs.version }} | ||
| is_debug: ${{ github.event.inputs.is_debug == 'true' }} | ||
| target_os: linux | ||
| target_cpu: x64 | ||
| enable_v8: true | ||
| linux_x86: | ||
| name: Linux x86 | ||
| uses: ./.github/workflows/build.yml | ||
| with: | ||
| branch: ${{ github.event.inputs.branch }} | ||
| version: ${{ github.event.inputs.version }} | ||
| is_debug: ${{ github.event.inputs.is_debug == 'true' }} | ||
| target_os: linux | ||
| target_cpu: x86 | ||
| enable_v8: false | ||
| linux_x86_v8: | ||
| name: Linux x86 V8 | ||
| if: github.event.inputs.enable_v8 == 'true' | ||
| needs: linux_x86 | ||
| uses: ./.github/workflows/build.yml | ||
| with: | ||
| branch: ${{ github.event.inputs.branch }} | ||
| version: ${{ github.event.inputs.version }} | ||
| is_debug: ${{ github.event.inputs.is_debug == 'true' }} | ||
| target_os: linux | ||
| target_cpu: x86 | ||
| enable_v8: true | ||
| linux_musl_arm64: | ||
| name: Linux musl ARM64 | ||
| uses: ./.github/workflows/build.yml | ||
| secrets: inherit | ||
| with: | ||
| branch: ${{ github.event.inputs.branch }} | ||
| version: ${{ github.event.inputs.version }} | ||
| is_debug: ${{ github.event.inputs.is_debug == 'true' }} | ||
| target_os: linux | ||
| target_cpu: arm64 | ||
| target_environment: musl | ||
| enable_v8: false | ||
| linux_musl_x64: | ||
| name: Linux musl x64 | ||
| uses: ./.github/workflows/build.yml | ||
| secrets: inherit | ||
| with: | ||
| branch: ${{ github.event.inputs.branch }} | ||
| version: ${{ github.event.inputs.version }} | ||
| is_debug: ${{ github.event.inputs.is_debug == 'true' }} | ||
| target_os: linux | ||
| target_cpu: x64 | ||
| target_environment: musl | ||
| enable_v8: false | ||
| linux_musl_x86: | ||
| name: Linux musl x86 | ||
| uses: ./.github/workflows/build.yml | ||
| secrets: inherit | ||
| with: | ||
| branch: ${{ github.event.inputs.branch }} | ||
| version: ${{ github.event.inputs.version }} | ||
| is_debug: ${{ github.event.inputs.is_debug == 'true' }} | ||
| target_os: linux | ||
| target_cpu: x86 | ||
| target_environment: musl | ||
| enable_v8: false | ||
| mac_arm64: | ||
| name: macOS ARM64 | ||
| uses: ./.github/workflows/build.yml | ||
| with: | ||
| branch: ${{ github.event.inputs.branch }} | ||
| version: ${{ github.event.inputs.version }} | ||
| is_debug: ${{ github.event.inputs.is_debug == 'true' }} | ||
| target_os: mac | ||
| target_cpu: arm64 | ||
| enable_v8: false | ||
| mac_arm64_v8: | ||
| name: macOS ARM64 V8 | ||
| if: github.event.inputs.enable_v8 == 'true' | ||
| needs: mac_arm64 | ||
| uses: ./.github/workflows/build.yml | ||
| with: | ||
| branch: ${{ github.event.inputs.branch }} | ||
| version: ${{ github.event.inputs.version }} | ||
| is_debug: ${{ github.event.inputs.is_debug == 'true' }} | ||
| target_os: mac | ||
| target_cpu: arm64 | ||
| enable_v8: true | ||
| mac_x64: | ||
| name: macOS x64 | ||
| uses: ./.github/workflows/build.yml | ||
| with: | ||
| branch: ${{ github.event.inputs.branch }} | ||
| version: ${{ github.event.inputs.version }} | ||
| is_debug: ${{ github.event.inputs.is_debug == 'true' }} | ||
| target_os: mac | ||
| target_cpu: x64 | ||
| enable_v8: false | ||
| mac_x64_v8: | ||
| name: macOS x64 V8 | ||
| if: github.event.inputs.enable_v8 == 'true' | ||
| needs: mac_x64 | ||
| uses: ./.github/workflows/build.yml | ||
| with: | ||
| branch: ${{ github.event.inputs.branch }} | ||
| version: ${{ github.event.inputs.version }} | ||
| is_debug: ${{ github.event.inputs.is_debug == 'true' }} | ||
| target_os: mac | ||
| target_cpu: x64 | ||
| enable_v8: true | ||
| win_arm64: | ||
| name: Windows ARM64 | ||
| uses: ./.github/workflows/build.yml | ||
| with: | ||
| branch: ${{ github.event.inputs.branch }} | ||
| version: ${{ github.event.inputs.version }} | ||
| is_debug: ${{ github.event.inputs.is_debug == 'true' }} | ||
| target_os: win | ||
| target_cpu: arm64 | ||
| enable_v8: false | ||
| win_arm64_v8: | ||
| name: Windows ARM64 V8 | ||
| if: github.event.inputs.enable_v8 == 'true' | ||
| needs: win_arm64 | ||
| uses: ./.github/workflows/build.yml | ||
| with: | ||
| branch: ${{ github.event.inputs.branch }} | ||
| version: ${{ github.event.inputs.version }} | ||
| is_debug: ${{ github.event.inputs.is_debug == 'true' }} | ||
| target_os: win | ||
| target_cpu: arm64 | ||
| enable_v8: true | ||
| win_x64: | ||
| name: Windows x64 | ||
| uses: ./.github/workflows/build.yml | ||
| with: | ||
| branch: ${{ github.event.inputs.branch }} | ||
| version: ${{ github.event.inputs.version }} | ||
| is_debug: ${{ github.event.inputs.is_debug == 'true' }} | ||
| target_os: win | ||
| target_cpu: x64 | ||
| enable_v8: false | ||
| win_x64_v8: | ||
| name: Windows x64 V8 | ||
| if: github.event.inputs.enable_v8 == 'true' | ||
| needs: win_x64 | ||
| uses: ./.github/workflows/build.yml | ||
| with: | ||
| branch: ${{ github.event.inputs.branch }} | ||
| version: ${{ github.event.inputs.version }} | ||
| is_debug: ${{ github.event.inputs.is_debug == 'true' }} | ||
| target_os: win | ||
| target_cpu: x64 | ||
| enable_v8: true | ||
| win_x86: | ||
| name: Windows x86 | ||
| uses: ./.github/workflows/build.yml | ||
| with: | ||
| branch: ${{ github.event.inputs.branch }} | ||
| version: ${{ github.event.inputs.version }} | ||
| is_debug: ${{ github.event.inputs.is_debug == 'true' }} | ||
| target_os: win | ||
| target_cpu: x86 | ||
| enable_v8: false | ||
| win_x86_v8: | ||
| name: Windows x86 V8 | ||
| if: github.event.inputs.enable_v8 == 'true' | ||
| needs: win_x86 | ||
| uses: ./.github/workflows/build.yml | ||
| with: | ||
| branch: ${{ github.event.inputs.branch }} | ||
| version: ${{ github.event.inputs.version }} | ||
| is_debug: ${{ github.event.inputs.is_debug == 'true' }} | ||
| target_os: win | ||
| target_cpu: x86 | ||
| enable_v8: true | ||
| wasm: | ||
| name: WASM | ||
| uses: ./.github/workflows/build.yml | ||
| with: | ||
| branch: ${{ github.event.inputs.branch }} | ||
| version: ${{ github.event.inputs.version }} | ||
| is_debug: ${{ github.event.inputs.is_debug == 'true' }} | ||
| target_os: emscripten | ||
| target_cpu: wasm | ||
| enable_v8: false | ||
| mac_univ: | ||
| name: macOS univ | ||
| needs: | ||
| - mac_arm64 | ||
| - mac_x64 | ||
| uses: ./.github/workflows/mac-univ.yml | ||
| with: | ||
| artifact_x64: ${{ needs.mac_x64.outputs.artifact }} | ||
| artifact_arm64: ${{ needs.mac_arm64.outputs.artifact }} | ||
| mac_univ_v8: | ||
| name: macOS univ V8 | ||
| needs: | ||
| - mac_arm64_v8 | ||
| - mac_x64_v8 | ||
| uses: ./.github/workflows/mac-univ.yml | ||
| with: | ||
| artifact_x64: ${{ needs.mac_x64_v8.outputs.artifact }} | ||
| artifact_arm64: ${{ needs.mac_arm64_v8.outputs.artifact }} | ||
| nuget: | ||
| name: Build NuGet packages | ||
| runs-on: windows-latest | ||
| needs: | ||
| - android_arm | ||
| - android_arm_v8 | ||
| - android_arm64 | ||
| - android_arm64_v8 | ||
| - android_x64 | ||
| - android_x64_v8 | ||
| - android_x86 | ||
| - android_x86_v8 | ||
| - ios_device_arm64 | ||
| - ios_device_arm64_v8 | ||
| - ios_simulator_arm64 | ||
| - ios_simulator_arm64_v8 | ||
| - ios_simulator_x64 | ||
| - ios_simulator_x64_v8 | ||
| - linux_arm | ||
| - linux_arm_v8 | ||
| - linux_arm64 | ||
| - linux_arm64_v8 | ||
| - linux_x64 | ||
| - linux_x64_v8 | ||
| - linux_x86 | ||
| - linux_x86_v8 | ||
| - linux_musl_arm64 | ||
| - linux_musl_x64 | ||
| - linux_musl_x86 | ||
| - mac_arm64 | ||
| - mac_arm64_v8 | ||
| - mac_x64 | ||
| - mac_x64_v8 | ||
| - wasm | ||
| - win_arm64 | ||
| - win_arm64_v8 | ||
| - win_x64 | ||
| - win_x64_v8 | ||
| - win_x86 | ||
| - win_x86_v8 | ||
| steps: | ||
| - name: Checkout | ||
| uses: actions/checkout@v4 | ||
| - name: Download artifacts | ||
| uses: actions/download-artifact@v4 | ||
| with: | ||
| path: nuget | ||
| - name: Prepare header files | ||
| shell: bash | ||
| run: mkdir -p nuget/include/pdfium && cp -r nuget/pdfium-win-x86/include/* nuget/include/pdfium/ | ||
| - name: Define properties | ||
| shell: bash | ||
| run: | | ||
| VERSION="$VERSION" | ||
| BRANCH="${GITHUB_REF#refs/heads/}" | ||
| COMMIT="${GITHUB_SHA}" | ||
| RELEASE_NOTES="${{github.server_url}}/${{github.repository}}/releases" | ||
| ${{ RELEASE }} && RELEASE_NOTES+="/tag/$BRANCH" | ||
| echo "NUSPEC_PROPERTIES=version=$VERSION;branch=$BRANCH;commit=$COMMIT;releaseNotes=$RELEASE_NOTES" >> "$GITHUB_ENV" | ||
| env: | ||
| VERSION: ${{ github.event.inputs.version || '0.0.0.0' }} | ||
| RELEASE: ${{ github.event.inputs.release }} | ||
| BRANCH: ${{ github.event.inputs.branch }} | ||
| - name: Pack | ||
| shell: bash | ||
| run: | | ||
| for NUSPEC in nuget/*.nuspec; do | ||
| echo "::group::$NUSPEC" | ||
| nuget pack "$NUSPEC" -p "$NUSPEC_PROPERTIES" | ||
| echo "::endgroup::" | ||
| done | ||
| - name: Upload artifact | ||
| uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: NuGet packages | ||
| path: '*.nupkg' | ||
| - name: Push to nuget.org | ||
| if: env.NUGET_API_KEY && startsWith(github.event.inputs.branch, 'chromium/') && github.event.inputs.version && github.event.inputs.nuget == 'true' | ||
| run: nuget push -Source nuget.org -ApiKey ${{ secrets.NUGET_API_KEY }} *.nupkg | ||
| env: | ||
| NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }} | ||
| conda: | ||
| name: Conda packages | ||
| if: github.event.inputs.version | ||
| runs-on: ubuntu-latest | ||
| needs: | ||
| - linux_arm64 | ||
| - linux_x64 | ||
| - mac_arm64 | ||
| - mac_x64 | ||
| - win_arm64 | ||
| - win_x64 | ||
| steps: | ||
| - name: Checkout | ||
| uses: actions/checkout@v4 | ||
| - name: Download artifacts | ||
| uses: actions/download-artifact@v4 | ||
| - name: Create build script | ||
| run: | | ||
| cat >conda-build.sh <<END | ||
| #!/bin/bash -eux | ||
| PLATFORM=\$1 | ||
| SOURCE_DIR=\$2 | ||
| VERSION="$VERSION" | ||
| # rename "include/" into "include/pdfium/" | ||
| shopt -s extglob | ||
| mkdir -p \$SOURCE_DIR/include/pdfium | ||
| mv \$SOURCE_DIR/include/!(pdfium) \$SOURCE_DIR/include/pdfium | ||
| python conda/build.py pdfium-binaries \$PLATFORM \$VERSION --about-file conda/about.json --source-dir \$SOURCE_DIR --output-dir conda/out | ||
| END | ||
| chmod +x conda-build.sh | ||
| env: | ||
| VERSION: ${{ github.event.inputs.version }} | ||
| - name: Build for linux-64 | ||
| run: ./conda-build.sh linux-64 pdfium-linux-x64 | ||
| - name: Build for linux-aarch64 | ||
| run: ./conda-build.sh linux-aarch64 pdfium-linux-arm64 | ||
| - name: Build for osx-arm64 | ||
| run: ./conda-build.sh osx-arm64 pdfium-mac-arm64 | ||
| - name: Build for osx-64 | ||
| run: ./conda-build.sh osx-64 pdfium-mac-x64 | ||
| - name: Build for win-64 | ||
| run: ./conda-build.sh win-64 pdfium-win-x64 | ||
| - name: Build for win-arm64 | ||
| run: ./conda-build.sh win-arm64 pdfium-win-arm64 | ||
| - name: Upload artifact | ||
| uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: Conda packages | ||
| path: conda/out/ | ||
| - name: Setup Miniconda | ||
| uses: conda-incubator/setup-miniconda@v3 | ||
| - name: Install anaconda-client | ||
| run: conda install -yq anaconda-client | ||
| shell: bash -l {0} | ||
| - name: Upload to Anaconda | ||
| if: env.ANACONDA_API_TOKEN && startsWith(github.event.inputs.branch, 'chromium/') && github.event.inputs.version && github.event.inputs.anaconda == 'true' | ||
| run: find conda/out -name 'pdfium-binaries-*.tar.bz2' -exec anaconda upload --force {} + | ||
| shell: bash -l {0} | ||
| env: | ||
| ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} | ||
| publish: | ||
| name: Publish Release | ||
| outputs: | ||
| hashes: ${{ steps.hash.outputs.hashes }} | ||
| tagname: ${{ github.event.inputs.branch }} | ||
| if: startsWith(github.event.inputs.branch, 'chromium/') && github.event.inputs.version && github.event.inputs.release == 'true' | ||
| runs-on: ubuntu-latest | ||
| needs: | ||
| - android_arm | ||
| - android_arm_v8 | ||
| - android_arm64 | ||
| - android_arm64_v8 | ||
| - android_x64 | ||
| - android_x64_v8 | ||
| - android_x86 | ||
| - android_x86_v8 | ||
| - ios_device_arm64 | ||
| - ios_device_arm64_v8 | ||
| - ios_simulator_x64 | ||
| - ios_simulator_x64_v8 | ||
| - linux_arm | ||
| - linux_arm_v8 | ||
| - linux_arm64 | ||
| - linux_arm64_v8 | ||
| - linux_musl_arm64 | ||
| - linux_musl_x64 | ||
| - linux_musl_x86 | ||
| - linux_x64 | ||
| - linux_x64_v8 | ||
| - linux_x86 | ||
| - linux_x86_v8 | ||
| - mac_arm64 | ||
| - mac_arm64_v8 | ||
| - mac_univ | ||
| - mac_univ_v8 | ||
| - mac_x64 | ||
| - mac_x64_v8 | ||
| - wasm | ||
| - win_arm64 | ||
| - win_arm64_v8 | ||
| - win_x64 | ||
| - win_x64_v8 | ||
| - win_x86 | ||
| - win_x86_v8 | ||
| steps: | ||
| - name: Download artifacts | ||
| uses: actions/download-artifact@v4 | ||
| - name: Create tarballs | ||
| run: | | ||
| for DIR in pdfium-*; do | ||
| echo "::group::$DIR" | ||
| (cd $DIR; tar czf ../$DIR.tgz *) | ||
| echo "::endgroup::" | ||
| done | ||
| - name: Write release body | ||
| run: echo 'This version was built with branch `$BRANCH` of PDFium' > RELEASE.md | ||
| env: | ||
| BRANCH: ${{ github.event.inputs.branch }} | ||
| - name: Get changes | ||
| continue-on-error: true | ||
| run: | | ||
| CURRENT_REV=$BRANCH | ||
| PREVIOUS_REV=$(curl --silent "https://api.github.com/repos/${{ github.repository }}/releases/latest" | jq -r ".tag_name") | ||
| git clone -b "$BRANCH" https://pdfium.googlesource.com/pdfium.git | ||
| cat <<END >> RELEASE.md | ||
| ### Changes | ||
| Commits between \`$PREVIOUS_REV\` and \`$CURRENT_REV\`: | ||
| END | ||
| git -C "pdfium" log origin/${PREVIOUS_REV}.. --pretty=format:'* [%s](https://pdfium.googlesource.com/pdfium/+/%H)' >> RELEASE.md | ||
| env: | ||
| BRANCH: ${{ github.event.inputs.branch }} | ||
| - name: Generate artifacts checksums | ||
| id: hash | ||
| run: echo "hashes=$(sha256sum pdfium-*.tgz | base64 -w0)" >> "$GITHUB_OUTPUT" | ||
| - name: Publish Release | ||
| uses: ncipollo/release-action@v1 | ||
| with: | ||
| immutableCreate: true | ||
| bodyFile: RELEASE.md | ||
| token: ${{ secrets.GITHUB_TOKEN }} | ||
| name: PDFium ${{ github.event.inputs.version }} | ||
| tag: ${{ github.event.inputs.branch }} | ||
| artifacts: pdfium-*.tgz | ||