Buildkite pipeline for integration tests (#1863)
This commit is contained in:
14
.buildkite/Dockerfile
Normal file
14
.buildkite/Dockerfile
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
ARG NODE_VERSION=${NODE_VERSION:-18}
|
||||||
|
FROM node:$NODE_VERSION
|
||||||
|
|
||||||
|
# Install required tools
|
||||||
|
RUN apt-get clean -y && \
|
||||||
|
apt-get -qy update && \
|
||||||
|
apt-get -y install zip && \
|
||||||
|
apt-get clean && \
|
||||||
|
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||||
|
|
||||||
|
WORKDIR /usr/src/app
|
||||||
|
|
||||||
|
COPY . .
|
||||||
|
RUN npm install --production=false
|
||||||
20
.buildkite/certs/ca.crt
Executable file
20
.buildkite/certs/ca.crt
Executable file
@ -0,0 +1,20 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDSjCCAjKgAwIBAgIVAJQLm8V2LcaCTHUcoIfO+KL63nG3MA0GCSqGSIb3DQEB
|
||||||
|
CwUAMDQxMjAwBgNVBAMTKUVsYXN0aWMgQ2VydGlmaWNhdGUgVG9vbCBBdXRvZ2Vu
|
||||||
|
ZXJhdGVkIENBMB4XDTIwMDIyNjA1NTA1N1oXDTIzMDIyNTA1NTA1N1owNDEyMDAG
|
||||||
|
A1UEAxMpRWxhc3RpYyBDZXJ0aWZpY2F0ZSBUb29sIEF1dG9nZW5lcmF0ZWQgQ0Ew
|
||||||
|
ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDYyajkPvGtUOE5M1OowQfB
|
||||||
|
kWVrWjo1+LIxzgCeRHp0YztLtdVJ0sk2xoSrt2uZpxcPepdyOseLTjFJex1D2yCR
|
||||||
|
AEniIqcFif4G72nDih2LlbhpUe/+/MTryj8ZTkFTzI+eMmbQi5FFMaH+kwufmdt/
|
||||||
|
5/w8YazO18SxxJUlzMqzfNUrhM8vvvVdxgboU7PWhk28wZHCMHQovomHmzclhRpF
|
||||||
|
N0FMktA98vHHeRjH19P7rNhifSd7hZzoH3H148HVAKoPgqnZ6vW2O2YfAWOP6ulq
|
||||||
|
cyszr57p8fS9B2wSdlWW7nVHU1JuKcYD67CxbBS23BeGFgCj4tiNrmxO8S5Yf85v
|
||||||
|
AgMBAAGjUzBRMB0GA1UdDgQWBBSWAlip9eoPmnG4p4OFZeOUBlAbNDAfBgNVHSME
|
||||||
|
GDAWgBSWAlip9eoPmnG4p4OFZeOUBlAbNDAPBgNVHRMBAf8EBTADAQH/MA0GCSqG
|
||||||
|
SIb3DQEBCwUAA4IBAQA19qqrMTWl7YyId+LR/QIHDrP4jfxmrEELrAL58q5Epc1k
|
||||||
|
XxZLzOBSXoBfBrPdv+3XklWqXrZjKWfdkux0Xmjnl4qul+srrZDLJVZG3I7IrITh
|
||||||
|
AmQUmL9MuPiMnAcxoGZp1xpijtW8Qmd2qnambbljWfkuVaa4hcVRfrAX6TciIQ21
|
||||||
|
bS5aeLGrPqR14h30YzDp0RMmTujEa1o6ExN0+RSTkE9m89Q6WdM69az8JW7YkWqm
|
||||||
|
I+UCG3TcLd3TXmN1zNQkq4y2ObDK4Sxy/2p6yFPI1Fds5w/zLfBOvvPQY61vEqs8
|
||||||
|
SCCcQIe7f6NDpIRIBlty1C9IaEHj7edyHjF6rtYb
|
||||||
|
-----END CERTIFICATE-----
|
||||||
27
.buildkite/certs/ca.key
Normal file
27
.buildkite/certs/ca.key
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
MIIEpgIBAAKCAQEA2Mmo5D7xrVDhOTNTqMEHwZFla1o6NfiyMc4AnkR6dGM7S7XV
|
||||||
|
SdLJNsaEq7drmacXD3qXcjrHi04xSXsdQ9sgkQBJ4iKnBYn+Bu9pw4odi5W4aVHv
|
||||||
|
/vzE68o/GU5BU8yPnjJm0IuRRTGh/pMLn5nbf+f8PGGsztfEscSVJczKs3zVK4TP
|
||||||
|
L771XcYG6FOz1oZNvMGRwjB0KL6Jh5s3JYUaRTdBTJLQPfLxx3kYx9fT+6zYYn0n
|
||||||
|
e4Wc6B9x9ePB1QCqD4Kp2er1tjtmHwFjj+rpanMrM6+e6fH0vQdsEnZVlu51R1NS
|
||||||
|
binGA+uwsWwUttwXhhYAo+LYja5sTvEuWH/ObwIDAQABAoIBAQC8QDGnMnmPdWJ+
|
||||||
|
13FYY3cmwel+FXXjFDk5QpgK15A2rUz6a8XxO1d7d1wR+U84uH4v9Na6XQyWjaoD
|
||||||
|
EyPQnuJiyAtgkZLUHoY244PGR5NsePEQlBSCKmGeF5w/j1LvP/2e9EmP4wKdQYJY
|
||||||
|
nLxFNcgEBCFnFbKIU5n8fKa/klybCrwlBokenyBro02tqH4LL7h1YMRRrl97fv1V
|
||||||
|
e/y/0WcMN+KnMglfz6haimBRV2yamCCHHmBImC+wzOgT/quqlxPfI+a3ScHxuA65
|
||||||
|
3QyCavaqlPh+T3lXnN/Na4UWqFtzMmwgJX2x1zM5qiln46/JoDiXtagvV43L3rNs
|
||||||
|
LhPRFeIRAoGBAPhEB7nNpEDNjIRUL6WpebWS9brKAVY7gYn7YQrKGhhCyftyaiBZ
|
||||||
|
zYgxPaJdqYXf+DmkWlANGoYiwEs40QwkR/FZrvO4+Xh3n3dgtl59ZmieuoQvDsG+
|
||||||
|
RYIj+TfBaqhewhZNMMl7dxz7DeyQhyRCdsvl3VqJM0RuOsIrzrhCIEItAoGBAN+K
|
||||||
|
lgWI7swDpOEaLmu+IWMkGImh1LswXoZqIgi/ywZ7htZjPzidOIeUsMi+lrYsKojG
|
||||||
|
uU3sBxASsf9kYXDnuUuUbGT5M/N2ipXERt7klUAA/f5sg1IKlTrabaN/HGs/uNtf
|
||||||
|
Efa8v/h2VyTurdPCJ17TNpbOMDwX1qGM62tyt2CLAoGBAIHCnP8iWq18QeuQTO8b
|
||||||
|
a3/Z9hHRL22w4H4MI6aOB6GSlxuTq6CJD4IVqo9IwSg17fnCy2l3z9s4IqWuZqUf
|
||||||
|
+XJOW8ELd2jdrT2qEOfGR1Z7UCVyqxXcq1vgDYx0zZh/HpalddB5dcJx/c8do2Ty
|
||||||
|
UEE2PcHqYB9uNcvzNbLc7RtpAoGBALbuU0yePUTI6qGnajuTcQEPpeDjhRHWSFRZ
|
||||||
|
ABcG1N8uMS66Mx9iUcNp462zgeP8iqY5caUZtMHreqxT+gWKK7F0+as7386pwElF
|
||||||
|
QPXgO18QMMqHBIQb0vlBjJ1SRPBjSiSDTVEML1DljvTTOX7kEJHh6HdKrmBO5b54
|
||||||
|
cqMQUo53AoGBAPVWRPUXCqlBz914xKna0ZUh2aesRBg5BvOoq9ey9c52EIU5PXL5
|
||||||
|
0Isk8sWSsvhl3tjDPBH5WuL5piKgnCTqkVbEHmWu9s1T57Mw6NuxlPMLBWvyv4c6
|
||||||
|
tB9brOxv0ui3qGMuBsBoDKbkNnwXyOXLyFg7O+H4l016A3mLQzJM+NGV
|
||||||
|
-----END RSA PRIVATE KEY-----
|
||||||
21
.buildkite/certs/testnode.crt
Executable file
21
.buildkite/certs/testnode.crt
Executable file
@ -0,0 +1,21 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDYjCCAkqgAwIBAgIVAIClHav09e9XGWJrnshywAjUHTnXMA0GCSqGSIb3DQEB
|
||||||
|
CwUAMDQxMjAwBgNVBAMTKUVsYXN0aWMgQ2VydGlmaWNhdGUgVG9vbCBBdXRvZ2Vu
|
||||||
|
ZXJhdGVkIENBMB4XDTIzMDMyODE3MDIzOVoXDTI2MDMyNzE3MDIzOVowEzERMA8G
|
||||||
|
A1UEAxMIaW5zdGFuY2UwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCV
|
||||||
|
+t5/g6u2r3awCtzqp17KG0hRxzkVoJoF8DYzVh+Rv9ymxQW0C/U8dQihAjkZHaIA
|
||||||
|
n49lSyNLkwWtmqQgPcimV4d6XuTYx2ahDixXYtjmoOSwH5dRtovKPCNKDPkUj9Vq
|
||||||
|
NwMW0uB1VxniMKI4DnYFqBgHL9kQKhQqvas6Gx0X6ptGRCLYCtVxeFcau6nnkZJt
|
||||||
|
urb+HNV5waOh0uTmsqnnslK3NjCQ/f030vPKxM5fOqOU5ajUHpZFJ6ZFmS32074H
|
||||||
|
l+mZoRT/GtbnVtIg+CJXsWThF3/L4iBImv+rkY9MKX5fyMLJgmIJG68S90IQGR8c
|
||||||
|
Z2lZYzC0J7zjMsYlODbDAgMBAAGjgYswgYgwHQYDVR0OBBYEFIDIcECn3AVHc3jk
|
||||||
|
MpQ4r7Kc3WCsMB8GA1UdIwQYMBaAFJYCWKn16g+acbing4Vl45QGUBs0MDsGA1Ud
|
||||||
|
EQQ0MDKCCWxvY2FsaG9zdIIIaW5zdGFuY2WHBH8AAAGHEAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAGCA2VzMTAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQBtX3RQ5ATpfORM
|
||||||
|
lrnhaUPGOWkjnb3p3BrdAWUaWoh136QhaXqxKiALQQhTtTerkXOcuquy9MmAyYvS
|
||||||
|
9fDdGvLCAO8pPCXjnzonCHerCLGdS7f/eqvSFWCdy7LPHzTAFYfVWVvbZed+83TL
|
||||||
|
bDY63AMwIexj34vJEStMapuFwWx05fstE8qZWIbYCL87sF5H/MRhzlz3ScAhQ1N7
|
||||||
|
tODH7zvLzSxFGGEzCIKZ0iPFKbd3Y0wE6SptDSKhOqlnC8kkNeI2GjWsqVfHKsoF
|
||||||
|
pDFmri7IfOucuvalXJ6xiHPr9RDbuxEXs0u8mteT5nFQo7EaEGdHpg1pNGbfBOzP
|
||||||
|
lmj/dRS9
|
||||||
|
-----END CERTIFICATE-----
|
||||||
27
.buildkite/certs/testnode.key
Executable file
27
.buildkite/certs/testnode.key
Executable file
@ -0,0 +1,27 @@
|
|||||||
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
MIIEowIBAAKCAQEAlfref4Ortq92sArc6qdeyhtIUcc5FaCaBfA2M1Yfkb/cpsUF
|
||||||
|
tAv1PHUIoQI5GR2iAJ+PZUsjS5MFrZqkID3IpleHel7k2MdmoQ4sV2LY5qDksB+X
|
||||||
|
UbaLyjwjSgz5FI/VajcDFtLgdVcZ4jCiOA52BagYBy/ZECoUKr2rOhsdF+qbRkQi
|
||||||
|
2ArVcXhXGrup55GSbbq2/hzVecGjodLk5rKp57JStzYwkP39N9LzysTOXzqjlOWo
|
||||||
|
1B6WRSemRZkt9tO+B5fpmaEU/xrW51bSIPgiV7Fk4Rd/y+IgSJr/q5GPTCl+X8jC
|
||||||
|
yYJiCRuvEvdCEBkfHGdpWWMwtCe84zLGJTg2wwIDAQABAoIBAAEP7HYNNnDWdYMD
|
||||||
|
+WAtYM12X/W5s/wUP94juaBI4u4iZH2EZodlixEdZUCTXgq43WsDUhxX05s7cE+p
|
||||||
|
H5DuSCHtoo2WHvGKAposwRDm2f3YVWQ2Xyb2ahNt69LYHHWrO+XQ60YYTa3r8Gn3
|
||||||
|
7dFR3I016/jyn5DeEVaglvS1dfj2UG4ybR4KkMfcKd94X0rKvz3wzAhHIh+hwMtv
|
||||||
|
sVk7V4vSnKf2mJXwIVECTolnEJEkCjWjjymgUJYKT8yN7JnAsHRcvMa6kWwIGrLp
|
||||||
|
oQCEaJwYM6ynCRS989pLt3vA2iu5VkYhiHXJ9Ds/5b5yzhzmj+ymzKbFKrrUUrmn
|
||||||
|
+2Jp1K0CgYEAw8BchALsD/+JuoXjinA14MH7PZjIsXyhtPk+c4pk42iMNyg1J8XF
|
||||||
|
Y/ITepLYsl2bZqQI1jOJdDqsTwIsva9r749lsmkYI3VOxhi7+qBK0sThR66C87lX
|
||||||
|
iU2QpnZ9NloC6ort4a3MEvZ/gRQcXdBrNlNoza2p7PHAVDTnsdSrNKUCgYEAxCQV
|
||||||
|
uo85oZyfnMufn/gcI9IeYOgiB0tO3a8cAFX2wQW1y935t6Z13ApUQc4EnCOH7ZBc
|
||||||
|
td5kT+xGdRWnfPZ38FM1dd5MBdGE69s3q8pJDUExSgNLqaF6/5bD32qui66L3ugu
|
||||||
|
eMjxrzqJsc2uQTPCs18SGsyRmf54DpY8HglOmUcCgYAGRDgx+a347SNJl1OrcOAo
|
||||||
|
q80RMbzrAaRjmL8JD9se9I/YjC73cPtasbsx51WMkDaTWJj30nqJ//7YIKeyAtWf
|
||||||
|
u6Vzyq19JRo6eTw7T7pVePwFQW7rwnks6hDBY3WqscL6IyxuVxP7X2zBgxVNY4ir
|
||||||
|
Gox2WSLhdPPFPlRUewxoCQKBgAJvqE1u5fpZ5ame5dao0ECppXLyrymEB/C88g4X
|
||||||
|
Az+WgJGNqkJbsO8QuccvdeMylcefmWcw4fIULzPZFwF4VjkH74wNPMh9t7buPBzI
|
||||||
|
IGwnuSMAM3ph5RMzni8yNgTKIDaej6U0abwRcBBjS5zHtc1giusGS3CsNnWH7Cs7
|
||||||
|
VlyVAoGBAK+prq9t9x3tC3NfCZH8/Wfs/X0T1qm11RiL5+tOhmbguWAqSSBy8OjX
|
||||||
|
Yh8AOXrFuMGldcaTXxMeiKvI2cyybnls1MFsPoeV/fSMJbex7whdeJeTi66NOSKr
|
||||||
|
oftUHvkHS0Vv/LicMEOufFGslb4T9aPJ7oyhoSlz9CfAutDWk/q/
|
||||||
|
-----END RSA PRIVATE KEY-----
|
||||||
20
.buildkite/certs/testnode_san.crt
Normal file
20
.buildkite/certs/testnode_san.crt
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDVjCCAj6gAwIBAgIULh42yRefYlRRl1hvt055LrUH0HwwDQYJKoZIhvcNAQEL
|
||||||
|
BQAwNDEyMDAGA1UEAxMpRWxhc3RpYyBDZXJ0aWZpY2F0ZSBUb29sIEF1dG9nZW5l
|
||||||
|
cmF0ZWQgQ0EwHhcNMjAwMjI4MDMzNzIwWhcNMjMwMjI3MDMzNzIwWjATMREwDwYD
|
||||||
|
VQQDEwhpbnN0YW5jZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAIUP
|
||||||
|
t267NN21z+3ukajej8eojSXwP6zHxy7CUAp+sQ7bTq2XCKxkYX3CW9ThcS4cV9mL
|
||||||
|
ayYdWEYnbEDGYPQDo7Wk3Ih5OEXTMZb/yNEx5D4S2lGMOS5bCDdYx6GvwCMG4jNx
|
||||||
|
aMktosaxpprAJiHh2oLgQk0hQc/a9JfMo6kJKtuhjxsxjxLwcOHhuaUD7NS0Pjop
|
||||||
|
CJkSYcrL+nnQPQjKe4uLhAbSyiX914h4QX0CJ0e4z1ccdDX2PFWTrwaIf//vQhCR
|
||||||
|
wP2YKdfjR0JB4oDAlu85GsIs2cFLPysM5ufuNZO4fCr8uOwloKI8zZ2HhlIfBEcY
|
||||||
|
Gcy4g9N/9epmxMXZlGcCAwEAAaOBgDB+MB0GA1UdDgQWBBRefYm8DHHDdkTPHhS1
|
||||||
|
HEUwTb2uiDAfBgNVHSMEGDAWgBSWAlip9eoPmnG4p4OFZeOUBlAbNDAxBgNVHREE
|
||||||
|
KjAogglsb2NhbGhvc3SHBH8AAAGHEAAAAAAAAAAAAAAAAAAAAAGCA2VzMTAJBgNV
|
||||||
|
HRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQC+pauqM2wJjQaHyHu+kIm59P4b/5Oj
|
||||||
|
IH1cYCQfMB7Y2UMLxp0ew+f7o7zzE2DA52YYFDWy6J5DVWtSBPyeFGgX+RH+aA+9
|
||||||
|
Iv4cc9QpAs6aFjncorHrzNOrWLgCHIeRAxTR0CAkeP2dUZfDBuMpRyP6rAsYzyLH
|
||||||
|
Rb3/BfYJSI5vxgt5Ke49Y/ljDKFJTyDmAVrHQ4JWrseYE1UZ2eDkBXeiRlYE/QtB
|
||||||
|
YsrUSqdL6zvFZyUcilxDUUabNcA+GgeGZ2lAEA90F8vwi62QwRXo3Iv1Hz+6xc43
|
||||||
|
nFofDK9D8/qkrUD9iuhpx1974QwPhwWyjn9RZRpbZA4ngRL+szdRXR4N
|
||||||
|
-----END CERTIFICATE-----
|
||||||
27
.buildkite/certs/testnode_san.key
Normal file
27
.buildkite/certs/testnode_san.key
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
MIIEogIBAAKCAQEAhQ+3brs03bXP7e6RqN6Px6iNJfA/rMfHLsJQCn6xDttOrZcI
|
||||||
|
rGRhfcJb1OFxLhxX2YtrJh1YRidsQMZg9AOjtaTciHk4RdMxlv/I0THkPhLaUYw5
|
||||||
|
LlsIN1jHoa/AIwbiM3FoyS2ixrGmmsAmIeHaguBCTSFBz9r0l8yjqQkq26GPGzGP
|
||||||
|
EvBw4eG5pQPs1LQ+OikImRJhysv6edA9CMp7i4uEBtLKJf3XiHhBfQInR7jPVxx0
|
||||||
|
NfY8VZOvBoh//+9CEJHA/Zgp1+NHQkHigMCW7zkawizZwUs/Kwzm5+41k7h8Kvy4
|
||||||
|
7CWgojzNnYeGUh8ERxgZzLiD03/16mbExdmUZwIDAQABAoIBAEwhjulLMVc9JEfV
|
||||||
|
PP/qv0cUOBYh3LzF3T/yq4slq7Z9YgnOJYdFM8aZgqNNjc09KEJvE5JOLeiNu9Ff
|
||||||
|
768Nugg+2HM5MCo7SN9FYCfZLOcbMFCCM2FDcnMAV9A512vzD08xryuT8dNPZ6yZ
|
||||||
|
DfhK2hQRrb2lrpr3gwSrcGRRu3THqvq7X1RIjpLV3teDMeP8rQPAlpj8fmP+kdVV
|
||||||
|
5y1ihiDIo87McihG9FMavJtBDXQkUEuVw6eIeir8L/zHHD/ZwhYjNHZGWbrB88sz
|
||||||
|
CkJkfWh/FlA63tCVdJzkmnERALLTVy9mR0Sq6sUlnFhFNO2BRdWgYLrcp9McfTJC
|
||||||
|
e8+WsSECgYEAuwQ3nAaFL0jqYu1AREyKT/f3WUenf2UsX7dwwV2/yFtQvkzW7ji4
|
||||||
|
uZLnfUnZBojtHf35dRo+hDgtvhZhgZNAuPPsbOl/EIMTcbChEqV/3CSTFlhLFM1d
|
||||||
|
hfM9PoM+Bt/pyUNabjD1sWM0X7WeUhzcddshY3S4daBsNsLuOzweRRcCgYEAtiSS
|
||||||
|
4qiiGafYsY7gOHuAlOhs/00+1uWIFEHKgoHM9vzCxDN3LCmBdynHk8ZE2TAdhw+l
|
||||||
|
7xpu6LUxKQDfGmVZa9Epg0kQmVq9c54oQP57pJ3tR+68++insEkfnaZH8jblfq2s
|
||||||
|
sSkFrY3pdS19edq60nuft64kswKRUUkamCXTXTECgYBdoSfiMpV9bekC7DsPtq5M
|
||||||
|
iR3KEgi2zEViCmomNTRuL+GF1NyKWdWJ+xVwcYd5MRZdvKimyyPfeGzWTUg14i42
|
||||||
|
KtEEWgZmkukqMz8BIeCYq6sENeIpIQQgqv3PjU+Bi5r1S4Y7wsFPNRakkD4aaB6r
|
||||||
|
1rCppWcwZMeoxwEUoO2aswKBgBdDIIdWJi3EpAY5SyWrkEZ0UMdiZC4p7nE33ddB
|
||||||
|
IJ5CtdU9BXFcc652ZYjX/58FaCABvZ2F8LhDu92SwOusGfmNIxIjWL1dO2jywA1c
|
||||||
|
8wmZKd7P/M7nbdMz45fMzs9+d1zwbWfK53C8+R4AC1BuwQF0zHc3BHTgVRLelUjt
|
||||||
|
O8thAoGAdO2gHIqEsZzTgbvLbsh52eVbumjfNGnrnEv1fjb+o+/wAol8dymcmzbL
|
||||||
|
bZCRzoyA0qwU9kdPFgX46H6so6o1tUM2GQtVFoT6kDnPv7EkLQK0C4cDh6OOHxDU
|
||||||
|
NPvr/9fHhQd9EDWDvS1JnVMAdKDO6ELp3SoKGGmCXR2QplnqWAk=
|
||||||
|
-----END RSA PRIVATE KEY-----
|
||||||
67
.buildkite/functions/cleanup.sh
Executable file
67
.buildkite/functions/cleanup.sh
Executable file
@ -0,0 +1,67 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#
|
||||||
|
# Shared cleanup routines between different steps
|
||||||
|
#
|
||||||
|
# Please source .ci/functions/imports.sh as a whole not just this file
|
||||||
|
#
|
||||||
|
# Version 1.0.0
|
||||||
|
# - Initial version after refactor
|
||||||
|
|
||||||
|
function cleanup_volume {
|
||||||
|
if [[ "$(docker volume ls -q -f name=$1)" ]]; then
|
||||||
|
echo -e "\033[34;1mINFO:\033[0m Removing volume $1\033[0m"
|
||||||
|
(docker volume rm "$1") || true
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
function container_running {
|
||||||
|
if [[ "$(docker ps -q -f name=$1)" ]]; then
|
||||||
|
return 0;
|
||||||
|
else return 1;
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
function cleanup_node {
|
||||||
|
if container_running "$1"; then
|
||||||
|
echo -e "\033[34;1mINFO:\033[0m Removing container $1\033[0m"
|
||||||
|
(docker container rm --force --volumes "$1") || true
|
||||||
|
fi
|
||||||
|
if [[ -n "$1" ]]; then
|
||||||
|
echo -e "\033[34;1mINFO:\033[0m Removing volume $1-${suffix}-data\033[0m"
|
||||||
|
cleanup_volume "$1-${suffix}-data"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
function cleanup_network {
|
||||||
|
if [[ "$(docker network ls -q -f name=$1)" ]]; then
|
||||||
|
echo -e "\033[34;1mINFO:\033[0m Removing network $1\033[0m"
|
||||||
|
(docker network rm "$1") || true
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function cleanup_trap {
|
||||||
|
status=$?
|
||||||
|
set +x
|
||||||
|
if [[ "$DETACH" != "true" ]]; then
|
||||||
|
echo -e "\033[34;1mINFO:\033[0m clean the network if not detached (start and exit)\033[0m"
|
||||||
|
cleanup_all_in_network "$1"
|
||||||
|
fi
|
||||||
|
# status is 0 or SIGINT
|
||||||
|
if [[ "$status" == "0" || "$status" == "130" ]]; then
|
||||||
|
echo -e "\n\033[32;1mSUCCESS run-tests\033[0m"
|
||||||
|
exit 0
|
||||||
|
else
|
||||||
|
echo -e "\n\033[31;1mFAILURE during run-tests\033[0m"
|
||||||
|
exit ${status}
|
||||||
|
fi
|
||||||
|
};
|
||||||
|
function cleanup_all_in_network {
|
||||||
|
|
||||||
|
if [[ -z "$(docker network ls -q -f name="^$1\$")" ]]; then
|
||||||
|
echo -e "\033[34;1mINFO:\033[0m $1 is already deleted\033[0m"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
containers=$(docker network inspect -f '{{ range $key, $value := .Containers }}{{ printf "%s\n" .Name}}{{ end }}' $1)
|
||||||
|
while read -r container; do
|
||||||
|
cleanup_node "$container"
|
||||||
|
done <<< "$containers"
|
||||||
|
cleanup_network $1
|
||||||
|
echo -e "\033[32;1mSUCCESS:\033[0m Cleaned up and exiting\033[0m"
|
||||||
|
};
|
||||||
60
.buildkite/functions/imports.sh
Executable file
60
.buildkite/functions/imports.sh
Executable file
@ -0,0 +1,60 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#
|
||||||
|
# Sets up all the common variables and imports relevant functions
|
||||||
|
#
|
||||||
|
# Version 1.0.1
|
||||||
|
# - Initial version after refactor
|
||||||
|
# - Validate STACK_VERSION asap
|
||||||
|
|
||||||
|
function require_stack_version() {
|
||||||
|
if [[ -z $STACK_VERSION ]]; then
|
||||||
|
echo -e "\033[31;1mERROR:\033[0m Required environment variable [STACK_VERSION] not set\033[0m"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
require_stack_version
|
||||||
|
|
||||||
|
if [[ -z $es_node_name ]]; then
|
||||||
|
# only set these once
|
||||||
|
set -euo pipefail
|
||||||
|
export TEST_SUITE=${TEST_SUITE-free}
|
||||||
|
export RUNSCRIPTS=${RUNSCRIPTS-}
|
||||||
|
export DETACH=${DETACH-false}
|
||||||
|
export CLEANUP=${CLEANUP-false}
|
||||||
|
|
||||||
|
export es_node_name=instance
|
||||||
|
export elastic_password=changeme
|
||||||
|
export elasticsearch_image=elasticsearch
|
||||||
|
export elasticsearch_scheme="https"
|
||||||
|
if [[ $TEST_SUITE != "platinum" ]]; then
|
||||||
|
export elasticsearch_scheme="http"
|
||||||
|
fi
|
||||||
|
export elasticsearch_url=${elasticsearch_scheme}://elastic:${elastic_password}@${es_node_name}:9200
|
||||||
|
export external_elasticsearch_url=${elasticsearch_url/$es_node_name/localhost}
|
||||||
|
export elasticsearch_container="${elasticsearch_image}:${STACK_VERSION}"
|
||||||
|
|
||||||
|
export suffix=rest-test
|
||||||
|
export moniker=$(echo "$elasticsearch_container" | tr -C "[:alnum:]" '-')
|
||||||
|
export network_name=${moniker}${suffix}
|
||||||
|
|
||||||
|
export ssl_cert="${script_path}/certs/testnode.crt"
|
||||||
|
export ssl_key="${script_path}/certs/testnode.key"
|
||||||
|
export ssl_ca="${script_path}/certs/ca.crt"
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
export script_path=$(dirname $(realpath -s $0))
|
||||||
|
source $script_path/functions/cleanup.sh
|
||||||
|
source $script_path/functions/wait-for-container.sh
|
||||||
|
trap "cleanup_trap ${network_name}" EXIT
|
||||||
|
|
||||||
|
|
||||||
|
if [[ "$CLEANUP" == "true" ]]; then
|
||||||
|
cleanup_all_in_network $network_name
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo -e "\033[34;1mINFO:\033[0m Creating network $network_name if it does not exist already \033[0m"
|
||||||
|
docker network inspect "$network_name" > /dev/null 2>&1 || docker network create "$network_name"
|
||||||
|
|
||||||
36
.buildkite/functions/wait-for-container.sh
Executable file
36
.buildkite/functions/wait-for-container.sh
Executable file
@ -0,0 +1,36 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#
|
||||||
|
# Exposes a routine scripts can call to wait for a container if that container set up a health command
|
||||||
|
#
|
||||||
|
# Please source .ci/functions/imports.sh as a whole not just this file
|
||||||
|
#
|
||||||
|
# Version 1.0.1
|
||||||
|
# - Initial version after refactor
|
||||||
|
# - Make sure wait_for_contiainer is silent
|
||||||
|
|
||||||
|
function wait_for_container {
|
||||||
|
set +x
|
||||||
|
until ! container_running "$1" || (container_running "$1" && [[ "$(docker inspect -f "{{.State.Health.Status}}" ${1})" != "starting" ]]); do
|
||||||
|
echo ""
|
||||||
|
docker inspect -f "{{range .State.Health.Log}}{{.Output}}{{end}}" ${1}
|
||||||
|
echo -e "\033[34;1mINFO:\033[0m waiting for node $1 to be up\033[0m"
|
||||||
|
sleep 2;
|
||||||
|
done;
|
||||||
|
|
||||||
|
# Always show logs if the container is running, this is very useful both on CI as well as while developing
|
||||||
|
if container_running $1; then
|
||||||
|
docker logs $1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! container_running $1 || [[ "$(docker inspect -f "{{.State.Health.Status}}" ${1})" != "healthy" ]]; then
|
||||||
|
cleanup_all_in_network $2
|
||||||
|
echo
|
||||||
|
echo -e "\033[31;1mERROR:\033[0m Failed to start $1 in detached mode beyond health checks\033[0m"
|
||||||
|
echo -e "\033[31;1mERROR:\033[0m dumped the docker log before shutting the node down\033[0m"
|
||||||
|
return 1
|
||||||
|
else
|
||||||
|
echo
|
||||||
|
echo -e "\033[32;1mSUCCESS:\033[0m Detached and healthy: ${1} on docker network: ${network_name}\033[0m"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
}
|
||||||
@ -1,3 +1,31 @@
|
|||||||
steps:
|
steps:
|
||||||
- label: ":js: Greetings"
|
- label: ":elasticsearch: :javascript: ES JavaScript ({{ matrix.nodejs }}) Test Suite: {{ matrix.suite }}"
|
||||||
command: "echo 'Hello, world!'"
|
agents:
|
||||||
|
provider: "gcp"
|
||||||
|
env:
|
||||||
|
NODE_VERSION: "{{ matrix.nodejs }}"
|
||||||
|
TEST_SUITE: "{{ matrix.suite }}"
|
||||||
|
STACK_VERSION: 8.8.0-SNAPSHOT
|
||||||
|
matrix:
|
||||||
|
setup:
|
||||||
|
suite:
|
||||||
|
- "free"
|
||||||
|
- "platinum"
|
||||||
|
nodejs:
|
||||||
|
- "14"
|
||||||
|
- "16"
|
||||||
|
- "18"
|
||||||
|
- "20"
|
||||||
|
command: ./.buildkite/run-tests.sh
|
||||||
|
artifact_paths: "./junit-output/junit-*.xml"
|
||||||
|
- wait: ~
|
||||||
|
continue_on_failure: true
|
||||||
|
- label: ":junit: Test results"
|
||||||
|
agents:
|
||||||
|
provider: "gcp"
|
||||||
|
image: family/core-ubuntu-2204
|
||||||
|
plugins:
|
||||||
|
- junit-annotate#v2.4.1:
|
||||||
|
artifacts: "junit-output/junit-*.xml"
|
||||||
|
job-uuid-file-pattern: 'junit-(.*).xml'
|
||||||
|
fail-build-on-error: true
|
||||||
|
|||||||
31
.buildkite/run-client.sh
Executable file
31
.buildkite/run-client.sh
Executable file
@ -0,0 +1,31 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#
|
||||||
|
# Once called Elasticsearch should be up and running
|
||||||
|
#
|
||||||
|
script_path=$(dirname "$(realpath -s "$0")")
|
||||||
|
set -euo pipefail
|
||||||
|
repo=$(pwd)
|
||||||
|
|
||||||
|
export NODE_VERSION=${NODE_VERSION:-18}
|
||||||
|
|
||||||
|
echo "--- :javascript: Building Docker image"
|
||||||
|
docker build \
|
||||||
|
--file "$script_path/Dockerfile" \
|
||||||
|
--tag elastic/elasticsearch-js \
|
||||||
|
--build-arg NODE_VERSION="$NODE_VERSION" \
|
||||||
|
.
|
||||||
|
|
||||||
|
echo "--- :javascript: Running $TEST_SUITE tests"
|
||||||
|
mkdir -p "$repo/junit-output"
|
||||||
|
docker run \
|
||||||
|
--network="${network_name}" \
|
||||||
|
--env "TEST_ES_SERVER=${elasticsearch_url}" \
|
||||||
|
--env "ELASTIC_PASSWORD=${elastic_password}" \
|
||||||
|
--env "TEST_SUITE=${TEST_SUITE}" \
|
||||||
|
--env "ELASTIC_USER=elastic" \
|
||||||
|
--env "BUILDKITE=true" \
|
||||||
|
--volume "$repo/junit-output:/junit-output" \
|
||||||
|
--name elasticsearch-js \
|
||||||
|
--rm \
|
||||||
|
elastic/elasticsearch-js \
|
||||||
|
bash -c "npm run test:integration; [ -f ./$TEST_SUITE-report-junit.xml ] && mv ./$TEST_SUITE-report-junit.xml /junit-output/junit-$BUILDKITE_JOB_ID.xml || echo 'No JUnit artifact found'"
|
||||||
152
.buildkite/run-elasticsearch.sh
Executable file
152
.buildkite/run-elasticsearch.sh
Executable file
@ -0,0 +1,152 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#
|
||||||
|
# Launch one or more Elasticsearch nodes via the Docker image,
|
||||||
|
# to form a cluster suitable for running the REST API tests.
|
||||||
|
#
|
||||||
|
# Export the STACK_VERSION variable, eg. '8.0.0-SNAPSHOT'.
|
||||||
|
# Export the TEST_SUITE variable, eg. 'free' or 'platinum' defaults to 'free'.
|
||||||
|
# Export the NUMBER_OF_NODES variable to start more than 1 node
|
||||||
|
|
||||||
|
# Version 1.6.1
|
||||||
|
# - Initial version of the run-elasticsearch.sh script
|
||||||
|
# - Deleting the volume should not dependent on the container still running
|
||||||
|
# - Fixed `ES_JAVA_OPTS` config
|
||||||
|
# - Moved to STACK_VERSION and TEST_VERSION
|
||||||
|
# - Refactored into functions and imports
|
||||||
|
# - Support NUMBER_OF_NODES
|
||||||
|
# - Added 5 retries on docker pull for fixing transient network errors
|
||||||
|
# - Added flags to make local CCR configurations work
|
||||||
|
# - Added action.destructive_requires_name=false as the default will be true in v8
|
||||||
|
# - Added ingest.geoip.downloader.enabled=false as it causes false positives in testing
|
||||||
|
# - Moved ELASTIC_PASSWORD and xpack.security.enabled to the base arguments for "Security On by default"
|
||||||
|
# - Use https only when TEST_SUITE is "platinum", when "free" use http
|
||||||
|
# - Set xpack.security.enabled=false for "free" and xpack.security.enabled=true for "platinum"
|
||||||
|
|
||||||
|
script_path=$(dirname $(realpath -s $0))
|
||||||
|
source $script_path/functions/imports.sh
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
echo -e "\033[34;1mINFO:\033[0m Take down node if called twice with the same arguments (DETACH=true) or on separate terminals \033[0m"
|
||||||
|
cleanup_node $es_node_name
|
||||||
|
|
||||||
|
master_node_name=${es_node_name}
|
||||||
|
cluster_name=${moniker}${suffix}
|
||||||
|
|
||||||
|
# Set vm.max_map_count kernel setting to 262144
|
||||||
|
sudo sysctl -w vm.max_map_count=262144
|
||||||
|
|
||||||
|
declare -a volumes
|
||||||
|
environment=($(cat <<-END
|
||||||
|
--env ELASTIC_PASSWORD=$elastic_password
|
||||||
|
--env node.name=$es_node_name
|
||||||
|
--env cluster.name=$cluster_name
|
||||||
|
--env cluster.initial_master_nodes=$master_node_name
|
||||||
|
--env discovery.seed_hosts=$master_node_name
|
||||||
|
--env cluster.routing.allocation.disk.threshold_enabled=false
|
||||||
|
--env bootstrap.memory_lock=true
|
||||||
|
--env node.attr.testattr=test
|
||||||
|
--env path.repo=/tmp
|
||||||
|
--env repositories.url.allowed_urls=http://snapshot.test*
|
||||||
|
--env action.destructive_requires_name=false
|
||||||
|
--env ingest.geoip.downloader.enabled=false
|
||||||
|
--env cluster.deprecation_indexing.enabled=false
|
||||||
|
END
|
||||||
|
))
|
||||||
|
if [[ "$TEST_SUITE" == "platinum" ]]; then
|
||||||
|
environment+=($(cat <<-END
|
||||||
|
--env xpack.security.enabled=true
|
||||||
|
--env xpack.license.self_generated.type=trial
|
||||||
|
--env xpack.security.http.ssl.enabled=true
|
||||||
|
--env xpack.security.http.ssl.verification_mode=certificate
|
||||||
|
--env xpack.security.http.ssl.key=certs/testnode.key
|
||||||
|
--env xpack.security.http.ssl.certificate=certs/testnode.crt
|
||||||
|
--env xpack.security.http.ssl.certificate_authorities=certs/ca.crt
|
||||||
|
--env xpack.security.transport.ssl.enabled=true
|
||||||
|
--env xpack.security.transport.ssl.verification_mode=certificate
|
||||||
|
--env xpack.security.transport.ssl.key=certs/testnode.key
|
||||||
|
--env xpack.security.transport.ssl.certificate=certs/testnode.crt
|
||||||
|
--env xpack.security.transport.ssl.certificate_authorities=certs/ca.crt
|
||||||
|
END
|
||||||
|
))
|
||||||
|
volumes+=($(cat <<-END
|
||||||
|
--volume $ssl_cert:/usr/share/elasticsearch/config/certs/testnode.crt
|
||||||
|
--volume $ssl_key:/usr/share/elasticsearch/config/certs/testnode.key
|
||||||
|
--volume $ssl_ca:/usr/share/elasticsearch/config/certs/ca.crt
|
||||||
|
END
|
||||||
|
))
|
||||||
|
else
|
||||||
|
environment+=($(cat <<-END
|
||||||
|
--env node.roles=data,data_cold,data_content,data_frozen,data_hot,data_warm,ingest,master,ml,remote_cluster_client,transform
|
||||||
|
--env xpack.security.enabled=false
|
||||||
|
--env xpack.security.http.ssl.enabled=false
|
||||||
|
END
|
||||||
|
))
|
||||||
|
fi
|
||||||
|
|
||||||
|
cert_validation_flags=""
|
||||||
|
if [[ "$TEST_SUITE" == "platinum" ]]; then
|
||||||
|
cert_validation_flags="--insecure --cacert /usr/share/elasticsearch/config/certs/ca.crt --resolve ${es_node_name}:443:127.0.0.1"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "--- :elasticsearch: Environment setup"
|
||||||
|
echo "TEST_SUITE: $TEST_SUITE"
|
||||||
|
echo "Elasticsearch URL: $elasticsearch_url"
|
||||||
|
echo "Elasticsearch External URL: $external_elasticsearch_url"
|
||||||
|
|
||||||
|
|
||||||
|
echo "--- :elasticsearch: Running container"
|
||||||
|
# Pull the container, retry on failures up to 5 times with
|
||||||
|
# short delays between each attempt. Fixes most transient network errors.
|
||||||
|
docker_pull_attempts=0
|
||||||
|
until [ "$docker_pull_attempts" -ge 5 ]
|
||||||
|
do
|
||||||
|
docker pull docker.elastic.co/elasticsearch/"$elasticsearch_container" && break
|
||||||
|
docker_pull_attempts=$((docker_pull_attempts+1))
|
||||||
|
echo "Failed to pull image, retrying in 10 seconds (retry $docker_pull_attempts/5)..."
|
||||||
|
sleep 10
|
||||||
|
done
|
||||||
|
|
||||||
|
NUMBER_OF_NODES=${NUMBER_OF_NODES-1}
|
||||||
|
http_port=9200
|
||||||
|
for (( i=0; i<$NUMBER_OF_NODES; i++, http_port++ )); do
|
||||||
|
node_name=${es_node_name}$i
|
||||||
|
node_url=${external_elasticsearch_url/9200/${http_port}}$i
|
||||||
|
if [[ "$i" == "0" ]]; then node_name=$es_node_name; fi
|
||||||
|
environment+=($(cat <<-END
|
||||||
|
--env node.name=$node_name
|
||||||
|
END
|
||||||
|
))
|
||||||
|
echo "$i: $http_port $node_url "
|
||||||
|
volume_name=${node_name}-${suffix}-data
|
||||||
|
volumes+=($(cat <<-END
|
||||||
|
--volume $volume_name:/usr/share/elasticsearch/data${i}
|
||||||
|
END
|
||||||
|
))
|
||||||
|
|
||||||
|
# make sure we detach for all but the last node if DETACH=false (default) so all nodes are started
|
||||||
|
local_detach="true"
|
||||||
|
if [[ "$i" == "$((NUMBER_OF_NODES-1))" ]]; then local_detach=$DETACH; fi
|
||||||
|
echo -e "\033[34;1mINFO:\033[0m Starting container $node_name \033[0m"
|
||||||
|
set -x
|
||||||
|
docker run \
|
||||||
|
--name "$node_name" \
|
||||||
|
--network "$network_name" \
|
||||||
|
--env "ES_JAVA_OPTS=-Xms1g -Xmx1g -da:org.elasticsearch.xpack.ccr.index.engine.FollowingEngineAssertions" \
|
||||||
|
"${environment[@]}" \
|
||||||
|
"${volumes[@]}" \
|
||||||
|
--publish "$http_port":9200 \
|
||||||
|
--ulimit nofile=65536:65536 \
|
||||||
|
--ulimit memlock=-1:-1 \
|
||||||
|
--detach="$local_detach" \
|
||||||
|
--health-cmd="curl $cert_validation_flags --fail $elasticsearch_url/_cluster/health || exit 1" \
|
||||||
|
--health-interval=2s \
|
||||||
|
--health-retries=20 \
|
||||||
|
--health-timeout=2s \
|
||||||
|
--rm \
|
||||||
|
docker.elastic.co/elasticsearch/"$elasticsearch_container";
|
||||||
|
|
||||||
|
set +x
|
||||||
|
if wait_for_container "$es_node_name" "$network_name"; then
|
||||||
|
echo -e "\033[32;1mSUCCESS:\033[0m Running on: $node_url\033[0m"
|
||||||
|
fi
|
||||||
|
done
|
||||||
16
.buildkite/run-tests.sh
Executable file
16
.buildkite/run-tests.sh
Executable file
@ -0,0 +1,16 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#
|
||||||
|
# Script to run Elasticsearch container and Elasticsearch client integration tests on Buildkite
|
||||||
|
#
|
||||||
|
# Version 0.1
|
||||||
|
#
|
||||||
|
script_path=$(dirname "$(realpath -s "$0")")
|
||||||
|
source "$script_path/functions/imports.sh"
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
echo "--- :elasticsearch: Starting Elasticsearch"
|
||||||
|
DETACH=true bash "$script_path/run-elasticsearch.sh"
|
||||||
|
|
||||||
|
echo "+++ :javascript: Run Client"
|
||||||
|
bash "$script_path/run-client.sh"
|
||||||
@ -44,9 +44,9 @@ if [[ -z $es_node_name ]]; then
|
|||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
export script_path=$(dirname $(realpath -s $0))
|
export script_path=$(dirname "$(realpath -s "$0")")
|
||||||
source $script_path/functions/cleanup.sh
|
source "$script_path/functions/cleanup.sh"
|
||||||
source $script_path/functions/wait-for-container.sh
|
source "$script_path/functions/wait-for-container.sh"
|
||||||
trap "cleanup_trap ${network_name}" EXIT
|
trap "cleanup_trap ${network_name}" EXIT
|
||||||
|
|
||||||
|
|
||||||
@ -57,4 +57,3 @@ fi
|
|||||||
|
|
||||||
echo -e "\033[34;1mINFO:\033[0m Creating network $network_name if it does not exist already \033[0m"
|
echo -e "\033[34;1mINFO:\033[0m Creating network $network_name if it does not exist already \033[0m"
|
||||||
docker network inspect "$network_name" > /dev/null 2>&1 || docker network create "$network_name"
|
docker network inspect "$network_name" > /dev/null 2>&1 || docker network create "$network_name"
|
||||||
|
|
||||||
|
|||||||
@ -92,6 +92,13 @@ async function bump (args) {
|
|||||||
testMatrix.replace(/STACK_VERSION:\s+\- "[0-9]+[0-9\.]*[0-9](?:\-SNAPSHOT)?"/, `STACK_VERSION:\n - "${cleanVersion}-SNAPSHOT"`), // eslint-disable-line
|
testMatrix.replace(/STACK_VERSION:\s+\- "[0-9]+[0-9\.]*[0-9](?:\-SNAPSHOT)?"/, `STACK_VERSION:\n - "${cleanVersion}-SNAPSHOT"`), // eslint-disable-line
|
||||||
'utf8'
|
'utf8'
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const pipeline = await readFile(join(import.meta.url, '..', '.buildkite', 'pipeline.yml'))
|
||||||
|
await writeFile(
|
||||||
|
join(import.meta.url, '..', '.buildkite', 'pipeline.yml'),
|
||||||
|
pipeline.replace(/STACK_VERSION: [0-9]+[0-9\.]*[0-9](?:\-SNAPSHOT)?/, `STACK_VERSION: - ${cleanVersion}-SNAPSHOT`), // eslint-disable-line
|
||||||
|
'utf8'
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
// this command can only be executed locally for now
|
// this command can only be executed locally for now
|
||||||
|
|||||||
53
catalog-info.yaml
Normal file
53
catalog-info.yaml
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
---
|
||||||
|
# yaml-language-server: $schema=https://json.schemastore.org/catalog-info.json
|
||||||
|
apiVersion: backstage.io/v1alpha1
|
||||||
|
kind: Component
|
||||||
|
metadata:
|
||||||
|
name: elasticsearch-js
|
||||||
|
spec:
|
||||||
|
type: library
|
||||||
|
owner: group:clients-team
|
||||||
|
lifecycle: production
|
||||||
|
|
||||||
|
---
|
||||||
|
# yaml-language-server: $schema=https://gist.githubusercontent.com/elasticmachine/988b80dae436cafea07d9a4a460a011d/raw/e57ee3bed7a6f73077a3f55a38e76e40ec87a7cf/rre.schema.json
|
||||||
|
apiVersion: backstage.io/v1alpha1
|
||||||
|
kind: Resource
|
||||||
|
metadata:
|
||||||
|
name: elasticsearch-js-integration-tests
|
||||||
|
description: Elasticsearch JavaScript client integration tests
|
||||||
|
spec:
|
||||||
|
type: buildkite-pipeline
|
||||||
|
owner: group:clients-team
|
||||||
|
system: buildkite
|
||||||
|
implementation:
|
||||||
|
apiVersion: buildkite.elastic.dev/v1
|
||||||
|
kind: Pipeline
|
||||||
|
metadata:
|
||||||
|
name: Elasticsearch JavaScript client integration tests
|
||||||
|
spec:
|
||||||
|
repository: elastic/elasticsearch-js
|
||||||
|
pipeline_file: .buildkite/pipeline.yml
|
||||||
|
teams:
|
||||||
|
clients-team:
|
||||||
|
access_level: MANAGE_BUILD_AND_READ
|
||||||
|
everyone:
|
||||||
|
access_level: READ_ONLY
|
||||||
|
cancel_intermediate_builds: true
|
||||||
|
cancel_intermediate_builds_branch_filter: '!main'
|
||||||
|
schedules:
|
||||||
|
main_semi_daily:
|
||||||
|
branch: 'main'
|
||||||
|
cronline: '*/12 * * *'
|
||||||
|
8_8_semi_daily:
|
||||||
|
branch: '8.8'
|
||||||
|
cronline: '*/12 * * *'
|
||||||
|
8_7_daily:
|
||||||
|
branch: '8.7'
|
||||||
|
cronline: '@daily'
|
||||||
|
8_6_daily:
|
||||||
|
branch: '8.6'
|
||||||
|
cronline: '@daily'
|
||||||
|
7_17_daily:
|
||||||
|
branch: '7.17'
|
||||||
|
cronline: '@daily'
|
||||||
Reference in New Issue
Block a user