diff --git a/circle_ci/3-dry-run.md b/circle_ci/3-dry-run.md
index efb6423..4aa0dc3 100644
--- a/circle_ci/3-dry-run.md
+++ b/circle_ci/3-dry-run.md
@@ -4,23 +4,23 @@ In this lab you will use the `dry-run` command to convert a CircleCI pipeline to
## Prerequisites
-1. Followed the steps [here](./readme.md#configure-your-codespace) to set up your Codespace environment and start a GitLab server.
+1. Followed the steps [here](./readme.md#configure-your-codespace) to set up your Codespace environment.
2. Completed the [configure lab](./1-configure.md#configuring-credentials).
3. Completed the [audit lab](./2-audit.md).
## Perform a dry run
-We will be performing a dry-run against a CircleCI project. We will need to answer the following questions before running this command:
+You will be performing a dry-run against a CircleCI project. Answer the following questions before running this command:
-1. What is the name of the project we want to convert?
+1. What project do you want to convert?
- __circleci-demo-ruby-rails__. This is one of the sample projects avaiable in the CircleCI labs-data organization.
-2. Where do we want to store the result?
+2. Where do you want to store the result?
- __./tmp/dry-run-lab__. This can be any path within the working directory that Valet commands are executed from.
### Steps
-1. Navigate to the codespace terminal
+1. Navigate to your codespace terminal
2. Run the following command from the root directory:
```bash
@@ -29,10 +29,12 @@ We will be performing a dry-run against a CircleCI project. We will need to answ
3. The command will list all the files written to disk when the command succeeds.
- ADD_IMAGE_HERE
+ 
+
+
4. View the converted workflow:
- - Find `./tmp/dry-run-lab/labs-data/circleci-demo-ruby-rails` in the file explorer pane in codespaces.
+ - Find `./tmp/dry-run-lab/labs-data/circleci-demo-ruby-rails` in the file explorer pane in your codespace.
- Click `build_and_test.yml` to open.
## Inspect the output files
@@ -43,7 +45,64 @@ The files generated from the `dry-run` command represent the equivalent Actions
CircleCI configuration 👇
```yaml
-# ADD YAML
+version: 2.1
+
+orbs:
+ ruby: circleci/ruby@1.1.0
+ node: circleci/node@2
+
+jobs:
+ build:
+ docker:
+ - image: cimg/ruby:2.7.5-node
+ steps:
+ - checkout
+ - ruby/install-deps
+ # Store bundle cache
+ - node/install-packages:
+ pkg-manager: yarn
+ cache-key: "yarn.lock"
+ test:
+ parallelism: 3
+ docker:
+ - image: cimg/ruby:2.7.5-node
+ - image: circleci/postgres:9.5-alpine
+ environment:
+ POSTGRES_USER: circleci-demo-ruby
+ POSTGRES_DB: rails_blog_test
+ POSTGRES_PASSWORD: ""
+ environment:
+ BUNDLE_JOBS: "3"
+ BUNDLE_RETRY: "3"
+ PGHOST: 127.0.0.1
+ PGUSER: circleci-demo-ruby
+ PGPASSWORD: ""
+ RAILS_ENV: test
+ steps:
+ - checkout
+ - ruby/install-deps
+ - node/install-packages:
+ pkg-manager: yarn
+ cache-key: "yarn.lock"
+ - run:
+ name: Wait for DB
+ command: dockerize -wait tcp://localhost:5432 -timeout 1m
+ - run:
+ name: Database setup
+ command: bundle exec rails db:schema:load --trace
+ # Run rspec in parallel
+ - ruby/rspec-test
+ - ruby/rubocop-check
+
+workflows:
+ version: 2
+ build_and_test:
+ jobs:
+ - build
+ - test:
+ requires:
+ - build
+
```
@@ -52,11 +111,82 @@ The files generated from the `dry-run` command represent the equivalent Actions
Converted workflow 👇
```yaml
-# ADD YAML
+name: labs-data/circleci-demo-ruby-rails/build_and_test
+on:
+ push:
+ branches:
+ - master
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ container:
+ image: cimg/ruby:2.7.5-node
+ steps:
+ - name: Set up bundler cache
+ uses: ruby/setup-ruby@v1
+ with:
+ ruby-version: 3.0.2
+ bundler-cache: true
+ - uses: actions/checkout@v2
+ - run: bundle check || bundle install
+ env:
+ BUNDLE_DEPLOYMENT: true
+ - id: yarn-cache-dir-path
+ run: echo "::set-output name=dir::$(yarn config get cacheFolder)"
+ - uses: actions/cache@v2
+ with:
+ path: "${{ steps.yarn-cache-dir-path.outputs.dir }}"
+ key: "${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}"
+ restore-keys: "${{ runner.os }}-yarn-"
+ - run: yarn install --frozen-lockfile
+ test:
+ runs-on: ubuntu-latest
+ container:
+ image: cimg/ruby:2.7.5-node
+ services:
+ postgres:
+ image: postgres:9.5-alpine
+ env:
+ POSTGRES_USER: circleci-demo-ruby
+ POSTGRES_DB: rails_blog_test
+ POSTGRES_PASSWORD: ''
+ needs:
+ - build
+ env:
+ BUNDLE_JOBS: '3'
+ BUNDLE_RETRY: '3'
+ PGHOST: 127.0.0.1
+ PGUSER: circleci-demo-ruby
+ PGPASSWORD: ''
+ RAILS_ENV: test
+ steps:
+ - name: Set up bundler cache
+ uses: ruby/setup-ruby@v1
+ with:
+ ruby-version: 3.0.2
+ bundler-cache: true
+ - uses: actions/checkout@v2
+ - run: bundle check || bundle install
+ env:
+ BUNDLE_DEPLOYMENT: true
+ - id: yarn-cache-dir-path
+ run: echo "::set-output name=dir::$(yarn config get cacheFolder)"
+ - uses: actions/cache@v2
+ with:
+ path: "${{ steps.yarn-cache-dir-path.outputs.dir }}"
+ key: "${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}"
+ restore-keys: "${{ runner.os }}-yarn-"
+ - run: yarn install --frozen-lockfile
+ - name: Wait for DB
+ run: dockerize -wait tcp://localhost:5432 -timeout 1m
+ - name: Database setup
+ run: bundle exec rails db:schema:load --trace
+ - run: bundle exec rspec spec --profile 10 --format RspecJunitFormatter --out /tmp/test-results/rspec/results.xml --format progress
+ - run: bundle exec rubocop --format progress
```
-Despite these 2 pipelines using different syntax they will function equivalently.
+Despite these two pipelines using different syntax they will function equivalently.
## Next lab