# SPDX-License-Identifier: LGPL-2.1-or-later # *************************************************************************** # * * # * Copyright (c) 2023 0penBrain. * # * * # * This file is part of FreeCAD. * # * * # * FreeCAD is free software: you can redistribute it and/or modify it * # * under the terms of the GNU Lesser General Public License as * # * published by the Free Software Foundation, either version 2.1 of the * # * License, or (at your option) any later version. * # * * # * FreeCAD is distributed in the hope that it will be useful, but * # * WITHOUT ANY WARRANTY; without even the implied warranty of * # * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * # * Lesser General Public License for more details. * # * * # * You should have received a copy of the GNU Lesser General Public * # * License along with FreeCAD. If not, see * # * . * # * * # *************************************************************************** # This action aims at speeding up CI and reduce dependency to external resources # by creating a cache of Libpack needed files then using it for CI runs rather # than downloading every time. # # If it needs to be updated to another version, the process it to change # 'downloadpath' and 'version' inputs below then delete the existing cache # from Github interface so a new one is generated using new values. name: getLibpack description: "Windows: tries to get a cached version of Libpack and create one if fails" inputs: libpackdir: description: "Directory where libpack files shall be stored" required: true # Below inputs shall generally not be provided as they won't be used if a cached version exists # They are mainly used because Github do not support adding env variables in a composite action libpackdownloadurl: description: "URL where to download libpack" required: false default: https://github.com/FreeCAD/FreeCAD-LibPack/releases/download/3.1.1.3/LibPack-1.1.0-v3.1.1.3-Release.7z libpackname: description: "Libpack name (once downloaded)" required: false default: LibPack-1.1.0-v3.1.1.3-Release runs: using: "composite" steps: - name: Create destination directory shell: bash run: | mkdir -p ${{ inputs.libpackdir }} - name: Get cached version uses: actions/cache/restore@v4 id: getCached with: path: ${{ inputs.libpackdir }} key: libpackforwin-${{ inputs.libpackname }} - name: Download libpack shell: bash if: steps.getCached.outputs.cache-hit != 'true' run: | curl -L -o libpack.7z ${{ inputs.libpackdownloadurl }} 7z x libpack.7z -o"libpacktemp" -r -y mv libpacktemp/${{ inputs.libpackname }}/* ${{ inputs.libpackdir }} rm -rf libpacktemp - name: Save version to cache if: steps.getCached.outputs.cache-hit != 'true' uses: actions/cache/save@v4 with: path: ${{ inputs.libpackdir }} key: ${{ steps.getCached.outputs.cache-primary-key }}