32 Commits

Author SHA1 Message Date
Jun Aruga
943b5f66f7 CI: Launchable: Fix errors at actions/setup-python on ppc64le/s390x
The following errors happened at the actions/setup-python step.

https://github.com/ruby/ruby/actions/runs/18229870239

> The version '3.x' with architecture 's390x' was not found for Ubuntu 24.04.
> The list of all available versions can be found here: https://raw.githubusercontent.com/actions/python-versions/main/versions-manifest.json

> The version '3.x' with architecture 'ppc64' was not found for Ubuntu 24.04.
> The list of all available versions can be found here: https://raw.githubusercontent.com/actions/python-versions/main/versions-manifest.json

After skipping the actions/setup-python step, the following errors also
happened at the actions/setup-java step.

https://github.com/ruby/ruby/actions/runs/18355975425?pr=14721

> make-ibm (check, ubuntu-24.04-ppc64le)
> Could not find satisfied version for SemVer '17'.

> make-ibm (check, ubuntu-24.04-s390x)
> The process '/usr/bin/bash' failed with exit code 1

> make-ibm (check, ubuntu-24.04-s390x)
> Process completed with exit code 127.

To fix the errors, I started using the Java distribution semeru (IBM Semeru
Runtime Open Edition) on the ppc64le/s390x cases.

You can see the following page for the details of the Java distribution semeru.

https://github.com/actions/setup-java?tab=readme-ov-file#supported-distributions
ead9eaa3cf/src/distributions/semeru/installer.ts (L20-L27)
2025-10-17 10:37:15 +01:00
Naoto Ono
fbaad485db
Launchable: Remove launchable subset command (#13969)
I've enabled the [Predictive Test Selection](https://www.launchableinc.com/docs/features/predictive-test-selection/) feature, which let machine-learning model selects the appropriate tests to reduce CI execution time in https://github.com/ruby/ruby/pull/12617.

However, I noticed that there are some problems for enabling PTS in Ruby CI after several experiments. Until fixing the problem, I'll disable this feature by removing `launchable subset` command.
2025-07-23 11:18:11 +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
87d33583af
CI: Store session info in variables directly 2025-06-19 21:17:55 +09:00
Nobuyoshi Nakada
b670a04ac7
Fix a missing double quote 2025-06-15 20:58:06 +09:00
Nobuyoshi Nakada
78d2a2308f CI: Split cleanups of Launchable generated files 2025-06-06 14:03:32 +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
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
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
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
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
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
John Bampton
5e799cc182
Fix spelling 2024-10-11 15:16:05 +00:00
Naoto Ono
00e2e24e6f Launchable: Fix condition for bootstraptest 2024-08-13 10:28:14 +09:00
Naoto Ono
e0f4cbd612 Integrate Launchable into windows 2024-08-01 17:49:32 +09:00
Naoto Ono
509f1b50c2 Lanunchable: Add missing condition statement
Addresses https://github.com/ruby/ruby/pull/11183/files#r1680617485.
2024-07-18 12:22:47 +09:00
Naoto Ono
2b3bfbc4c7 Launchable: Fix Python package path 2024-07-17 16:53:58 +09:00
Naoto Ono
5b78925455 Integrate Launchable into make btest 2024-07-08 10:15:04 +09:00
Naoto Ono
afd42e4db7 Use $GITHUB_PATH 2024-06-24 13:25:30 +09:00
Naoto Ono
454b939d7c Launchable: Remove unused codes 2024-03-18 16:49:33 +09:00
Naoto Ono
7de60d6b89 Do not fail launchable verify command 2024-03-13 12:36:38 +09:00
Nobuyoshi Nakada
8e3cb69a83
Report to Launchable at post-run
Instead of separate two actions, register the post run at setup.

Co-authored-by: Naoto Ono <onoto1998@gmail.com>
2024-03-10 12:32:50 +00:00
Naoto Ono
51e32523c2 Resolve a warning in launchable record build command 2024-02-29 09:57:30 +09:00
Naoto Ono
459198999e Expand Launchable into ubuntu workflow 2024-02-26 13:20:29 +09:00