# Perform a dry-run of a Travis CI pipeline In this lab you will use the `dry-run` command to convert a Travis CI pipeline to its equivalent GitHub Actions workflow. ## Prerequisites 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 You will be performing a dry-run against a Travis CI project. Answer the following questions before running this command: 1. What pipeline do you want to convert? - __travisci-ruby-example__. This is one of the sample projects available in the `actions-importer-labs` organization. 2. Where do you want to store the result? - __tmp/dry-run__. This can be any path within the working directory that GitHub Actions Importer commands are executed from. ### Steps 1. Navigate to your codespace terminal. 2. Run the following command from the root directory: ```bash gh actions-importer dry-run travis-ci --travis-ci-repository "travisci-ruby-example" --output-dir tmp/dry-run ``` 3. The command will list all the files written to disk when the command succeeds. ```console $ gh actions-importer dry-run travis-ci --travis-ci-repository "travisci-ruby-example" --output-dir tmp/dry-run [2022-09-19 19:46:03] Logs: 'tmp/dry-run/log/actions-importer-20220919-194603.log' [2022-09-19 19:46:05] Output file(s): [2022-09-19 19:46:05] tmp/dry-run/actions-importer-labs/travisci-ruby-example/.github/workflows/travisci-ruby-example.yml ``` 4. View the converted workflow: - Find `tmp/dry-run/actions-importer-labs/travisci-ruby-example/.github/workflows` in the file explorer pane in your codespace. - Click `travisci-ruby-example.yml` to open. ## Inspect the output files The files generated from the `dry-run` command represent the equivalent Actions workflow for the Travis CI project. The Travis CI configuration and converted workflow can be seen below:
Travis CI configuration 👇 ```yaml language: ruby sudo: false dist: trusty rvm: - 1.9.3 - 2.0.0 - 2.1.0 install: - gem install bundler script: - echo "hello!" jobs: include: - script: echo "child" ```
Converted workflow 👇 ```yaml name: actions-importer-labs/travisci-ruby-example on: push: branches: - "**/*" pull_request: concurrency: # # This item has no matching transformer # maximum_number_of_builds: 0 jobs: test: runs-on: # this agent type is not supported: [[{"dist"=>"trusty"}]] ubuntu-latest steps: - name: checkout uses: actions/checkout@v2 - uses: ruby/setup-ruby@v1 with: ruby-version: "${{ matrix.rvm }}" # # 'sudo' was not transformed because there is no suitable equivalent in GitHub Actions - run: gem install bundler - run: echo "hello!" strategy: matrix: rvm: - 1.9.3 - 2.0.0 - 2.1.0 test_2: runs-on: # this agent type is not supported: [[{"dist"=>"trusty"}]] ubuntu-latest steps: - name: checkout uses: actions/checkout@v2 - uses: ruby/setup-ruby@v1 with: ruby-version: 1.9.3 # # 'sudo' was not transformed because there is no suitable equivalent in GitHub Actions - run: gem install bundler - run: echo "child" ```
Despite these two pipelines using different syntax they will function equivalently. ## Next lab [Use custom transformers to customize GitHub Actions Importer's behavior](./5-custom-transformers.md)