mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-23 00:02:38 -05:00
add cache to OGC workflow for Docker build and QGIS build (#43897)
* add cache to OGC workflow for Docker build and QGIS build * fix context * Update ogc.yml * fix context
This commit is contained in:
parent
61c79736d0
commit
b8d0b2bd17
@ -6,6 +6,7 @@ ENV DEBIAN_FRONTEND noninteractive
|
||||
RUN apt-get update \
|
||||
&& apt-get upgrade -y \
|
||||
&& apt-get install -y \
|
||||
ccache \
|
||||
cmake \
|
||||
ninja-build \
|
||||
clang \
|
||||
|
@ -3,7 +3,16 @@
|
||||
mkdir /usr/src/qgis/build
|
||||
cd /usr/src/qgis/build || exit 1
|
||||
|
||||
export CCACHE_TEMPDIR=/tmp
|
||||
# Github workflow cache max size is 2.0, but ccache data get compressed (roughly 1/5?)
|
||||
ccache -M 2.0G
|
||||
|
||||
# Temporarily uncomment to debug ccache issues
|
||||
# export CCACHE_LOGFILE=/tmp/cache.debug
|
||||
ccache -z
|
||||
|
||||
cmake -GNinja \
|
||||
-DUSE_CCACHE=ON \
|
||||
-DWITH_QUICK=OFF \
|
||||
-DWITH_3D=OFF \
|
||||
-DWITH_STAGED_PLUGINS=OFF \
|
||||
@ -34,3 +43,6 @@ cmake -GNinja \
|
||||
..
|
||||
|
||||
ninja
|
||||
|
||||
echo "ccache statistics"
|
||||
ccache -s
|
||||
|
45
.github/workflows/ogc.yml
vendored
45
.github/workflows/ogc.yml
vendored
@ -36,13 +36,50 @@ jobs:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@master
|
||||
|
||||
- name: Setup build dependencies
|
||||
run: |
|
||||
docker build -t qgis_server_deps -f .ci/ogc/Dockerfile .ci/ogc/
|
||||
- name: Prepare build cache for pull request
|
||||
uses: pat-s/always-upload-cache@v2.1.5
|
||||
if: github.event_name == 'pull_request'
|
||||
with:
|
||||
path: /home/runner/QGIS/.ccache
|
||||
key: build-ccache-ogc-${{ github.actor }}-${{ github.head_ref }}-${{ github.sha }}
|
||||
# The head_ref or source branch of the pull request in a workflow run.
|
||||
# The base_ref or target branch of the pull request in a workflow run.
|
||||
restore-keys: |
|
||||
build-ccache-ogc-${{ github.actor }}-${{ github.head_ref }}-
|
||||
build-ccache-ogc-refs/heads/${{ github.base_ref }}-
|
||||
build-ccache-ogc-refs/heads/master-
|
||||
|
||||
- name: Prepare build cache for branch/tag
|
||||
# use a fork of actions/cache@v2 to upload cache even when the build or test failed
|
||||
uses: pat-s/always-upload-cache@v2.1.5
|
||||
if: github.event_name != 'pull_request'
|
||||
with:
|
||||
path: /home/runner/QGIS/.ccache
|
||||
# The branch or tag ref that triggered the workflow run. For branches this in the format refs/heads/<branch_name>, and for tags it is refs/tags/<tag_name>
|
||||
key: build-ccache-ogc-${{ github.ref }}-${{ github.sha }}
|
||||
restore-keys: |
|
||||
build-ccache-ogc-${{ github.ref }}-
|
||||
build-ccache-ogc-refs/heads/master-
|
||||
|
||||
- name: Build Docker Container with Build Environment
|
||||
id: docker-build
|
||||
uses: whoan/docker-build-with-cache-action@v5
|
||||
with:
|
||||
username: ${{ github.actor }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
registry: docker.pkg.github.com
|
||||
image_name: qgis-deps-ogc
|
||||
context: .ci/ogc
|
||||
dockerfile: Dockerfile
|
||||
push_git_tag: true
|
||||
push_image_and_stages: on:push
|
||||
pull_image_and_stages: ${{ github.event_name != 'workflow_dispatch' }}
|
||||
|
||||
- name: Run build
|
||||
run: |
|
||||
docker run -v $(pwd):/usr/src/qgis qgis_server_deps /usr/src/qgis/.ci/ogc/build.sh
|
||||
docker run -v $(pwd):/usr/src/qgis -v /home/runner/QGIS/.ccache:/root/.ccache ${DOCKER_IMAGE} /usr/src/qgis/.ci/ogc/build.sh
|
||||
env:
|
||||
DOCKER_IMAGE: ${{ steps.docker-build.outputs.FULL_IMAGE_NAME }}
|
||||
|
||||
- name: Install pyogctest
|
||||
run: |
|
||||
|
Loading…
x
Reference in New Issue
Block a user