From 41ba55619c93bde07020c1791800b22faea47107 Mon Sep 17 00:00:00 2001 From: Slava Semushin Date: Fri, 5 Jan 2024 20:46:38 +0700 Subject: [PATCH] ci: introduce a workflow for populating Maven cache that can be shared amongst workflows Part of #1656 [skip ci] --- .github/dependabot.yml | 1 + .github/workflows/populate-maven-cache.yml | 52 ++++++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 .github/workflows/populate-maven-cache.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 086e8a7c8..db3db1e44 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -38,6 +38,7 @@ updates: directory: "/" # https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#allow allow: + - dependency-name: "actions/cache" - dependency-name: "actions/checkout" - dependency-name: "actions/setup-java" - dependency-name: "actions/upload-artifact" diff --git a/.github/workflows/populate-maven-cache.yml b/.github/workflows/populate-maven-cache.yml new file mode 100644 index 000000000..983771f44 --- /dev/null +++ b/.github/workflows/populate-maven-cache.yml @@ -0,0 +1,52 @@ +name: Populates a cache for Maven + +on: + push: + # https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#onpull_requestpull_request_targetbranchesbranches-ignore + branches: + - master + # https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#onpushpull_requestpull_request_targetpathspaths-ignore + paths: + - pom.xml + - .github/workflows/populate-maven-cache.yml + # https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#onworkflow_dispatch + workflow_dispatch: + +# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions +permissions: + contents: read # for "git clone" + +defaults: + # https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#defaultsrun + run: + # Enable fail-fast behavior using set -eo pipefail + # https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#exit-codes-and-error-action-preference + shell: bash + +jobs: + populate-maven-cache: + name: Populate Maven cache + # https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idruns-on + runs-on: ubuntu-20.04 + steps: + + - name: Clone source code + uses: actions/checkout@v4.1.1 # https://github.com/actions/checkout + with: + # Whether to configure the token or SSH key with the local git config. Default: true + persist-credentials: false + + - name: Install JDK + uses: actions/setup-java@v4.0.0 # https://github.com/actions/setup-java + with: + distribution: 'adopt' # https://github.com/actions/setup-java#supported-distributions + java-version: '8' # https://github.com/actions/setup-java#supported-version-syntax + + - name: Restore existing cache copy + uses: actions/cache@v3.3.2 # https://github.com/actions/cache + with: + key: maven-repository-${{ hashFiles('pom.xml') }} + path: ~/.m2/repository + + - name: Download all dependencies + run: mvn dependency:resolve dependency:resolve-plugins