convert circleci workflow devtools_regression_tests to github actions (#27800)
## Summary This pull request converts the CircleCI workflows to GitHub actions workflows. [Github Actions Importer](https://github.com/github/gh-actions-importer) was used to convert the workflows initially, then I edited them manually to correct errors in translation. **Issues** 1. facebook/react/devtools_regression_tests The scripts that this workflow calls need to be modified. ## How did you test this change? I tested these changes in a forked repo. You can [view the logs of this workflow in my fork](https://github.com/robandpdx/react/actions). https://fburl.com/workplace/f6mz6tmw
Rob Anderson committed
Apr 18, 2024 at 08:04 UTC
496e8733bb7fdee8f8678100c8b601ead8a2d23b
1 file changed
+137
.github/workflows/devtools_regression_tests.yml
new
+137
@@ -0,0 +1,137 @@
1
+name: facebook/react/devtools_regression_tests
2
+on:
3
+ schedule:
4
+ - cron: 0 0 * * *
5
+ push:
6
+ branches:
7
+ - main
8
+ workflow_dispatch:
9
+ inputs:
10
+ prerelease_commit_sha:
11
+ required: false
12
+jobs:
13
+ download_build:
14
+ if: inputs.prerelease_commit_sha ==''
15
+ runs-on: ubuntu-latest
16
+ env:
17
+ TZ: "/usr/share/zoneinfo/America/Los_Angeles"
18
+ revision: "${{ github.sha }}"
19
+ steps:
20
+ - uses: actions/checkout@v4.1.0
21
+ - uses: actions/setup-node@v4
22
+ with:
23
+ node-version-file: '.nvmrc'
24
+ cache: 'yarn'
25
+ - name: Install dependencies
26
+ run: yarn install --frozen-lockfile
27
+ env:
28
+ ELECTRON_SKIP_BINARY_DOWNLOAD: "1"
29
+ shell: bash
30
+ - name: Download artifacts for revision
31
+ run: |-
32
+ git fetch origin main
33
+ cd ./scripts/release && yarn && cd ../../
34
+ scripts/release/download-experimental-build.js --commit=${{ env.revision }} --allowBrokenCI
35
+ - uses: actions/upload-artifact@v3.1.3
36
+ with:
37
+ path: build
38
+ build_devtools_and_process_artifacts:
39
+ if: inputs.prerelease_commit_sha ==''
40
+ runs-on: ubuntu-latest
41
+ needs:
42
+ - download_build
43
+ env:
44
+ TZ: "/usr/share/zoneinfo/America/Los_Angeles"
45
+ steps:
46
+ - uses: actions/checkout@v4.1.0
47
+ - uses: actions/setup-node@v4
48
+ with:
49
+ node-version-file: '.nvmrc'
50
+ cache: 'yarn'
51
+ - uses: actions/download-artifact@v3.0.2
52
+ with:
53
+ path: build
54
+ - name: Install dependencies
55
+ run: yarn install --frozen-lockfile
56
+ env:
57
+ ELECTRON_SKIP_BINARY_DOWNLOAD: "1"
58
+ shell: bash
59
+ - run: "./scripts/circleci/pack_and_store_devtools_artifacts.sh"
60
+ env:
61
+ RELEASE_CHANNEL: experimental
62
+ - uses: actions/upload-artifact@v3.1.3
63
+ with:
64
+ path: build/devtools.tgz
65
+ run_devtools_tests_for_versions:
66
+ if: inputs.prerelease_commit_sha ==''
67
+ runs-on: ubuntu-latest
68
+ needs:
69
+ - build_devtools_and_process_artifacts
70
+ env:
71
+ TZ: "/usr/share/zoneinfo/America/Los_Angeles"
72
+ strategy:
73
+ matrix:
74
+ version:
75
+ - '16.0'
76
+ - '16.5'
77
+ - '16.8'
78
+ - '17.0'
79
+ - '18.0'
80
+ steps:
81
+ - uses: actions/checkout@v4.1.0
82
+ - uses: actions/setup-node@v4
83
+ with:
84
+ node-version-file: '.nvmrc'
85
+ cache: 'yarn'
86
+ - uses: actions/download-artifact@v3.0.2
87
+ with:
88
+ path: build
89
+ - name: Install dependencies
90
+ run: yarn install --frozen-lockfile
91
+ env:
92
+ ELECTRON_SKIP_BINARY_DOWNLOAD: "1"
93
+ shell: bash
94
+ - run: "./scripts/circleci/download_devtools_regression_build.js ${{ matrix.version }} --replaceBuild"
95
+ - run: node ./scripts/jest/jest-cli.js --build --project devtools --release-channel=experimental --reactVersion ${{ matrix.version }} --ci
96
+ run_devtools_e2e_tests_for_versions:
97
+ if: inputs.prerelease_commit_sha ==''
98
+ runs-on: ubuntu-latest
99
+ needs:
100
+ - build_devtools_and_process_artifacts
101
+ env:
102
+ TZ: "/usr/share/zoneinfo/America/Los_Angeles"
103
+ strategy:
104
+ matrix:
105
+ version:
106
+ - '16.0'
107
+ - '16.5'
108
+ - '16.8'
109
+ - '17.0'
110
+ - '18.0'
111
+ steps:
112
+ - uses: actions/checkout@v4.1.0
113
+ - uses: actions/setup-node@v4
114
+ with:
115
+ node-version-file: '.nvmrc'
116
+ cache: 'yarn'
117
+ - uses: actions/download-artifact@v3.0.2
118
+ with:
119
+ path: "."
120
+ - name: Install dependencies
121
+ run: yarn install --frozen-lockfile
122
+ env:
123
+ ELECTRON_SKIP_BINARY_DOWNLOAD: "1"
124
+ shell: bash
125
+ - name: Playwright install deps
126
+ run: |-
127
+ npx playwright install
128
+ sudo npx playwright install-deps
129
+ - run: "./scripts/circleci/download_devtools_regression_build.js ${{ matrix.version }}"
130
+ - run: "./scripts/circleci/run_devtools_e2e_tests.js ${{ matrix.version }}"
131
+ env:
132
+ RELEASE_CHANNEL: experimental
133
+ - name: Cleanup build regression folder
134
+ run: rm -r ./build-regression
135
+ - uses: actions/upload-artifact@v3.1.3
136
+ with:
137
+ path: tmp/screenshots