package changelog

actions: {
	// Reuse in all mix commands

	// prod: assets: docker.#Build & {
	//  steps: [
	//   // 1. Start from dev assets :)
	//   dev.assets,
	//   // 2. Mix magical command
	//   mix.#Run & {
	//    script: "mix phx.digest"
	//    mix: {
	//     env:        "prod"
	//     app:        _appName
	//     depsCache:  "private"
	//     buildCache: "private"
	//    }
	//    workdir: _
	//    // FIXME: remove copy-pasta
	//    mounts: nodeModules: {
	//     contents: dagger.#CacheDir & {
	//      // FIXME: do we need an ID here?
	//      id: "\(mix.app)_assets_node_modules"
	//      // FIXME: does this command need write access to node_modules cache?
	//      concurrency: "private"
	//     }
	//     dest: "\(workdir)/node_modules"
	//    }
	//   },
	//  ]
	// }

	// dev: {
	// compile: mix.#Compile & {
	//  env:    "dev"
	//  app:    "thechangelog"
	//  base:   inputs.params.runtimeImage
	//  source: inputs.directories.app.contents
	// }

	// assets: docker.#Build & {
	//  steps: [
	//   // 1. Start from dev runtime build
	//   {
	//    output: build.output
	//   },
	//   // 2. Build web assets
	//   mix.#Run & {
	//    mix: {
	//     env:        "dev"
	//     app:        _appName
	//     depsCache:  "private"
	//     buildCache: "private"
	//    }
	//    // FIXME: move this to a reusable def (yarn package? or private?)
	//    mounts: nodeModules: {
	//     contents: dagger.#CacheDir & {
	//      // FIXME: do we need an ID here?
	//      id: "\(mix.app)_assets_node_modules"
	//      // FIXME: will there be multiple writers?
	//      concurrency: "locked"
	//     }
	//     dest: "\(workdir)/node_modules"
	//    }
	//    // FIXME: run 'yarn install' and 'yarn run compile' separately, with different caching?
	//    // FIXME: can we reuse universe.dagger.io/yarn ???? 0:-)
	//    script:  "yarn install --frozen-lockfile && yarn run compile"
	//    workdir: "/app/assets"
	//   },
	//  ]
	// }
	// }
	// test: {
	//  build: mix.#Build & {
	//   env:    "test"
	//   app:    _appName
	//   base:   inputs.params.runtimeImage
	//   source: inputs.directories.app.contents
	//  }

	//  // Run tests
	//  run: docker.#Run & {
	//   image:  build.output
	//   script: "mix test"
	//  }

	//  db: {
	//   // Pull test DB image
	//   pull: docker.#Pull & {
	//    source: inputs.params.test_db_image
	//   }

	//   // Run test DB
	//   // FIXME: kill once no longer needed (when tests are done running)
	//   run: docker.#Run & {
	//    image: pull.output
	//   }
	//  }
	// }
}
