This repository has been archived on 2024-04-08. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
Gerhard Lazu fb09e2a1c6
Split CI workflow into individual workflows
I had to re-run all jobs in the CI workflow at least 10 times in the
past 2 days. The problem is that when one jobs fails, all jobs need to
re-run, which sometimes results in different jobs failing. It would be
great if we could only re-run the jobs that failed, rather than all the
jobs in the CI workflow. Going forward, we should focus on improving
flaky tests, and speed the jobs which take the longest, but for now this
is a good start.

Before this change, we were wasting a lot of dev time - 2h in total for
my last PR #1476 - but also wasting CI minutes. Some of us were even
tempted to ignore CI 😱. This is a very slipper slope, and while it may
feel liberating in the short-term, there are many "windmill monsters"
down this path - don't do it.

Have a look at the CI workflow before this change to see how many
failures we had:
https://github.com/dagger/dagger/actions/workflows/ci.yml

Without looking at the jobs that failed, can you guess which areas are
the flakiest and need our attention the most? Integration & Universe are
good guesses, and I wish we could see this without digging into the CI
workflow - this change does that.

There is a lot more that can be improved here, but I didn't want to get
too carried away. The biggest improvement that we can make is switch
this to Dagger, which has some challenges, but I definitely intend to
tackle them because it feels worth it. This is good enough for now.

This is a ship & show PR. If all tests pass, this is a straight merge. I
am keeping it atomic so that we can revert it if we don't like it.

cc @aluzzardi @talentedmrjones @jlongtine @samalba @shykes @grouville

Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
2022-01-25 18:44:42 +00:00
.dagger/env Update and add missing gitignore 2022-01-21 21:23:57 +01:00
.github Split CI workflow into individual workflows 2022-01-25 18:44:42 +00:00
client engine: redact dynamic secrets (e.g. #NewSecret) 2022-01-07 12:08:37 -08:00
cmd Support for partially running a DAG 2022-01-13 15:52:13 -08:00
compiler netlify: Europa port 2022-01-20 16:10:14 -08:00
cue.mod/pkg Update and add missing gitignore 2022-01-21 21:23:57 +01:00
docs Use CONTRIBUTING from our org 2022-01-20 16:29:07 +00:00
environment We need to use the State() function, rather than Result().ToState() 2022-01-03 14:34:49 -07:00
keychain keychain: always ensure the default key is generated 2021-06-17 17:23:11 +02:00
mod Unified git repository management 2022-01-18 09:38:50 +01:00
pkg Merge pull request #1493 from aluzzardi/test-disable-ssh 2022-01-25 11:15:51 +00:00
plan test: clean up yarn test 2022-01-21 12:45:59 -08:00
plancontext netlify: Europa port 2022-01-20 16:10:14 -08:00
solver Re-implement docker registry parsing 2022-01-19 02:03:17 +01:00
state vendoring: support multiple modules 2022-01-11 16:51:54 -08:00
telemetry fixed linting errors 2021-12-14 09:08:58 -08:00
tests Update and add missing gitignore 2022-01-21 21:23:57 +01:00
util logger: TTY logs support (live update) 2021-10-05 15:38:34 -07:00
version move versioning into the version package 2021-07-19 17:43:45 +02:00
website build(deps): bump nanoid from 3.1.30 to 3.2.0 in /website 2022-01-25 13:03:11 +00:00
.gitignore Vendoring improved 2021-10-13 15:25:30 -07:00
.golangci.yml cleanup: move packages to top level, change vanity URL 2021-05-25 16:54:00 -07:00
.goreleaser.yml move versioning into the version package 2021-07-19 17:43:45 +02:00
.markdownlint.yaml docs: kubernetes: support kind/gke/eks 2021-06-14 17:37:24 +02:00
doc.go add a go file to the root folder 2021-02-17 13:13:17 -08:00
Dockerfile Bump golang from 1.16.10-alpine to 1.16.13-alpine 2022-01-12 20:51:00 +00:00
go.mod Disallow Definitions as Tasks 2022-01-20 19:38:24 -07:00
go.sum Disallow Definitions as Tasks 2022-01-20 19:38:24 -07:00
install.ps1 Updated the Installer and Docs 2021-06-30 17:54:48 +02:00
install.sh release: added install script 2021-05-03 17:20:45 -07:00
LICENSE add LICENSE file 2021-01-14 12:36:19 -08:00
Makefile tests: Basic test infrastructure for Europa Universe 2022-01-19 12:39:39 -08:00
README.md Use CONTRIBUTING from our org 2022-01-20 16:29:07 +00:00
semver Unblock auto-releases 2022-01-25 11:42:46 +00:00
tracing.compose.yaml Move to OpenTelemetry 2021-07-09 09:47:36 +02:00
universe cue modules: move stdlib to pkg/alpha.dagger.io 2022-01-11 13:16:37 -08:00

Dagger

Dagger is a portable devkit for CICD.

Using Dagger, software teams can develop powerful CICD pipelines with minimal effort, then run them anywhere. Benefits include:

  • Unify dev and CI environments. Write your pipeline once, Dagger will run it the same everywhere.
  • Reduce CI lock-in. No more re-writing everything from scratch every 6 months.

How does it work?

  1. Automate actions with your favorite programming language. No proprietary SDK: just regular shell, Go, Javascript, Python...
  2. Reuse actions from a large and growing catalog.
  3. Tie it all together in CUE - a revolutionary declarative language invented at Google. No more YAML hell!
  4. Test and debug instantly on your local machine. No more waiting 10min to catch a typo.
  5. Run your pipelines on any Docker-compatible runtime, for maximum portability. This means most modern CI runners can run Dagger out of the box.

Getting Started

Documentation website