125 lines
3.7 KiB
Markdown
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)
|