Merge pull request #55 from valet-customers/travis-dry-run

Travis Dry-run lab
This commit is contained in:
Begona Guereca
2022-09-15 12:17:23 -07:00
committed by GitHub
+120
View File
@@ -0,0 +1,120 @@
# Perform a dry-run of a TravisCI pipeline
In this lab you will use the `dry-run` command to convert a TravisCI 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 TravisCI project. Answer the following questions before running this command:
1. What pipeline do you want to convert?
- __ruby-example__. This is one of the sample projects avaiable in the TravisCI labs-data organization.
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 your codespace terminal.
2. Run the following command from the root directory:
```bash
gh valet dry-run travis-ci --travis-ci-repository "ruby-example" --output-dir tmp/travis/dry-run-lab
```
3. The command will list all the files written to disk when the command succeeds.
![command-result](https://user-images.githubusercontent.com/19557880/190260513-87bae04f-2ff2-4539-b4e5-1e68eba3cf2c.png)
4. View the converted workflow:
- Find `./tmp/travis/dry-run-lab` in the file explorer pane in your codespace.
- Click `ruby-example.yml` to open.
## Inspect the output files
The files generated from the `dry-run` command represent the equivalent Actions workflow for the TravisCI project. The TravisCI configuration and converted workflow can be seen below:
<details>
<summary><em>TravisCI 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: valet-travis-labs/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 Valet's behavior](./4-custom-transformers.md)