sccache github action
Find a file
2026-01-03 02:39:56 +00:00
.github Release.yml: Update dist and docs automatically (fixes #189 after being triggered) 2025-11-05 01:46:39 -03:00
dist [CI] Update dist build and update files for v0.0.1 2025-11-05 04:47:55 +00:00
src Conditional plurals in the annotation 2025-10-23 10:57:48 +02:00
.eslintrc.json Fix lint 2023-01-10 12:41:30 +08:00
.gitattributes Fix attr 2023-01-11 11:21:31 +08:00
.gitignore Add lint 2023-01-10 12:39:09 +08:00
.prettierrc.json feat: Implement basic sccache action support 2023-01-09 23:29:45 +08:00
action.yml add disable_annotations options to disable stats report (#162) 2024-11-27 14:16:18 +01:00
LICENSE Add license 2023-01-09 15:53:06 +01:00
package-lock.json Merge pull request #227 from Mozilla-Actions/dependabot/npm_and_yarn/eslint-plugin-import-2.32.0 2025-11-01 23:43:21 +01:00
package.json [CI] Update dist build and update files for v0.0.2 2026-01-03 02:39:56 +00:00
README.md [CI] Update dist build and update files for v0.0.2 2026-01-03 02:39:56 +00:00
tsconfig.json feat: Implement basic sccache action support 2023-01-09 23:29:45 +08:00

sccache-action

The sccache action can be used in GitHub Actions workflows to integrate sccache into the build process. The sccache action is a step in a workflow that can be used to cache compilation results for subsequent builds, reducing the build time and speeding up the overall development process.

sccache can easily use GitHub actions cache with almost no configuration.

This action is available on: https://github.com/marketplace/actions/sccache-action

Usage

Just copy and paste the following in your GitHub action:

Use the latest version of sccache if no version is specified

- name: Run sccache-cache
  uses: Eden-CI/sccache-action@v0.0.2

Conditionally run cache and enable it

- name: Run sccache-cache only on non-release runs
  if: github.event_name != 'release' && github.event_name != 'workflow_dispatch'
  uses: Eden-CI/sccache-action@v0.0.2
- name: Set Rust caching env vars only on non-release runs
  if: github.event_name != 'release' && github.event_name != 'workflow_dispatch'
  run: |
    echo "SCCACHE_GHA_ENABLED=true" >> $GITHUB_ENV
    echo "RUSTC_WRAPPER=sccache" >> $GITHUB_ENV

Specify a given version of sccache

Versions prior to sccache v0.10.0 probably will not work.

- name: Run sccache-cache
  uses: Eden-CI/sccache-action@v0.0.2
  with:
    version: "v0.10.0"

To get the execution stats

Note that using the previous declaration will automatically create a Post Run sccache-cache task.

- name: Run sccache stat for check
  shell: bash
  run: ${SCCACHE_PATH} --show-stats

disable stats report

- name: Run sccache-cache
  uses: Eden-CI/sccache-action@v0.0.2
  with:
    disable_annotations: true

Rust code

For Rust code, the following environment variables should be set:

    env:
      SCCACHE_GHA_ENABLED: "true"
      RUSTC_WRAPPER: "sccache"

C/C++ code

For C/C++ code, the following environment variables should be set:

    env:
      SCCACHE_GHA_ENABLED: "true"

With cmake, add the following argument:

-DCMAKE_C_COMPILER_LAUNCHER=sccache
-DCMAKE_CXX_COMPILER_LAUNCHER=sccache

With configure, call it with:

# With gcc
./configure CC="sccache gcc" CXX="sccache gcc"
# With clang
./configure CC="sccache clang" CXX="sccache clang"

Using on GitHub Enterprise Server (GHES)

When using the action on GitHub Enterprise Server installations a valid GitHub.com token must be provided.

- name: Run sccache-cache
  uses: Eden-CI/sccache-action@v0.0.2
  with:
    token: ${{ secrets.MY_GITHUB_TOKEN }}

Note that using https://github.com/actions/create-github-app-token is a better option than storing a fixed token in the repo secrets.

Prepare a new release

  1. Update the example in README.md
  2. Update version in package.json
  3. Run npm i --package-lock-only
  4. Run npm run build
  5. Commit and push the local changes
  6. Tag a new release (vX.X.X)
  7. Create a new release in github

License

Apache-2.0 (just like sccache)