• Stars
    star
    209
  • Rank 186,881 (Top 4 %)
  • Language
    TypeScript
  • License
    Apache License 2.0
  • Created almost 5 years ago
  • Updated 9 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Build software only once and put it in a global cache

cachix-action

github actions badge

One nice benefit of Nix is that CI can build and cache developer environments for every project on every branch using binary caches.

Another important aspect of CI is the feedback loop of how many minutes does the build take to finish.

With a simple configuration using Cachix, you’ll never have to build any derivation twice and share them with all your developers.

After each job, just built derivations are pushed to your binary cache.

Before each job, derivations to be built are first substituted (if they exist) from your binary cache.

Getting started

Follow Continuous Integration with GitHub Actions tutorial.

See action.yml for all options.

Security

Cachix auth token and signing key need special care as they give read and write access to your caches.

As per GitHub Actions' security model:

Anyone with write access to a repository can create, read, and use secrets.

Which means all developers with write/push access can read your secrets and write to your cache.

Pull requests do not have access to secrets so read access to a public binary cache will work, but pushing will be disabled since there is no signing key.

Note that malicious code submitted via a pull request can, once merged into master, reveal the tokens.

Hacking

Install the dependencies

$ yarn install

Build the typescript

$ yarn build

Run the tests βœ”οΈ

$ yarn test

More Repositories

1

devenv

Fast, Declarative, Reproducible, and Composable Developer Environments
Nix
3,685
star
2

cachix

Command line client for Nix binary cache hosting:
Haskell
814
star
3

git-hooks.nix

Seamless integration of https://pre-commit.com git hooks with Nix.
Nix
489
star
4

install-nix-action

Installs Nix on GitHub Actions for the supported platforms: Linux and macOS.
Shell
418
star
5

nixpkgs-python

All Python versions, kept up-to-date on hourly basis using Nix.
Nix
106
star
6

elm2nix

Convert Elm project into Nix expressions
Haskell
105
star
7

ghcide-nix

Nix installation for ghcide
Nix
76
star
8

docs.cachix.org

Documentation for Cachix service.
Python
58
star
9

cachix-deploy-hetzner-dedicated

Bootstrap Hetzner Dedicated machines with a single command and deploy using GitHub Actions
Nix
22
star
10

stamina.hs

Retrying for humans using Haskell.
Haskell
20
star
11

haskell-release-action

Automation for releasing haskell packages
17
star
12

hs-opentelemetry-instrumentation-servant

OpenTelemetry instrumentation for Servant, compatible with hs-opentelemetry.
Haskell
11
star
13

paddle

Haskell API for Paddle payments
Haskell
10
star
14

cachix-ci-agents

self-hosted github runners
Nix
9
star
15

nixpkgs-unfree-redistributable

Nix
6
star
16

katip-raven

Katip scribe for raven client (https://sentry.io)
Haskell
5
star
17

clickhouse-haskell

Haskell
5
star
18

cachix-deploy-flake

Functions to help manage Cachix Deploy when using flakes.
Nix
5
star
19

hs-opentelemetry-instrumentation-http-client

Plug&play OpenTelemetry tracing for http-client Manager
Haskell
5
star
20

cachix-deploy-terraform

HCL
3
star
21

websockets-simple

High-level library for Client/Server websocket communication in Haskell
Haskell
3
star
22

mixpanel-client

Haskell client implementation of mixpanel HTTP api
Haskell
3
star
23

fastspring

Haskell API for https://fastspring.com/
Haskell
3
star
24

buildkite-example

2
star
25

travis-ci-example

Nix
2
star
26

circleci-example

Nix
2
star
27

feedback

Feedback about https://cachix.org service
2
star
28

ekg-ghc

Provides additional metrics for GHC via `ekg-core`
Haskell
2
star
29

cachix-deploy-amis

AMIs for using Cachix Deploy
HCL
1
star
30

haskell-wishlist

Things we wish Haskell had
1
star
31

cachix-deploy-aws

HCL
1
star
32

parse-range-header.js

TypeScript
1
star
33

fastcdc-rs2hs

A Haskell wrapper around fastcdc-rs.
Haskell
1
star