Avoid hdiutils resource busy error in macos 13 builds #3650
Workflow file for this run
This file contains 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: ๐ง Linux | |
on: | |
push: | |
branches: | |
- master | |
- release-** | |
pull_request: | |
release: | |
types: ['published'] | |
jobs: | |
build: | |
name: build (linux) | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: ๐ฃ Checkout | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Initialize CodeQL | |
uses: github/codeql-action/init@v3 | |
with: | |
languages: 'c-cpp' | |
- name: ๐พ Prepare variables | |
id: vars | |
run: | | |
./scripts/ci/env_gh.sh | |
BUILD_ROOT="/home/runner" | |
echo "BUILD_ROOT=${BUILD_ROOT}" >> $GITHUB_ENV | |
echo "BUILD_TYPE=Release" >> $GITHUB_ENV | |
echo "CMAKE_BUILD_DIR=${BUILD_ROOT}/builddir" >> $GITHUB_ENV | |
- name: ๐ Setup ruby | |
uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: '3.2' # Not needed with a .ruby-version file | |
bundler-cache: true # runs 'bundle install' and caches installed gems automatically | |
- name: ๐ฉ Install CMake and Ninja | |
uses: lukka/get-cmake@latest | |
- name: ๐จ Prepare build env | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y gperf autopoint '^libxcb.*-dev' libx11-xcb-dev libegl1-mesa libegl1-mesa-dev libgl1-mesa-dev libglu1-mesa-dev mesa-common-dev libxrender-dev libxi-dev libxkbcommon-dev libxkbcommon-x11-dev libxrandr-dev libxxf86vm-dev autoconf-archive libgstreamer-gl1.0-0 libgstreamer-plugins-base1.0-0 libfuse2 libpulse-dev libcups2-dev nasm | |
# Required to run unit tests on linux | |
- name: Install linuxdeploy | |
uses: miurahr/install-linuxdeploy-action@v1 | |
with: | |
dir: ${{ env.BUILD_ROOT }} | |
plugins: qt appimage | |
- name: ๐ฑ Install dependencies and generate project files | |
run: | | |
source ./scripts/version_number.sh | |
source ./scripts/ci/generate-version-details.sh | |
cmake -S "${{ github.workspace }}" \ | |
-B "${CMAKE_BUILD_DIR}" \ | |
-G Ninja \ | |
-D CMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} \ | |
-D WITH_VCPKG=ON \ | |
-D WITH_SPIX=ON \ | |
-D WITH_NFC=OFF \ | |
-D APP_VERSION="${APP_VERSION}" \ | |
-D APP_VERSION_STR="${APP_VERSION_STR}" \ | |
-D APP_PACKAGE_NAME="${APP_PACKAGE_NAME}" \ | |
-D ENABLE_TESTS=ON \ | |
-D NUGET_USERNAME=opengisch \ | |
-D NUGET_TOKEN=${{ secrets.GITHUB_TOKEN }} \ | |
-D SENTRY_DSN=${{ secrets.SENTRY_DSN }} \ | |
-D SENTRY_ENV="${APP_ENV}" \ | |
-D CMAKE_INSTALL_PREFIX=/usr \ | |
-D LINUXDEPLOY_EXECUTABLE=${{ env.BUILD_ROOT }}/linuxdeploy-x86_64.AppImage | |
- name: ๐ Upload dep build logs | |
uses: actions/upload-artifact@v4 | |
if: failure() | |
with: | |
name: build-logs-x64-linux | |
path: | | |
${{ env.CMAKE_BUILD_DIR }}/**/*.log | |
- name: ๐ Build | |
run: | | |
xvfb-run cmake --build "${{ env.CMAKE_BUILD_DIR }}" --config ${{ env.BUILD_TYPE }} | |
- name: Package | |
run: | | |
export LD_LIBRARY_PATH="${{ env.CMAKE_BUILD_DIR }}/vcpkg_installed/x64-linux/lib/":${LD_LIBRARY_PATH} | |
cmake --build "${{ env.CMAKE_BUILD_DIR }}" --target bundle --config ${{ env.BUILD_TYPE }} | |
echo "ARTIFACT_PATHNAME=${{ env.CMAKE_BUILD_DIR }}/QField-x86_64.AppImage" >> $GITHUB_ENV | |
echo "ARTIFACT_NAME=qfield-${{ env.CI_PACKAGE_FILE_SUFFIX }}-linux-x64.AppImage" >> $GITHUB_ENV | |
- name: ๐ฆ Upload package | |
if: ${{ env.ARTIFACT_NAME != null }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: "QField-dev-x64-linux-${{ env.BUILD_TYPE }}" | |
path: ${{ env.ARTIFACT_PATHNAME }} | |
- name: ๐งซ Test | |
env: | |
PROJ_LIB: ${{ env.CMAKE_BUILD_DIR }}/vcpkg_installed/x64-linux/share/proj | |
run: | | |
pip install -r "${{ github.workspace }}/test/spix/requirements.txt" | |
cd "${{ env.CMAKE_BUILD_DIR }}" | |
xvfb-run --server-args="-screen 0 640x480x24" ctest --output-on-failure -C ${{ env.BUILD_TYPE }} | |
- name: ๐ Upload package logs | |
uses: actions/upload-artifact@v4 | |
if: failure() | |
with: | |
name: package-logs-x64-linux | |
path: ${{ env.BUILD_ROOT }}/builddir/_CPack_Packages/**/*.log | |
- name: ๐ Upload test report | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: "test-report-x64-linux-${{ env.BUILD_TYPE }}" | |
path: "${{ env.CMAKE_BUILD_DIR }}/report" | |
- name: ๐ Upload release asset | |
if: github.event_name == 'release' && startsWith(github.ref, 'refs/tags/v') && env.ARTIFACT_NAME != null | |
uses: shogo82148/actions-upload-release-asset@v1 | |
with: | |
upload_url: ${{ github.event.release.upload_url }} | |
asset_path: ${{ env.ARTIFACT_PATHNAME }} | |
asset_name: ${{ env.ARTIFACT_NAME }} | |
overwrite: true | |
- name: ๐ฎ Upload debug symbols | |
if: github.event_name == 'release' && startsWith(github.ref, 'refs/tags/v') && env.ARTIFACT_NAME != null | |
env: | |
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} | |
SENTRY_ORG_SLUG: opengisch | |
SENTRY_PROJECT_SLUG: qfield | |
run: | | |
bundle exec fastlane run sentry_upload_dif path:${{ env.CMAKE_BUILD_DIR }} | |
- name: Perform CodeQL Analysis | |
uses: github/codeql-action/analyze@v3 | |
with: | |
category: "/language:c-cpp" |