Files
importer-labs/travis/4-dry-run.md
T
2022-11-03 14:31:03 -07:00

125 lines
3.7 KiB
Markdown

# 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:
<details>
<summary><em>Travis CI configuration 👇</em></summary>
```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"
```
</details>
<details>
<summary><em>Converted workflow 👇</em></summary>
```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"
```
</details>
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)