added support for extra qt install dir #156
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: Build release packages | |
on: | |
push: | |
branches-ignore: | |
- 'gerrit/*' | |
tags: | |
- 'v*' | |
jobs: | |
build-linux: | |
name: ${{ matrix.config.name }} | |
runs-on: ubuntu-latest | |
timeout-minutes: 60 | |
strategy: | |
fail-fast: false | |
matrix: | |
config: | |
- { | |
name: 'Build on Linux (gcc)', | |
options: 'qbs.installPrefix:"" | |
modules.cpp.compilerWrapper:ccache | |
modules.qbsbuildconfig.enableAddressSanitizer:false | |
project.withTests:false | |
modules.qbsbuildconfig.enableUnitTests:false | |
modules.qbsbuildconfig.enableBundledQt:true | |
products.qbs_archive.targetName:qbs-linux-${{ github.run_id }}', | |
script: './scripts/build-qbs-with-qbs.sh', | |
cacheid: 'gcc-release', | |
} | |
env: | |
BUILD_OPTIONS: ${{ matrix.config.options }} | |
WITH_TESTS: 0 | |
steps: | |
- uses: actions/checkout@v1 | |
- name: Create .ccache dir | |
run: mkdir -p ~/.ccache | |
- name: test | |
run: echo ${{ github.ref }} | |
- name: ccache cache files | |
uses: actions/cache@v4 | |
with: | |
path: ~/.ccache | |
key: ${{ runner.os }}-${{ matrix.config.cacheid }}-ccache | |
- name: Pull the Docker Image | |
run: docker-compose pull jammy-qt6 | |
- name: Print ccache stats | |
run: docker-compose run jammy-qt6 ccache -s | |
- name: Build Qbs | |
run: docker-compose run jammy-qt6 ${{ matrix.config.script }} | |
- name: Print ccache stats | |
run: docker-compose run jammy-qt6 ccache -s | |
- name: Get archive name | |
id: get-archive-name | |
run: echo "archive-name=$(git describe)" >> $GITHUB_OUTPUT | |
- name: Upload artifacts | |
uses: 'actions/upload-artifact@v4' | |
with: | |
name: qbs-linux-${{ github.run_id }}.tar.gz | |
path: release/qbs-linux-${{ github.run_id }}.tar.gz | |
build-macos: | |
name: Build on macOS | |
runs-on: macos-12 | |
timeout-minutes: 60 | |
env: | |
BUILD_OPTIONS: | | |
qbs.installPrefix:"" | |
modules.cpp.compilerWrapper:ccache | |
project.withTests:false | |
modules.qbsbuildconfig.enableUnitTests:false | |
modules.qbsbuildconfig.enableAddressSanitizer:false | |
modules.qbsbuildconfig.enableBundledQt:true | |
products.qbs_archive.targetName:qbs-macos-${{ github.run_id }} | |
WITH_TESTS: 0 | |
steps: | |
- uses: actions/checkout@v1 | |
- name: Create .ccache dir | |
run: mkdir -p ~/.ccache | |
- name: ccache cache files | |
uses: actions/cache@v4 | |
with: | |
path: ~/.ccache | |
key: ${{ runner.os }}-release-ccache | |
- name: Install required packages | |
run: | | |
brew install ccache p7zip | |
python3 -m pip install --user beautifulsoup4 lxml | |
- name: Install Qt | |
uses: ./.github/actions/download-qt | |
with: | |
toolchain: clang_64 | |
- name: Install Qt Creator | |
uses: ./.github/actions/download-qtc | |
- name: Setup Qbs | |
run: | | |
qbs setup-toolchains --detect | |
qbs setup-qt --detect | |
qbs config profiles.qt.baseProfile xcode_13_2_1-macosx-x86_64 | |
qbs config defaultProfile qt | |
qbs config --list | |
- name: Print ccache stats | |
run: ccache -s | |
- name: Build Qbs | |
run: scripts/build-qbs-with-qbs.sh | |
- name: Print ccache stats | |
run: ccache -s | |
- name: Upload artifacts | |
uses: 'actions/upload-artifact@v4' | |
with: | |
name: qbs-macos-${{ github.run_id }}.tar.gz | |
path: release/qbs-macos-${{ github.run_id }}.tar.gz | |
build-windows-with-docker: | |
name: Build on Windows (Docker) | |
runs-on: windows-2019 | |
timeout-minutes: 60 | |
env: | |
WITH_TESTS: 0 | |
QT_ASSUME_STDERR_HAS_CONSOLE: 1 | |
CLCACHE_DIR: C:\.ccache | |
steps: | |
- uses: actions/checkout@v1 | |
- name: Create .ccache dir | |
run: mkdir -p ~/.ccache | |
shell: bash | |
- name: clcache cache files | |
uses: actions/cache@v4 | |
with: | |
path: ~/.ccache | |
key: ${{ runner.os }}-release-msvc-docker-clcache | |
- name: Pull the Windows Image | |
run: docker-compose pull windows | |
- name: Print clcache stats | |
run: docker-compose run --rm windows clcache -s | |
- name: Build Qbs | |
run: > | |
docker-compose run --rm windows qbs build | |
-p dist | |
qbs.buildVariant:release | |
modules.cpp.compilerWrapper:clcache | |
project.withTests:false | |
modules.qbsbuildconfig.enableBundledQt:true | |
modules.qbsbuildconfig.enableUnitTests:false | |
modules.cpp.treatWarningsAsErrors:true | |
project.withDocumentation:true | |
config:release profile:qt64 | |
- name: Print clcache stats | |
run: docker-compose run --rm windows clcache -s | |
- name: Get archive name | |
id: get-archive-name | |
run: echo "archive-name=$(git describe)" >> $GITHUB_OUTPUT | |
- name: Upload artifacts | |
uses: 'actions/upload-artifact@v4' | |
with: | |
name: qbs-windows-${{ github.run_id }} | |
path: | | |
release/qbs.*.nupkg | |
release/qbs-windows-*.zip | |
create-archives: | |
name: Create Archives | |
runs-on: ubuntu-latest | |
needs: [build-linux, build-windows-with-docker] | |
steps: | |
- uses: actions/checkout@v1 | |
with: | |
submodules: true | |
- name: Get version name | |
id: get-version-name | |
run: echo "version-name=$(cat VERSION)" >> $GITHUB_OUTPUT | |
- name: Create directories | |
run: | | |
mkdir release | |
mkdir tmp | |
- name: Copy sources | |
run: rsync -av --exclude='.git/' --exclude='tmp/' . ./tmp/qbs-src-${{ steps.get-version-name.outputs.version-name }} | |
- name: Zip Archive | |
run: | | |
cd tmp/ | |
zip -r ../release/qbs-src-${{ steps.get-version-name.outputs.version-name }}.zip qbs-src-${{ steps.get-version-name.outputs.version-name }} | |
- name: Tarball Archive | |
run: | | |
cd tmp/ | |
tar czf ../release/qbs-src-${{ steps.get-version-name.outputs.version-name }}.tar.gz qbs-src-${{ steps.get-version-name.outputs.version-name }} | |
- name: Download Linux artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
name: qbs-linux-${{ github.run_id }}.tar.gz | |
path: ./tmp | |
- name: Repack Linux artifact | |
run: | | |
mkdir -p tmp/qbs-linux-x86_64-${{ steps.get-version-name.outputs.version-name }} | |
tar xzf ./tmp/qbs-linux-${{ github.run_id }}.tar.gz -C tmp/qbs-linux-x86_64-${{ steps.get-version-name.outputs.version-name }} | |
cd tmp/ | |
tar czf ../release/qbs-linux-x86_64-${{ steps.get-version-name.outputs.version-name }}.tar.gz qbs-linux-x86_64-${{ steps.get-version-name.outputs.version-name }} | |
- name: Download Windows artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
name: qbs-windows-${{ github.run_id }} | |
path: ./tmp/release | |
- name: Copy Windows artifacts | |
run: | | |
cp ./tmp/release/qbs.*.nupkg ./release | |
cp ./tmp/release/qbs-windows-x86_64-*.zip ./release | |
- name: Copy changelog | |
run: cp changelogs/changes-${{ steps.get-version-name.outputs.version-name }}.md release || echo "changelog not found" | |
- name: Generate checksums | |
run: | | |
cd release/ | |
find . -type f -printf '%f\n' | grep -v .txt | xargs md5sum > md5sums.txt | |
find . -type f -printf '%f\n' | grep -v .txt | xargs sha256sum > sha256sums.txt | |
- name: Get archive name | |
id: get-archive-name | |
run: echo "archive-name=$(git describe)" >> $GITHUB_OUTPUT | |
- name: Upload artifacts | |
uses: 'actions/upload-artifact@v4' | |
with: | |
name: qbs-release-${{ steps.get-archive-name.outputs.archive-name }} | |
path: | | |
release/qbs-src-*.zip | |
release/qbs-src-*.tar.gz | |
release/qbs-linux-*.tar.gz | |
release/qbs.*.nupkg | |
release/qbs-windows-x86_64-*.zip | |
release/changes-*.md | |
release/md5sums.txt | |
release/sha256sums.txt | |