Trigger CI #21
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
| # SPDX-FileCopyrightText: Copyright (C) swift Project Community / Contributors | |
| # SPDX-License-Identifier: CC0-1.0 | |
| name: Build swift | |
| on: | |
| push: | |
| workflow_dispatch: # manually triggered | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| env: | |
| do_symbols: ${{ github.event_name == 'merge_group' }} | |
| qt_version: &qt_version 6.11.1 | |
| bitrock_version: qt-professional-25.10.1 | |
| bitrock_url: https://releases.installbuilder.com/installbuilder | |
| installbuilder_hash_win: f92b1741c78b8f024473f55057b26107c8ed9cc1ca583eb9323d0023a8024e00 | |
| installbuilder_hash_linux: 3dff24cf94af17158cbcb16af41ecf0bb5060ba97d052597f15b987bd5e5b43a | |
| installbuilder_hash_macos: bffa8b2663c6e9aaaa1ed7cdb41a874d34ff89f22adfab419e172915f8f4ce57 | |
| externals: swift-project/externals | |
| externals_sha: e1f1743ba159e11b0c065ea8f1ae1a0e91e3bf39 | |
| jobs: | |
| preBuild: | |
| runs-on: ubuntu-24.04 | |
| outputs: | |
| version: ${{ steps.version.outputs.value }} | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 | |
| with: | |
| fetch-depth: 0 | |
| - name: Get version number | |
| id: version | |
| run: | | |
| echo "value=$(python3 -u scripts/utils.py --version)" >>$GITHUB_OUTPUT | |
| - name: Remove artifacts | |
| uses: swift-project/delete-artifact@swift | |
| with: | |
| name: | | |
| xswiftbus-thin-* | |
| xswiftbus-fat-* | |
| swiftsymbols-* | |
| swiftinstaller-* | |
| failOnError: false | |
| warnIfNotFound: false | |
| # buildLinux: | |
| # runs-on: ubuntu-24.04 | |
| # needs: [preBuild] | |
| # env: | |
| # BACKTRACE_SYMBOL_TOKEN: ${{ secrets.BACKTRACE_SYMBOL_TOKEN }} | |
| # BACKTRACE_MINIDUMP_TOKEN: ${{ secrets.BACKTRACE_MINIDUMP_TOKEN }} | |
| # BITROCK_BUILDER: ~/installbuilder/bin/builder | |
| # SCCACHE_BUCKET: swift | |
| # SCCACHE_ENDPOINT: https://swift-build-cache.ltoenning.de | |
| # SCCACHE_REGION: garage | |
| # AWS_EC2_METADATA_DISABLED: true | |
| # AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
| # AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
| # SCCACHE_S3_NO_CREDENTIALS: false | |
| # steps: | |
| # - name: Install Qt | |
| # uses: jurplel/install-qt-action@48d3ad6db93f3627c8ee7a0454bc6f3744f7e730 | |
| # with: | |
| # version: ${{ env.qt_version }} | |
| # modules: 'qtmultimedia' | |
| # aqtsource: 'git+https://github.com/miurahr/aqtinstall.git@8c3695d4a4e1ceabf6a74dc6c79681656dc6b74b' | |
| # cache: true | |
| # - uses: cargo-bins/cargo-binstall@732870f031d2fb36309d0deaf36abcc704a7be65 | |
| # with: | |
| # version: "1.20.1" | |
| # - name: Cache InstallBuilder | |
| # id: cache-bitrock | |
| # uses: actions/cache@caa296126883cff596d87d8935842f9db880ef25 | |
| # with: | |
| # path: ~/installbuilder.run | |
| # key: installbuilder-${{ env.bitrock_version }}-linux-x64 | |
| # - name: Download InstallBuilder | |
| # if: steps.cache-bitrock.outputs.cache-hit != 'true' | |
| # run: | | |
| # wget --retry-connrefused -t 10 -w 10 -T 60 -O ~/installbuilder.run ${{ env.bitrock_url }}/installbuilder-${{ env.bitrock_version }}-linux-x64-installer.run | |
| # echo "${{ env.installbuilder_hash_linux }} $HOME/installbuilder.run" | sha256sum -c - | |
| # - name: Install InstallBuilder | |
| # run: | | |
| # chmod 700 ~/installbuilder.run | |
| # ~/installbuilder.run --mode unattended --prefix ~/installbuilder | |
| # cat >~/license.xml <<EOF | |
| # $BITROCK_LICENSE | |
| # EOF | |
| # env: | |
| # BITROCK_LICENSE: ${{ secrets.BITROCK_LICENSE }} | |
| # - name: Install dependencies | |
| # run: | | |
| # sudo apt-get -y install dbus-x11 libglu1-mesa-dev libpulse-dev libdbus-1-dev ninja-build | |
| # pip3 install requests conan==2.29.1 | |
| # cargo binstall sccache | |
| # - name: Start sccache | |
| # run: | | |
| # sccache --start-server | |
| # - name: Checkout repository | |
| # uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 | |
| # with: | |
| # submodules: true | |
| # fetch-depth: 0 | |
| # - name: Checkout externals | |
| # uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 | |
| # env: | |
| # EXTERNALS_PAT: ${{ secrets.EXTERNALS_PAT }} | |
| # with: | |
| # repository: ${{ env.externals }} | |
| # ref: ${{ env.externals_sha }} | |
| # token: ${{ env.EXTERNALS_PAT }} | |
| # path: 'third_party/externals' | |
| # - name: Install conan dependencies | |
| # shell: bash | |
| # env: | |
| # ARTIFACTORY_USER: ${{ secrets.ARTIFACTORY_USER }} | |
| # ARTIFACTORY_TOKEN: ${{ secrets.ARTIFACTORY_TOKEN }} | |
| # run: | | |
| # conan remote disable conancenter | |
| # conan remote add swift https://artifactory.swift-project.org/artifactory/api/conan/conan-local | |
| # conan remote login swift "$ARTIFACTORY_USER" --password "$ARTIFACTORY_TOKEN" | |
| # conan install . --output-folder=build_conan --deployer=full_deploy -pr:h=ci/profile_linux -pr:b=ci/profile_linux | |
| # - name: Start DBus session bus | |
| # run: | | |
| # dbus-launch --sh-syntax | tee session.sh | |
| # eval $(cat session.sh) | |
| # echo "DBUS_SESSION_BUS_ADDRESS=$DBUS_SESSION_BUS_ADDRESS" >>$GITHUB_ENV | |
| # - name: Create Vatsim key file | |
| # run: | | |
| # cat >vatsim.json <<EOF | |
| # { "vatsim": { "id": "$VATSIM_ID", "key": "$VATSIM_KEY" } } | |
| # EOF | |
| # env: | |
| # VATSIM_ID: ${{ secrets.VATSIM_ID }} | |
| # VATSIM_KEY: ${{ secrets.VATSIM_KEY }} | |
| # - uses: swift-project/setup-cpp@swift | |
| # - name: Build swift (without symbols) | |
| # if: ${{ env.do_symbols != 'true' }} | |
| # run: | | |
| # python3 -u scripts/build.py -w 64 -t gcc | |
| # - name: Build swift (with symbols) | |
| # if: ${{ env.do_symbols == 'true' }} | |
| # run: | | |
| # python3 -u scripts/build.py -w 64 -t gcc --upload-symbols | |
| # - name: Stop sccache | |
| # run: | | |
| # sccache --stop-server | |
| # - name: Upload installer | |
| # uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a | |
| # with: | |
| # name: swiftinstaller-linux-64-${{ needs.preBuild.outputs.version }} | |
| # path: ${{ github.workspace }}/swiftinstaller-* | |
| # - name: Upload symbols | |
| # uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a | |
| # if: ${{ env.do_symbols == 'true' }} | |
| # with: | |
| # name: swiftsymbols-linux-64-${{ needs.preBuild.outputs.version }} | |
| # path: ${{ github.workspace }}/swiftsymbols-* | |
| # - name: Upload xswiftbus | |
| # uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a | |
| # with: | |
| # name: xswiftbus-thin-linux-64-${{ needs.preBuild.outputs.version }} | |
| # path: ${{ github.workspace }}/xswiftbus-* | |
| buildWin64: | |
| runs-on: windows-2025-vs2026 | |
| needs: [preBuild] | |
| env: | |
| BACKTRACE_SYMBOL_TOKEN: ${{ secrets.BACKTRACE_SYMBOL_TOKEN }} | |
| BACKTRACE_MINIDUMP_TOKEN: ${{ secrets.BACKTRACE_MINIDUMP_TOKEN }} | |
| BITROCK_BUILDER: "~/installbuilder/bin/builder-cli.exe" | |
| SCCACHE_BUCKET: swift | |
| SCCACHE_ENDPOINT: https://swift-build-cache.ltoenning.de | |
| SCCACHE_REGION: garage | |
| AWS_EC2_METADATA_DISABLED: true | |
| AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
| AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
| SCCACHE_S3_NO_CREDENTIALS: false | |
| SCCACHE_LOG: debug | |
| steps: | |
| - name: Install Qt | |
| uses: jurplel/install-qt-action@48d3ad6db93f3627c8ee7a0454bc6f3744f7e730 | |
| with: | |
| version: ${{ env.qt_version }} | |
| modules: 'qtmultimedia' | |
| arch: win64_msvc2022_64 | |
| aqtsource: 'git+https://github.com/miurahr/aqtinstall.git@8c3695d4a4e1ceabf6a74dc6c79681656dc6b74b' | |
| cache: true | |
| - name: Install Qt debug info | |
| uses: jurplel/install-qt-action@48d3ad6db93f3627c8ee7a0454bc6f3744f7e730 | |
| with: | |
| version: ${{ env.qt_version }} | |
| arch: win64_msvc2022_64 | |
| aqtsource: 'git+https://github.com/miurahr/aqtinstall.git@8c3695d4a4e1ceabf6a74dc6c79681656dc6b74b' | |
| cache: true | |
| modules: debug_info | |
| extra: --archives qtbase | |
| - uses: cargo-bins/cargo-binstall@732870f031d2fb36309d0deaf36abcc704a7be65 | |
| with: | |
| version: "1.20.1" | |
| - name: Cache InstallBuilder | |
| id: cache-bitrock | |
| uses: actions/cache@caa296126883cff596d87d8935842f9db880ef25 | |
| with: | |
| path: C:\installbuilder.exe | |
| key: installbuilder-${{ env.bitrock_version }}-windows-x64 | |
| - name: Download InstallBuilder | |
| if: steps.cache-bitrock.outputs.cache-hit != 'true' | |
| shell: C:\msys64\usr\bin\bash.exe -le {0} | |
| run: | | |
| wget --retry-connrefused -t 10 -w 10 -T 60 -O /c/installbuilder.exe ${{ env.bitrock_url }}/installbuilder-${{ env.bitrock_version }}-windows-x64-installer.exe | |
| echo "${{ env.installbuilder_hash_win }} /c/installbuilder.exe" | sha256sum -c - | |
| env: | |
| MSYSTEM: MSYS2 | |
| - name: Install InstallBuilder | |
| run: | | |
| start -wait "C:\installbuilder.exe" @("--mode", "unattended", "--prefix", "$HOME\installbuilder") | |
| echo >$HOME\license.xml @" | |
| $env:BITROCK_LICENSE | |
| "@ | |
| env: | |
| BITROCK_LICENSE: ${{ secrets.BITROCK_LICENSE }} | |
| - name: Install dependencies | |
| run: | | |
| pip install requests PyInstaller conan==2.29.1 | |
| cargo binstall sccache | |
| - name: Start sccache | |
| run: | | |
| sccache --start-server | |
| - name: Checkout repository | |
| uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 | |
| with: | |
| submodules: true | |
| fetch-depth: 0 | |
| - name: Checkout externals | |
| uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 | |
| env: | |
| EXTERNALS_PAT: ${{ secrets.EXTERNALS_PAT }} | |
| with: | |
| repository: ${{ env.externals }} | |
| ref: ${{ env.externals_sha }} | |
| token: ${{ env.EXTERNALS_PAT }} | |
| path: 'third_party/externals' | |
| - name: Install conan dependencies | |
| shell: bash | |
| env: | |
| ARTIFACTORY_USER: ${{ secrets.ARTIFACTORY_USER }} | |
| ARTIFACTORY_TOKEN: ${{ secrets.ARTIFACTORY_TOKEN }} | |
| run: | | |
| conan remote disable conancenter | |
| conan remote add swift https://artifactory.swift-project.org/artifactory/api/conan/conan-local | |
| conan remote login swift "$ARTIFACTORY_USER" --password "$ARTIFACTORY_TOKEN" | |
| conan install . --output-folder=build_conan --deployer=full_deploy -pr:h=ci/profile_win -pr:b=ci/profile_win | |
| - name: Create Vatsim key file | |
| run: | | |
| echo >vatsim.json @" | |
| { "vatsim": { "id": "$env:VATSIM_ID", "key": "$env:VATSIM_KEY" } } | |
| "@ | |
| env: | |
| VATSIM_ID: ${{ secrets.VATSIM_ID }} | |
| VATSIM_KEY: ${{ secrets.VATSIM_KEY }} | |
| - uses: swift-project/setup-cpp@swift | |
| - name: Build swift (without symbols) | |
| if: ${{ env.do_symbols != 'true' }} | |
| shell: cmd | |
| run: | | |
| build_conan\\build\\RelWithDebInfo\\generators\\conanrun.bat && python -u scripts/build.py -w 64 -t msvc | |
| - name: Build swift (with symbols) | |
| if: ${{ env.do_symbols == 'true' }} | |
| shell: cmd | |
| run: | | |
| build_conan\\build\\RelWithDebInfo\\generators\\conanrun.bat && python -u scripts/build.py -w 64 -t msvc --upload-symbols | |
| - name: Stop sccache | |
| run: | | |
| sccache --stop-server | |
| - name: Upload installer | |
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a | |
| with: | |
| name: swiftinstaller-windows-64-${{ needs.preBuild.outputs.version }} | |
| path: ${{ github.workspace }}/swiftinstaller-* | |
| - name: Upload symbols | |
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a | |
| if: ${{ env.do_symbols == 'true' }} | |
| with: | |
| name: swiftsymbols-windows-64-${{ needs.preBuild.outputs.version }} | |
| path: ${{ github.workspace }}/swiftsymbols-* | |
| - name: Upload xswiftbus | |
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a | |
| with: | |
| name: xswiftbus-thin-windows-64-${{ needs.preBuild.outputs.version }} | |
| path: ${{ github.workspace }}/xswiftbus-* |