diff --git a/README.md b/README.md index 6418d506..ba97b6bb 100644 --- a/README.md +++ b/README.md @@ -27,6 +27,7 @@ Opinionated Github Actions and Workflows to make building, testing, and maintain | ------------------------------------------------------ | ----------------------------------------------------------------------------------------- | | [Unit Test](./unit-test/README.md) | A Github Action that runs the Unit Tests a Magento Package | | [Fix Magento Install](./fix-magento-install/README.md) | A Github Action that fixes Magento before `composer install` | +| [Cache Magento](./cache-magento/README.md) | A Github Action that creates a composer cache for a Magento extension or store. | | [Get Magento Version](./get-magento-version/README.md) | A Github Action that computes the installed Magento version. | | [Installation Test](./installation-test/README.md) | A Github Action that tests the installability of a Magento Package | | [Supported Version](./supported-version/README.md) | A Github Action that computes the currently supported Github Actions Matrix for Magento 2 | \ No newline at end of file diff --git a/cache-magento/README.md b/cache-magento/README.md new file mode 100644 index 00000000..4aa7e80f --- /dev/null +++ b/cache-magento/README.md @@ -0,0 +1,43 @@ +# Cache Magento Action + +A Github Action that creates a composer cache for a Magento extension or store. + +## Inputs + + +See the [action.yml](./action.yml) + +| Input | Description | Required | Default | +| ------------------ | -------------------------------------------------------------------------------------- | -------- | ------------ | +| composer_cache_key | A key to version the composer cache. Can be incremented if you need to bust the cache. | false | '__graycore' | +| mode | "The mode for setup, one of: `extension` or `store`." | true | N/A | +| magento_directory | The Magento directory for the action to run against. | true | N/A | + +### Usage + +```yml +name: Magento Cache + +on: + push: + branches: + - main + pull_request: + branches: + - main + +jobs: + showcase_cache: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: graycoreio/github-actions-magento2/cache-magento@main + with: + magento_directory: $GITHUB_WORKSPACE + mode: 'store' + id: cache-magento + + - run: composer install + shell: bash + name: Composer install +``` \ No newline at end of file diff --git a/cache-magento/action.yml b/cache-magento/action.yml new file mode 100644 index 00000000..9ff856b3 --- /dev/null +++ b/cache-magento/action.yml @@ -0,0 +1,47 @@ +name: "Cache Magento 2 for Pipeline" +author: "Graycore" +description: "A Github Action that creates a composer cache for a Magento extension or store." + +inputs: + composer_cache_key: + required: false + default: "__graycore" + description: A key to version the composer cache. Can be incremented if you need to bust the cache. + + mode: + required: true + description: "The mode for setup, one of: `extension` or `store`." + +outputs: + cache-hit: + description: "A boolean value to indicate an exact match was found for the key" + value: ${{ steps.cache-magento-cache.outputs.cache-hit }} + +runs: + using: "composite" + steps: + - name: Get Composer Cache Directory + shell: bash + id: cache-magento-composer-cache + run: | + echo "dir=$(composer config cache-files-dir --global)" >> $GITHUB_OUTPUT + + - run: echo "::set-output name=version::$(php -v | awk 'NR==1{print $2}')" + shell: bash + id: cache-magento-get-php-version + + - run: echo "::set-output name=version::$(composer --version | awk '{print $3}')" + shell: bash + name: Compute Composer Version + id: cache-magento-get-composer-version + + - name: "Cache Composer Packages" + uses: actions/cache@v3 + id: cache-magento-cache + with: + key: "composer | v5.8 | ${{ inputs.composer_cache_key }} | ${{ steps.cache-magento-get-composer-version.outputs.version }} | ${{ steps.cache-magento-get-php-version.outputs.version }}" + path: ${{ steps.cache-magento-composer-cache.outputs.dir }} + +branding: + icon: "code" + color: "green"