Skip to content
Permalink
Browse files
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
  • Loading branch information
3nids committed Jun 24, 2021
1 parent 61c7973 commit b8d0b2bd17e2fbbcbf7403c87045ddf7e82159c1
Showing with 54 additions and 4 deletions.
  1. +1 −0 .ci/ogc/Dockerfile
  2. +12 −0 .ci/ogc/build.sh
  3. +41 −4 .github/workflows/ogc.yml
@@ -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
@@ -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: |

0 comments on commit b8d0b2b

Please sign in to comment.