## Doc commands are being extracted from this file and helpers. ## Indentation is important, please append at the end setup() { load 'helpers' common_setup } # Test 1003-get-started @test "doc-1003-get-started" { skip "TODO: Implement for Europa" # setup_example_sandbox # # Follow tutorial # mkdir -p "$DAGGER_SANDBOX"/plans/local # cp "$DAGGER_PROJECT"/getting-started/plans/todoapp.cue "$DAGGER_SANDBOX"/plans/todoapp.cue # cp "$DAGGER_PROJECT"/getting-started/plans/local/local.cue "$DAGGER_SANDBOX"/plans/local/local.cue # dagger --project "$DAGGER_SANDBOX" new 'local' -p "$DAGGER_SANDBOX"/plans/local # dagger --project "$DAGGER_SANDBOX" -e 'local' input socket dockerSocket /var/run/docker.sock # dagger --project "$DAGGER_SANDBOX" -e 'local' input dir app.source "$DAGGER_SANDBOX" # run dagger --project "$DAGGER_SANDBOX" -e 'local' up # assert_success # docker rm -f todoapp # docker rm -f registry-local } @test "doc-1004-first-env" { skip "TODO: Implement for Europa" # setup_example_sandbox # # Follow tutorial # mkdir -p "$DAGGER_SANDBOX"/multibucket # cp "$DAGGER_PROJECT"/multibucket/source.cue "$DAGGER_SANDBOX"/multibucket # cp "$DAGGER_PROJECT"/multibucket/yarn.cue "$DAGGER_SANDBOX"/multibucket # cp "$DAGGER_PROJECT"/multibucket/netlify.cue "$DAGGER_SANDBOX"/multibucket # dagger --project "$DAGGER_SANDBOX" doc alpha.dagger.io/netlify # dagger --project "$DAGGER_SANDBOX" doc alpha.dagger.io/js/yarn # # Initialize new env # dagger --project "$DAGGER_SANDBOX" new 'multibucket' -p "$DAGGER_SANDBOX"/multibucket # # Copy corresponding env # cp -r "$DAGGER_PROJECT"/.dagger/env/multibucket "$DAGGER_SANDBOX"/.dagger/env/ # # Add missing src input # dagger --project "$DAGGER_SANDBOX" -e multibucket input dir src "$DAGGER_SANDBOX" # # Run test # dagger --project "$DAGGER_SANDBOX" -e multibucket up # url=$(dagger --project "$DAGGER_SANDBOX" -e multibucket query -f text site.netlify.deployUrl) # # Check output # run curl "$url" # assert_output --partial "./static/css/main.9149988f.chunk.css" } @test "doc-1006-google-cloud-run" { skip "TODO: Implement for Europa" # setup_example_sandbox # # Follow tutorial # mkdir -p "$DAGGER_SANDBOX"/gcpcloudrun # cp "$DAGGER_PROJECT"/gcpcloudrun/source.cue "$DAGGER_SANDBOX"/gcpcloudrun # # Initialize new env # dagger --project "$DAGGER_SANDBOX" new 'gcpcloudrun' -p "$DAGGER_SANDBOX"/gcpcloudrun # # Copy corresponding env # cp -r "$DAGGER_PROJECT"/.dagger/env/gcpcloudrun "$DAGGER_SANDBOX"/.dagger/env/ # # Add missing src input # dagger --project "$DAGGER_SANDBOX" -e gcpcloudrun input dir src "$DAGGER_SANDBOX" # # Run test # run dagger --project "$DAGGER_SANDBOX" -e gcpcloudrun up # assert_success } @test "doc-1007-kube-kind" { skip "debug CI issue" # skip_unless_local_kube # #################### BASIC #################### # # Copy deployment to sandbox # copy_to_sandbox kube-kind-basic kube-kind # # Add kubeconfig # dagger --project "$DAGGER_SANDBOX" -e kube-kind-basic input text kubeconfig -f "$HOME"/.kube/config # # Up deployment # dagger --project "$DAGGER_SANDBOX" -e kube-kind-basic up # # Check deployment # kubectl describe deployment todoapp | grep 'True' # # Clean # kubectl delete deployments --all # kubectl delete services --all # #################### DEPLOYMENT #################### # # Copy deployment to sandbox # copy_to_sandbox kube-kind-deployment kube-kind # # Add kubeconfig # dagger --project "$DAGGER_SANDBOX" -e kube-kind-deployment input text kubeconfig -f "$HOME"/.kube/config # # Up deployment # dagger --project "$DAGGER_SANDBOX" -e kube-kind-deployment up # # Check deployment # kubectl describe deployment todoapp | grep 'True' # # Clean # kubectl delete deployments --all # kubectl delete services --all # #################### CUE MANIFEST #################### # # Copy deployment to sandbox # copy_to_sandbox kube-kind-cue-manifest kube-kind # # Add kubeconfig # dagger --project "$DAGGER_SANDBOX" -e kube-kind-cue-manifest input text kubeconfig -f "$HOME"/.kube/config # # Up deployment # dagger --project "$DAGGER_SANDBOX" -e kube-kind-cue-manifest up # # Check deployment # kubectl describe deployment todoapp | grep 'True' # # Clean # kubectl delete deployments --all # kubectl delete services --all } @test "doc-1007-kube-aws" { skip "debug CI issue" # #################### BASIC #################### # # Copy deployment to sandbox # copy_to_sandbox kube-aws-basic kube-aws # # Up deployment # dagger --project "$DAGGER_SANDBOX" -e kube-aws-basic up # #################### DEPLOYMENT #################### # # Copy deployment to sandbox # copy_to_sandbox kube-aws-deployment kube-aws # # Up deployment # dagger --project "$DAGGER_SANDBOX" -e kube-aws-deployment up # #################### CUE MANIFEST #################### # # Copy deployment to sandbox # copy_to_sandbox kube-aws-cue-manifest kube-aws # # Up deployment # dagger --project "$DAGGER_SANDBOX" -e kube-aws-cue-manifest up } @test "doc-1007-kube-gcp" { skip "debug CI issue" # #################### BASIC #################### # # Copy deployment to sandbox # copy_to_sandbox kube-gcp-basic kube-gcp # # Up deployment # dagger --project "$DAGGER_SANDBOX" -e kube-gcp-basic up # #################### DEPLOYMENT #################### # # Copy deployment to sandbox # copy_to_sandbox kube-gcp-deployment kube-gcp # # Up deployment # dagger --project "$DAGGER_SANDBOX" -e kube-gcp-deployment up # #################### CUE MANIFEST #################### # # Copy deployment to sandbox # copy_to_sandbox kube-gcp-cue-manifest kube-gcp # # Up deployment # dagger --project "$DAGGER_SANDBOX" -e kube-gcp-cue-manifest up } @test "doc-1008-aws-cloudformation" { skip "debug CI deadlock" # skip_unless_local_localstack # setup_example_sandbox # ### Create a basic plan # ## Construct # mkdir -p "$DAGGER_SANDBOX"/cloudformation # cp "$DAGGER_PROJECT"/cloudformation/template.cue "$DAGGER_SANDBOX"/cloudformation # # Cloudformation relay # dagger --project "$DAGGER_SANDBOX" doc alpha.dagger.io/aws/cloudformation # cp "$DAGGER_PROJECT"/cloudformation/source-begin.cue "$DAGGER_SANDBOX"/cloudformation/source.cue # # Initialize new env # dagger --project "$DAGGER_SANDBOX" new 'cloudformation' -p "$DAGGER_SANDBOX"/cloudformation # # Finish template setup # cp "$DAGGER_PROJECT"/cloudformation/source-end.cue "$DAGGER_SANDBOX"/cloudformation/source.cue # # Copy corresponding env # cp -r "$DAGGER_PROJECT"/.dagger/env/cloudformation "$DAGGER_SANDBOX"/.dagger/env/ # # Run test # dagger --project "$DAGGER_SANDBOX" -e cloudformation up # stackName=$(dagger --project "$DAGGER_SANDBOX" -e cloudformation query cfnStackName -f text) # ## Cleanup # # Place back empty source # cp "$DAGGER_PROJECT"/cloudformation/source-begin.cue "$DAGGER_SANDBOX"/cloudformation/source.cue # cp "$DAGGER_PROJECT"/cloudformation/deletion.cue "$DAGGER_SANDBOX"/cloudformation/deletion.cue # # Prepare and run cloudformation cleanup # dagger --project "$DAGGER_SANDBOX" -e cloudformation input text stackRemoval.stackName "$stackName" # dagger --project "$DAGGER_SANDBOX" -e cloudformation up # ### Template part # ## Create convert.cue # cp "$DAGGER_PROJECT"/cloudformation/template/convert.cue "$DAGGER_SANDBOX"/cloudformation/convert.cue # rm "$DAGGER_SANDBOX"/cloudformation/source.cue "$DAGGER_SANDBOX"/cloudformation/deletion.cue # ## Retrieve Unmarshalled JSON # dagger --project "$DAGGER_SANDBOX" query -e cloudformation s3Template # ## Remove convert.cue # rm "$DAGGER_SANDBOX"/cloudformation/convert.cue # ## Store the output # cp "$DAGGER_PROJECT"/cloudformation/template/template-begin.cue "$DAGGER_SANDBOX"/cloudformation/template.cue # # Inspect conf # dagger --project "$DAGGER_SANDBOX" query -e cloudformation template -f text # cp "$DAGGER_PROJECT"/cloudformation/template/deployment.cue "$DAGGER_SANDBOX"/cloudformation/deployment.cue # cp "$DAGGER_PROJECT"/cloudformation/template/template-end.cue "$DAGGER_SANDBOX"/cloudformation/template.cue # cp "$DAGGER_PROJECT"/cloudformation/source-end.cue "$DAGGER_SANDBOX"/cloudformation/source.cue # # Deploy again # dagger --project "$DAGGER_SANDBOX" -e cloudformation query template -f text # dagger --project "$DAGGER_SANDBOX" -e cloudformation up # dagger --project "$DAGGER_SANDBOX" -e cloudformation output list # ## Cleanup again # stackName=$(dagger --project "$DAGGER_SANDBOX" -e cloudformation query cfnStackName -f text) # rm -rf "$DAGGER_SANDBOX"/cloudformation/* # # Place back empty source # cp "$DAGGER_PROJECT"/cloudformation/source-begin.cue "$DAGGER_SANDBOX"/cloudformation/source.cue # cp "$DAGGER_PROJECT"/cloudformation/deletion.cue "$DAGGER_SANDBOX"/cloudformation/deletion.cue # # Prepare and run cloudformation cleanup # dagger --project "$DAGGER_SANDBOX" -e cloudformation input text stackRemoval.stackName "$stackName" # dagger --project "$DAGGER_SANDBOX" -e cloudformation up } @test "doc-1010-dev-cue-package" { skip "debug CI deadlock" # # Initializing project # mkdir -p "$DAGGER_SANDBOX"/project # # Writing package # # dagger init # The sandbox is already init # mkdir -p "$DAGGER_SANDBOX"/cue.mod/pkg/github.com/username/gcpcloudrun # cp "$DAGGER_PROJECT"/dev-cue-package/source.cue "$DAGGER_SANDBOX"/cue.mod/pkg/github.com/username/gcpcloudrun/source.cue # cp "$DAGGER_PROJECT"/dev-cue-package/script.sh "$DAGGER_SANDBOX"/project/script.sh # # We remove the last line of the script, as bats cannot expand dagger # # to dagger() bats helper func inside bash files # sed '$d' <"$DAGGER_SANDBOX"/project/script.sh >"$DAGGER_SANDBOX"/tmpFile # mv "$DAGGER_SANDBOX"/tmpFile "$DAGGER_SANDBOX"/project/script.sh # chmod +x "$DAGGER_SANDBOX"/project/script.sh # "$DAGGER_SANDBOX"/project/script.sh # # Sync file from documentation # rsync -a test "$DAGGER_SANDBOX" # # Command removed from script.sh above # dagger --project "$DAGGER_SANDBOX" new staging -p "$DAGGER_SANDBOX"/test # run dagger up --project "$DAGGER_SANDBOX" -e staging # assert_output --partial "input=run.gcpConfig.serviceKey" # # Clean script.sh output # rm -rf ./test }