113 Commits

Author SHA1 Message Date
Naoto Ono
efc686697e
Launchable: Temporarily remove Launchable integration from Compilatio… (#13759)
Launchable: Temporarily remove Launchable integration from Compilations workflow

Currently, Launchable is unstable, which occationally causes workflow issues. Until this problem is fixed, we'll temporary disable Launchable in the Compilations workflow.
2025-07-02 21:12:48 +09:00
Nobuyoshi Nakada
d314673115
CI: Fix appending to an array
Parentheses are required to add a new element to an array, not to the
first element of the array.
2025-07-02 12:37:08 +09:00
Nobuyoshi Nakada
896f9f6328 CI: Run Launchable in the build directory
As well as compilers/entrypoint.sh.
2025-06-20 17:40:59 +09:00
Nobuyoshi Nakada
82dfd44f93
CI: Extract launchable_setup function 2025-06-19 21:17:56 +09:00
Nobuyoshi Nakada
1b018d96d0
CI: Extract launchable_record_session function 2025-06-19 21:17:56 +09:00
Nobuyoshi Nakada
87d33583af
CI: Store session info in variables directly 2025-06-19 21:17:55 +09:00
Nobuyoshi Nakada
c59f66b61a
CI: Fix spec_opts 2025-06-16 14:33:57 +09:00
Naoto Ono
311aa0dfa7
Launchable: Terminate Launchable CLI process quickly by sending singa… (#13622)
Launchable: Terminate Launchable CLI process quickly by sending singals to a process group

Sometimes, the timeout errors occurred in Compilations workflow, this is because Launchable CLI process was not terminated correctly. To address this issue, we'll send signals to a process group.

https://github.com/ruby/ruby/actions/runs/15614867686
https://github.com/ruby/ruby/actions/runs/15662906947

Co-authored-by: Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
2025-06-16 14:18:57 +09:00
Nobuyoshi Nakada
b670a04ac7
Fix a missing double quote 2025-06-15 20:58:06 +09:00
Takashi Kokubun
39569da4e4 Work around CI failures coming from Launchable
https://github.com/ruby/ruby/actions/runs/15640729145/job/44067161266
2025-06-13 12:45:34 -07:00
Nobuyoshi Nakada
a66d823c15
CI: Fix launchable timeout
`setup_launchable` needs to run the current shell, not in a subshell.
2025-06-13 19:48:44 +09:00
Nobuyoshi Nakada
180214287e CI: Continue without record if Launchable setup failed 2025-06-06 14:03:32 +09:00
Nobuyoshi Nakada
78d2a2308f CI: Split cleanups of Launchable generated files 2025-06-06 14:03:32 +09:00
Nobuyoshi Nakada
86eb5f9c05
CI: Trap launchable_record_test in the parent process 2025-06-06 08:52:02 +09:00
Nobuyoshi Nakada
5da3dc88d6
CI: Timeout launchable setup in 3min 2025-06-06 08:00:51 +09:00
Nobuyoshi Nakada
296a0d0b7c
CI: Create report files only when Launchable setup succeeded 2025-06-06 08:00:51 +09:00
Naoto Ono
a4dc778a5e
Launchable: Set env variables to prevent CI slowdowns (#13513)
When Launchable in unstable, the round trip time takes a long time, which slows down CI execution. In this PR I configured the environment variable `LAUNCHABLE_COMMIT_TIMEOUT` to configure the timeout.

https://github.com/launchableinc/cli/pull/1015
2025-06-04 11:59:40 +00:00
dependabot[bot]
08d81ac627 Bump actions/cache in /.github/actions/setup/directories
Bumps [actions/cache](https://github.com/actions/cache) from 4.2.2 to 4.2.3.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](d4323d4df1...5a3ec84eff)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-24 09:24:54 +09:00
Naoto Ono
c68088038f
Launchable: Disable request retries when a timeout exception occurs (#12877)
When a Launchable server is unstable, a ReadTimeoutException occurs in the Launchable CLI. In such case, the Launchable CLI retries requests, which slows down CI execution. In this PR, I configured the environment variable SKIP_TIMEOUT_RETRY to disable retry attempts on requests(Link: https://github.com/launchableinc/cli/pull/992).

```
WARNING:urllib3.connectionpool:Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='api.mercury.launchableinc.com', port=443): Read timed out. (read timeout=15)")': /intake/organizations/ruby/workspaces/ruby/commits/collect/options
  WARNING:urllib3.connectionpool:Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='api.mercury.launchableinc.com', port=443): Read timed out. (read timeout=15)")': /intake/organizations/ruby/workspaces/ruby/commits/collect/options
  WARNING:urllib3.connectionpool:Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='api.mercury.launchableinc.com', port=443): Read timed out. (read timeout=15)")': /intake/organizations/ruby/workspaces/ruby/commits/collect/options
  HTTPSConnectionPool(host='api.mercury.launchableinc.com', port=443): Max retries exceeded with url: /intake/organizations/ruby/workspaces/ruby/commits/collect/options (Caused by ReadTimeoutError("HTTPSConnectionPool(host='api.mercury.launchableinc.com', port=443): Read timed out. (read timeout=15)"))
  Exception in thread "main" javax.net.ssl.SSLException: Connection reset
  	at sun.security.ssl.Alert.createSSLException(Alert.java:127)
  	at sun.security.ssl.TransportContext.fatal(TransportContext.java:331)
  	at sun.security.ssl.TransportContext.fatal(TransportContext.java:274)
  	at sun.security.ssl.TransportContext.fatal(TransportContext.java:269)
  	at sun.security.ssl.SSLSocketImpl.handleException(SSLSocketImpl.java:1572)
  	at sun.security.ssl.SSLSocketImpl.access$400(SSLSocketImpl.java:73)
  	at sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:982)
  	at org.apache.http.impl.io.SessionInputBufferImpl.streamRead(SessionInputBufferImpl.java:137)
  	at org.apache.http.impl.io.SessionInputBufferImpl.fillBuffer(SessionInputBufferImpl.java:153)
  	at org.apache.http.impl.io.SessionInputBufferImpl.readLine(SessionInputBufferImpl.java:280)
  	at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:138)
  	at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:56)
  	at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:259)
  	at org.apache.http.impl.DefaultBHttpClientConnection.receiveResponseHeader(DefaultBHttpClientConnection.java:163)
  	at org.apache.http.impl.conn.CPoolProxy.receiveResponseHeader(CPoolProxy.java:157)
  	at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:273)
  	at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:125)
  	at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:272)
  	at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:186)
  	at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89)
  	at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
  	at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)
  	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)
  	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:108)
  	at com.launchableinc.ingest.commits.CommitGraphCollector.transfer(CommitGraphCollector.java:131)
  	at com.launchableinc.ingest.commits.CommitIngester.run(CommitIngester.java:145)
  	at com.launchableinc.ingest.commits.CommitIngester.main(CommitIngester.java:72)
  	Suppressed: java.net.SocketException: Broken pipe (Write failed)
  		at java.net.SocketOutputStream.socketWrite0(Native Method)
  		at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:111)
  		at java.net.SocketOutputStream.write(SocketOutputStream.java:155)
  		at sun.security.ssl.SSLSocketOutputRecord.encodeAlert(SSLSocketOutputRecord.java:81)
  		at sun.security.ssl.TransportContext.fatal(TransportContext.java:362)
  		... 25 more
  Caused by: java.net.SocketException: Connection reset
  	at java.net.SocketInputStream.read(SocketInputStream.java:210)
  	at java.net.SocketInputStream.read(SocketInputStream.java:141)
  	at sun.security.ssl.SSLSocketInputRecord.read(SSLSocketInputRecord.java:464)
  	at sun.security.ssl.SSLSocketInputRecord.bytesInCompletePacket(SSLSocketInputRecord.java:68)
  	at sun.security.ssl.SSLSocketImpl.readApplicationRecord(SSLSocketImpl.java:1350)
  	at sun.security.ssl.SSLSocketImpl.access$300(SSLSocketImpl.java:73)
  	at sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:966)
  	... 20 more
  Couldn't get commit history from `/github/workspace/src`. Do you run command root of git-controlled directory? If not, please set a directory use by --source option.
  HTTPSConnectionPool(host='api.mercury.launchableinc.com', port=443): Read timed out. (read timeout=60)
  Command '['java', '-jar', '/root/.local/pipx/venvs/launchable/lib/python3.10/site-packages/launchable/jar/exe_deploy.jar', 'ingest:commit', '-endpoint', 
```

https://github.com/ruby/ruby/actions/runs/13572112090/job/37939529243
2025-03-12 02:34:03 +00:00
Naoto Ono
c939d0c85d
Launchable: Send stdout and stderr (#12785)
Currently, the Launchable team is developing a new feature to attach any logs. Attached log can be anything, such as system logs or stdout. Users can find these logs using any text search. Please note that this feature is a work in progress, so we can't use it yet.

I'm going to attach stdout and stderr as attached logs because they will be useful for finding interpreter bugs. When running tests, we sometimes see interpreter itself crash, and the stack is output to stderr. When debugging the cause of the issue, this feature is useful.
2025-03-06 12:39:39 +09:00
dependabot[bot]
e3960c5aa2 Bump actions/cache in /.github/actions/setup/directories
Bumps [actions/cache](https://github.com/actions/cache) from 4.2.1 to 4.2.2.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](0c907a75c2...d4323d4df1)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-06 08:46:09 +09:00
Naoto Ono
0c9f149b4d
Launchable: Fix launchable record session command failures (#12810)
Currently, the `launchable record session` command is failing some workflows such as YJIT on macOS. This occurs because of word splitting, as explained in https://www.shellcheck.net/wiki/SC2086. This PR addresses the issue.

```
+ launchable record session --build refs_pull_12785_merge_5ac818aaf7402e232de6b3e1b078765da3dc6279 --observation --flavor os=macos-14 --flavor test_task=check --flavor test_opts=--enable-yjit --flavor workflow=YJIT macOS Arm64 --test-suite yjit-test-all
Usage: launchable record session [OPTIONS]
Try 'launchable record session --help' for help.

Error: Got unexpected extra arguments (macOS Arm64)
Error: Process completed with exit code 2.
```

https://github.com/ruby/ruby/actions/runs/13535324545/job/37825826044#step:10:354
2025-02-26 03:50:54 +00:00
dependabot[bot]
8619520570 Bump actions/cache in /.github/actions/setup/directories
Bumps [actions/cache](https://github.com/actions/cache) from 4.2.0 to 4.2.1.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](1bd1e32a3b...0c907a75c2)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-20 12:18:28 +09:00
Naoto Ono
6e510d78c0
Launchable: Remove unused file names (#12782)
I found file names that were not used anymore. I'm gonna delete them in this PR.
2025-02-19 08:48:33 +09:00
Naoto Ono
cd27c580fa
Launchable: Add a workflow name as a flavor (#12720)
Adding a workflow name would be easier to understand the connection between a test session and GitHub workflow.
2025-02-10 16:55:02 +09:00
Naoto Ono
6ca8bc8562
Launchable: Fix broken links by passing GITHUB_SERVER_URL (#12704)
@peterzhu2118 mentioned that "View workflow run" button is broken in Launchable. It's because invalid URL is sent from compilers/actions.yaml. Launchable CLI builds URL based on the environment variables. In those variables, GITHUB_SERVER_URL is not set in this case.

Hence, I set GITHUB_SERVER_URL in compilers/actions.yaml in this PR.
2025-02-06 08:57:46 +09:00
Naoto Ono
cb586b2717
Launchable: Use Zero Input Subsetting (#12650) 2025-01-29 14:49:17 +09:00
Naoto Ono
76a67e4660
Launchable: Enable PTS observation mode (#12617)
Launchable offers the Predictive Test Selection feature for speeding up CI execution. Predictive Test Selection leverages machine learning to identify the right tests to run for a specific code change. By analyzing data from past test runs and considering the changes being tested, Launchable determines which tests are most relevant.

To evaluate the list of tests that Launchable selects, I enable PTS observation mode. Please note that there is no impacts on CI execution.
2025-01-24 08:37:52 +09:00
Nobuyoshi Nakada
d74e9ef712
CI: Make parents of PATH directories world-unwritable 2025-01-14 11:26:25 +09:00
Naoto Ono
e0591b666f
Launchable: Exit 0 not to stop CI pipeline (#12449) 2025-01-06 05:49:58 -05:00
dependabot[bot]
1adf4b1007 Bump gacts/run-and-post-run in /.github/actions/setup/directories
Bumps [gacts/run-and-post-run](https://github.com/gacts/run-and-post-run) from 1.4.1 to 1.4.2.
- [Release notes](https://github.com/gacts/run-and-post-run/releases)
- [Commits](4683764dd7...d803f6920a)

---
updated-dependencies:
- dependency-name: gacts/run-and-post-run
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-03 12:21:08 +09:00
Naoto Ono
a652d8b680
Launchable: Start recording test-spec in compilers.yaml (#12364) 2024-12-17 09:28:04 +00:00
Naoto Ono
1d3091b4db
Launchable: Refactor entrypoint.sh (#12314)
* Use `launchable record session` command to split test sessions based on test suites.
* Use BTESTS env instead of RUBY_TESTOPTS for passing CLI option to `make btest`.
* Group Launchable logs
* Add several flavors to identify the relationship between test session and GH workflow.
2024-12-13 07:13:40 +00:00
Naoto Ono
46e8a26c17
Launchable: Start recording test-spec results (#12302) 2024-12-12 16:32:35 +09:00
Naoto Ono
462e2cfccf
Launchable: Remove unnecessary command (#12299)
`launchable verify` command is designed for checking if CLI has been configured successfully. We've already checked it, so we don't need calling this command anymore.
2024-12-10 02:15:01 +00:00
Naoto Ono
652b0c13a7
Launchable: Remove FIXME comment (#12293)
https://github.com/launchableinc/cli/issues/786 has already been solved, so we can remove the comment.
2024-12-09 08:00:19 +00:00
Naoto Ono
676b4ec04b
Enable more Launchable integration in bootstraptest and test-all (#12255) 2024-12-09 16:25:43 +09:00
Naoto Ono
c73552e473
Revert "Launchable: Stop recording tests temporarily" (#12289)
Revert "Launchable: Stop recording tests temporarily (#12268)"

This reverts commit 866f1a1f2d6f0425b1535fb5697a30404e83e7c2.
2024-12-09 11:31:13 +09:00
Nobuyoshi Nakada
78614ee900
CI: Clean up intermediate files more 2024-12-06 21:47:35 +09:00
dependabot[bot]
af2fc89f9f Bump actions/cache in /.github/actions/setup/directories
Bumps [actions/cache](https://github.com/actions/cache) from 4.1.2 to 4.2.0.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](6849a64899...1bd1e32a3b)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-06 12:04:10 +09:00
Hiroshi SHIBATA
bc214d10b8 Added jemalloc build to GitHub Actions 2024-12-06 10:31:16 +09:00
Naoto Ono
866f1a1f2d
Launchable: Stop recording tests temporarily (#12268)
There is a system trouble in Launchable, so I'm going to stop recording tests temporarily in compilers.yaml
2024-12-05 17:58:46 +09:00
Naoto Ono
de50236c3a
Enable Launchable integration in compilers.yml (#12136) 2024-12-03 15:02:18 +09:00
Hiroshi SHIBATA
6fc8607b7a Skip make install with gmp build 2024-11-21 18:46:27 +09:00
Naoto Ono
c23bf42d79 Fix error "fatal: detected dubious ownership in repository at '/github/workspace/src'" 2024-11-21 16:59:14 +09:00
John Bampton
9783cdb0d7
Update action.yml - fix typo [ci skip] 2024-11-14 09:23:20 +09:00
dependabot[bot]
4df0038d5e Bump actions/checkout in /.github/actions/setup/directories
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.2.1 to 4.2.2.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](eef61447b9...11bd71901b)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-24 11:47:18 +09:00
Nobuyoshi Nakada
baae365709 Extract common code as a function 2024-10-23 23:02:15 +09:00
dependabot[bot]
25adcddcbc Bump actions/cache in /.github/actions/setup/directories
Bumps [actions/cache](https://github.com/actions/cache) from 4.1.1 to 4.1.2.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](3624ceb22c...6849a64899)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-23 11:48:33 +09:00
Peter Zhu
c6c1e111b1 Remove unused shared GC configuration in GitHub Actions
Shared GC CI is no longer running in the compilers workflow, so we can
remove it from .github/actions/compilers/entrypoint.sh.
2024-10-16 08:53:07 -04:00