How do I cache steps in GitHub actions?

后端 未结 6 1812
野趣味
野趣味 2021-01-30 10:54

Say I have a GitHub actions workflow with 2 steps.

  1. Download and compile my application\'s dependencies.
  2. Compile and test my application

My

6条回答
  •  一生所求
    2021-01-30 11:26

    My dependencies rarely change and the compiled dependencies can be safely cached until I next change the lock-file that specifies their versions. Is a way to save the result of the first step so that in future workflow can skip over that step?

    The first step being:

    Download and compile my application's dependencies.

    GitHub Actions themselves will not do this for you. The only advice I can give you is that you adhere to Docker best practices in order to ensure that if Actions do make use of docker caching, your image could be re-used instead of rebuilt. See: https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#leverage-build-cache

    When building an image, Docker steps through the instructions in your Dockerfile, executing each in the order specified. As each instruction is examined, Docker looks for an existing image in its cache that it can reuse, rather than creating a new (duplicate) image.

    This also implies that the underlying system of GitHub Actions can/will leverage the Docker caching.

    However things like compilation, Docker won't be able to use the cache mechanism, so I suggest you think very well if this is something you desperately need. The alternative is to download the compiled/processed files from an artifact store (Nexus, NPM, MavenCentral) to skip that step. You do have to weight the benefits vs the complexity you are adding to your build on this.

提交回复
热议问题