A GitHub action used to zip file contents
Find a file
Monte Hellawell 113eed025d
Merge pull request #2 from WyriHaximus-labs/port-to-yaml
Reword usage to YAML and add more examples
2019-10-31 12:13:22 +00:00
Dockerfile Update action name 2019-07-18 12:09:25 +01:00
LICENSE Create LICENSE 2019-07-18 12:04:59 +01:00
README.md Reword usage to YAML and add more examples 2019-10-31 08:07:50 +01:00

Zip Files Action

This GitHub action exposes the zip command for use in building/archiving.

Usage

Zipping the directory vendor into vendor.zip:

- uses: montudor/action-zip@v0.1.0
  with:
    args: zip -qq -r ./dir.zip ./dir

Unzipping a vendor.zip file:

- uses: montudor/action-zip@v0.1.0
  with:
    args: unzip -qq dir.zip -d ./dir

Reusing the same zip between steps in a PHP CI with unit and mutation tests:

Note that we're putting the zip in the vendor-zip directory, this is required because the artifact upload/download expects a directory not a file.

name: Continuous Integration
on:
  push:
  pull_request:
jobs:
  composer-install:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v1
      - run: composer install --ansi --no-progress --no-interaction --prefer-dist
      - run: mkdir vendor-zip
      - uses: montudor/action-zip@v0.1.0
        with:
          args: zip -qq -r ./vendor-zip/vendor.zip ./vendor
      - uses: actions/upload-artifact@master
        with:
          name: vendor
          path: vendor-zip
  tests:
    needs: composer-install
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v1
      - uses: actions/download-artifact@master
        with:
          name: vendor
          path: vendor-zip
      - uses: montudor/action-zip@v0.1.0
        with:
          args: unzip -qq ./vendor-zip/vendor.zip -d ./vendor
      - run: rm -Rf ./vendor-zip
      - run: ./vendor/bin/phpunit
  mutation:
    needs: composer-install
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v1
      - uses: actions/download-artifact@master
        with:
          name: vendor
          path: vendor-zip
      - uses: montudor/action-zip@v0.1.0
        with:
          args: unzip -qq ./vendor-zip/vendor.zip -d ./vendor
      - run: rm -Rf ./vendor-zip
      - run: ./vendor/bin/infection