# This is disabled (see the `if: ${{ false }}` condition) until we update to # Catch version 3. Note that that can't be done until mlpack has C++17 as a # minimum requirement. name: Update Catch on: workflow_dispatch: schedule: - cron: '0 10 1/16 * *' permissions: contents: read jobs: updateCatch: permissions: contents: write # for peter-evans/create-pull-request to create branch pull-requests: write # for peter-evans/create-pull-request to create a PR if: ${{ false }} # if: ${{ github.repository == 'mlpack/mlpack' }} runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Get Latest Catch Tagged Release id: catch-header run: | # Ping version information upstream. CATCH_RELEASE_JSON=$(curl -sL https://api.github.com/repos/catchorg/Catch2/releases/latest) CATCH_RELEASE_VERSION=$(jq -r ".tag_name" <<< "$CATCH_RELEASE_JSON" | tr -d v) echo ::set-output name=release_tag::$(echo $CATCH_RELEASE_VERSION) # Extract out version information from git repository. CATCH_VERSION_MAJOR=$(grep -i ".*#define CATCH_VERSION_MAJOR.*" src/mlpack/tests/catch.hpp | grep -o "[0-9]*") CATCH_VERSION_MINOR=$(grep -i ".*#define CATCH_VERSION_MINOR.*" src/mlpack/tests/catch.hpp | grep -o "[0-9]*") CATCH_VERSION_PATCH=$(grep -i ".*#define CATCH_VERSION_PATCH.*" src/mlpack/tests/catch.hpp | grep -o "[0-9]*") # Combine values to match release tag information. CATCH_VERSION_VALUE=${CATCH_VERSION_MAJOR}.${CATCH_VERSION_MINOR}.${CATCH_VERSION_PATCH} # Set the current release tag. echo ::set-output name=current_tag::$(echo $CATCH_VERSION_VALUE) - name: Update Catch if: steps.catch-header.outputs.current_tag != steps.catch-header.outputs.release_tag env: CURRENT_TAG: ${{ steps.catch-header.outputs.current_tag }} RELEASE_TAG: ${{ steps.catch-header.outputs.release_tag }} run: | # Delete the catch.hpp. rm -f src/mlpack/tests/catch.hpp # Download the release. curl -sL https://github.com/catchorg/Catch2/releases/latest/download/catch.hpp -o src/mlpack/tests/catch.hpp - name: Create Pull Request For Catch if: steps.catch-header.outputs.current_tag != steps.catch-header.outputs.release_tag uses: peter-evans/create-pull-request@v3 with: commit-message: Upgrade Catch to ${{ steps.catch-header.outputs.release_tag }} title: Upgrade Catch to ${{ steps.catch-header.outputs.release_tag }} body: | Updates [catchorg/Catch2](https://github.com/catchorg/Catch2) to ${{ steps.catch-header.outputs.release_tag }}. Auto-generated by [create-pull-request](https://github.com/peter-evans/create-pull-request). labels: update dependencies, automated PR branch: catch-header-updates-${{ steps.catch-header.outputs.release_tag }}