set optimization level to O1 in lpk #237
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: Make | |
| on: | |
| schedule: | |
| - cron: '0 0 1 * *' | |
| push: | |
| branches: | |
| - "**" | |
| pull_request: | |
| branches: | |
| - master | |
| - main | |
| workflow_dispatch: | |
| inputs: | |
| enabled_targets: | |
| description: >- | |
| Comma-separated list of targets to run (leave empty for the default | |
| set). Opt-in only: linux-arm32, netbsd, dragonflybsd — pass explicitly here. | |
| Valid IDs: linux-x64, linux-arm64, windows-x64, macos-arm64, | |
| macos-x64, linux-arm32, linux-powerpc64-be, freebsd, solaris, | |
| netbsd, dragonflybsd | |
| default: "" | |
| type: string | |
| debug: | |
| description: Verbose install tracing (CI_DEBUG=1 in install-fpc-lazarus.sh) | |
| default: false | |
| type: boolean | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| env: | |
| FPC_VERSION: 3.2.2 | |
| LAZARUS_BRANCH: lazarus_4_4 | |
| LAZARUS_REPO: https://github.com/fpc/Lazarus.git | |
| MAKE_BUILD_BACKEND: fpc | |
| # make.pas package build scope: 'all' compiles every discovered package (catches | |
| # a package that fails on the target even if unused); 'required' only compiles | |
| # the projects' dependency closure. Override per job below, like MAKE_BUILD_BACKEND. | |
| MAKE_PACKAGE_SCOPE: required | |
| # Set by the workflow_dispatch "debug" toggle; '1' enables `set -x` tracing in | |
| # install-fpc-lazarus.sh, '0' otherwise. Forwarded into the sandboxed jobs below. | |
| CI_DEBUG: ${{ github.event.inputs.debug == 'true' && '1' || '0' }} | |
| jobs: | |
| setup: | |
| name: Resolve target list | |
| runs-on: ubuntu-latest | |
| outputs: | |
| enabled_targets: ${{ steps.resolve.outputs.enabled_targets }} | |
| native_matrix: ${{ steps.resolve.outputs.native_matrix }} | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Resolve enabled targets | |
| id: resolve | |
| shell: bash | |
| env: | |
| INPUT_TARGETS: ${{ github.event.inputs.enabled_targets }} | |
| run: bash .github/workflows/ci/resolve-targets.sh | |
| native: | |
| needs: setup | |
| # native_matrix is built from targets.json filtered to enabled native ids. | |
| # An empty array would be an invalid matrix, so skip the job in that case. | |
| if: needs.setup.outputs.native_matrix != '[]' | |
| name: ${{ matrix.name }} | |
| runs-on: ${{ matrix.runner }} | |
| timeout-minutes: 120 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: ${{ fromJSON(needs.setup.outputs.native_matrix) }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| with: | |
| submodules: true | |
| - name: Build | |
| shell: bash | |
| env: | |
| FPC_TARGET: ${{ matrix.fpc_target }} | |
| run: bash .github/workflows/ci/native-build.sh | |
| linux-arm32: | |
| name: Linux ARMv7 (QEMU) | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 120 | |
| needs: setup | |
| if: contains(format(',{0},', needs.setup.outputs.enabled_targets), ',linux-arm32,') | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| with: | |
| submodules: true | |
| - name: Build (ARMv7 via QEMU user-mode) | |
| uses: uraimo/run-on-arch-action@v3 | |
| with: | |
| arch: armv7 | |
| distro: ubuntu24.04 | |
| env: | | |
| FPC_VERSION: ${{ env.FPC_VERSION }} | |
| FPC_TARGET: arm-linux | |
| LAZARUS_BRANCH: ${{ env.LAZARUS_BRANCH }} | |
| LAZARUS_REPO: ${{ env.LAZARUS_REPO }} | |
| MAKE_BUILD_BACKEND: ${{ env.MAKE_BUILD_BACKEND }} | |
| MAKE_PACKAGE_SCOPE: ${{ env.MAKE_PACKAGE_SCOPE }} | |
| CI_DEBUG: ${{ env.CI_DEBUG }} | |
| run: bash .github/workflows/ci/arm32-run.sh | |
| linux-powerpc64-be: | |
| name: Linux PowerPC64 BE (QEMU) | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 180 | |
| needs: setup | |
| if: contains(format(',{0},', needs.setup.outputs.enabled_targets), ',linux-powerpc64-be,') | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| with: | |
| submodules: true | |
| - name: Set up QEMU (ppc64 big-endian) | |
| run: bash .github/workflows/ci/ppc64-qemu-setup.sh | |
| - name: Build (PowerPC64 BE via QEMU) | |
| env: | |
| FPC_VERSION: ${{ env.FPC_VERSION }} | |
| FPC_TARGET: powerpc64-linux | |
| MAKE_BUILD_BACKEND: ${{ env.MAKE_BUILD_BACKEND }} | |
| MAKE_PACKAGE_SCOPE: ${{ env.MAKE_PACKAGE_SCOPE }} | |
| run: bash .github/workflows/ci/ppc64-be-build.sh | |
| freebsd: | |
| name: FreeBSD x86_64 | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 120 | |
| needs: setup | |
| if: contains(format(',{0},', needs.setup.outputs.enabled_targets), ',freebsd,') | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| with: | |
| submodules: true | |
| - name: Build (FreeBSD x86_64) | |
| uses: vmactions/freebsd-vm@v1 | |
| env: | |
| FPC_TARGET: x86_64-freebsd | |
| FREEBSD_INSTALL_MODE: interim | |
| with: | |
| envs: FPC_VERSION FPC_TARGET LAZARUS_BRANCH LAZARUS_REPO MAKE_BUILD_BACKEND MAKE_PACKAGE_SCOPE FREEBSD_INSTALL_MODE CI_DEBUG | |
| release: "15.0" | |
| usesh: true | |
| prepare: sh .github/workflows/ci/vm-freebsd-prepare.sh | |
| run: bash .github/workflows/ci/vm-freebsd-run.sh | |
| netbsd: | |
| name: NetBSD x86_64 | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 120 | |
| needs: setup | |
| if: contains(format(',{0},', needs.setup.outputs.enabled_targets), ',netbsd,') | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| with: | |
| submodules: true | |
| - name: Build (NetBSD x86_64) | |
| uses: vmactions/netbsd-vm@v1 | |
| env: | |
| FPC_TARGET: x86_64-netbsd | |
| with: | |
| envs: FPC_VERSION LAZARUS_BRANCH LAZARUS_REPO MAKE_BUILD_BACKEND MAKE_PACKAGE_SCOPE FPC_TARGET CI_DEBUG | |
| prepare: sh .github/workflows/ci/vm-netbsd-prepare.sh | |
| run: bash .github/workflows/ci/vm-run-shared.sh | |
| dragonflybsd: | |
| name: DragonFlyBSD x86_64 | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 120 | |
| needs: setup | |
| if: contains(format(',{0},', needs.setup.outputs.enabled_targets), ',dragonflybsd,') | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| with: | |
| submodules: true | |
| - name: Build (DragonFlyBSD x86_64) | |
| uses: vmactions/dragonflybsd-vm@v1 | |
| env: | |
| FPC_TARGET: x86_64-dragonfly | |
| LD_LIBRARY_PATH_EXTRA: /usr/local/lib | |
| with: | |
| envs: FPC_VERSION LAZARUS_BRANCH LAZARUS_REPO MAKE_BUILD_BACKEND MAKE_PACKAGE_SCOPE FPC_TARGET LD_LIBRARY_PATH_EXTRA CI_DEBUG | |
| usesh: true | |
| prepare: sh .github/workflows/ci/vm-dragonfly-prepare.sh | |
| run: bash .github/workflows/ci/vm-run-shared.sh | |
| solaris: | |
| name: Solaris x86_64 | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 120 | |
| needs: setup | |
| if: contains(format(',{0},', needs.setup.outputs.enabled_targets), ',solaris,') | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| with: | |
| submodules: true | |
| - name: Build (Solaris x86_64) | |
| uses: vmactions/solaris-vm@v1 | |
| env: | |
| FPC_TARGET: x86_64-solaris | |
| with: | |
| envs: FPC_VERSION LAZARUS_BRANCH LAZARUS_REPO MAKE_BUILD_BACKEND MAKE_PACKAGE_SCOPE FPC_TARGET CI_DEBUG | |
| release: "11.4-gcc" | |
| usesh: true | |
| prepare: sh .github/workflows/ci/vm-solaris-prepare.sh | |
| run: bash .github/workflows/ci/vm-run-shared.sh |