Skip to content

Latest commit

 

History

History
124 lines (97 loc) · 3.68 KB

4-dry-run.md

File metadata and controls

124 lines (97 loc) · 3.68 KB

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 to set up your codespace environment.
  2. Completed the configure lab.
  3. Completed the audit lab.

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:

    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.

    $ 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 👇
  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 👇
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