/action-zip

A GitHub action used to zip file contents

Primary LanguageDockerfileMIT LicenseMIT

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