.cirrus.yml 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. compute_engine_instance:
  2. image_project: freebsd-org-cloud-dev
  3. image: family/freebsd-15-0-snap
  4. platform: freebsd
  5. cpu: 8
  6. memory: 16G
  7. disk: 80
  8. base_task:
  9. timeout_in: 120m
  10. environment:
  11. PKG_CONFIG_PATH: /usr/libdata/pkgconfig:/usr/local/libdata/pkgconfig
  12. IGNORE_OSVERSION: yes
  13. clone_script: |
  14. pkg update
  15. pkg install -yf git-tiny bison
  16. if [ -z "$CIRRUS_PR" ]; then
  17. git clone --recursive --branch=$CIRRUS_BRANCH https://x-access-token:${CIRRUS_REPO_CLONE_TOKEN}@github.com/${CIRRUS_REPO_FULL_NAME}.git $CIRRUS_WORKING_DIR
  18. git reset --hard $CIRRUS_CHANGE_IN_REPO
  19. else
  20. git clone --recursive https://x-access-token:${CIRRUS_REPO_CLONE_TOKEN}@github.com/${CIRRUS_REPO_FULL_NAME}.git $CIRRUS_WORKING_DIR
  21. git fetch origin pull/$CIRRUS_PR/head:pull/$CIRRUS_PR
  22. git reset --hard $CIRRUS_CHANGE_IN_REPO
  23. fi
  24. setup_script:
  25. - pkg install -fy python311 python3 py311-pip py311-setuptools
  26. - pip install --upgrade cloudsmith-cli
  27. - echo "PLATFORM=$(uname -m).$(uname -p)" >> ${CIRRUS_ENV}
  28. sys_cache:
  29. folder: /usr/obj/${CIRRUS_WORKING_DIR}/*/sys
  30. fingerprint_key: ${CIRRUS_BUILD_ID}_sys
  31. reupload_on_changes: false
  32. tmp_cache:
  33. folder: /usr/obj/${CIRRUS_WORKING_DIR}/*/tmp
  34. fingerprint_key: ${CIRRUS_BUILD_ID}_tmp
  35. reupload_on_changes: true
  36. release_cache:
  37. folder: /usr/obj/${CIRRUS_WORKING_DIR}/*/release
  38. fingerprint_key: ${CIRRUS_BUILD_ID}_release
  39. reupload_on_changes: true
  40. base_build_script:
  41. - mkdir -p /usr/obj/${CIRRUS_WORKING_DIR}/${PLATFORM}
  42. - cp -afv ${CIRRUS_WORKING_DIR}/usr/obj/${CIRRUS_WORKING_DIR}/${PLATFORM}/ /usr/obj/${CIRRUS_WORKING_DIR}/${PLATFORM}/
  43. - mkdir -p /usr/obj/${CIRRUS_WORKING_DIR}
  44. - ${CIRRUS_WORKING_DIR}/tools/ravynOS/build.sh base basepkg
  45. - cloudsmith push raw -k $KEY ravynsoft/ravynOS --name base_${CIRRUS_BRANCH%/*}.txz /usr/obj/${CIRRUS_WORKING_DIR}/${PLATFORM}/release/base.txz
  46. - rm -rfv /usr/obj/${CIRRUS_WORKING_DIR}/${PLATFORM}/release/dist/base/usr/share/locale/nn_NO.*
  47. upload_caches:
  48. - tmp
  49. - release
  50. only_if: $CIRRUS_BRANCH == 'main' || $CIRRUS_BRANCH == 'staging'
  51. depends_on:
  52. - kernel
  53. kernel_task:
  54. environment:
  55. PKG_CONFIG_PATH: /usr/libdata/pkgconfig:/usr/local/libdata/pkgconfig
  56. IGNORE_OSVERSION: yes
  57. clone_script: |
  58. pkg update
  59. pkg install -yf git-tiny
  60. if [ -z "$CIRRUS_PR" ]; then
  61. git clone --recursive --branch=$CIRRUS_BRANCH https://x-access-token:${CIRRUS_REPO_CLONE_TOKEN}@github.com/${CIRRUS_REPO_FULL_NAME}.git $CIRRUS_WORKING_DIR
  62. git reset --hard $CIRRUS_CHANGE_IN_REPO
  63. else
  64. git clone --recursive https://x-access-token:${CIRRUS_REPO_CLONE_TOKEN}@github.com/${CIRRUS_REPO_FULL_NAME}.git $CIRRUS_WORKING_DIR
  65. git fetch origin pull/$CIRRUS_PR/head:pull/$CIRRUS_PR
  66. git reset --hard $CIRRUS_CHANGE_IN_REPO
  67. fi
  68. setup_script:
  69. - pkg install -fy python311 python3 py311-pip py311-setuptools
  70. - pip install --upgrade cloudsmith-cli
  71. - echo "PLATFORM=$(uname -m).$(uname -p)" >> ${CIRRUS_ENV}
  72. - git clone https://github.com/ravynsoft/drm-kmod.git
  73. sys_cache:
  74. folder: /usr/obj/${CIRRUS_WORKING_DIR}/*/sys
  75. fingerprint_key: ${CIRRUS_BUILD_ID}_sys
  76. reupload_on_changes: true
  77. release_cache:
  78. folder: /usr/obj/${CIRRUS_WORKING_DIR}/*/release
  79. fingerprint_key: ${CIRRUS_BUILD_ID}_release
  80. reupload_on_changes: true
  81. kernel_build_script:
  82. - mkdir -p /usr/obj/${CIRRUS_WORKING_DIR}
  83. - ${CIRRUS_WORKING_DIR}/tools/ravynOS/build.sh kernel drm kernelpkg
  84. - cloudsmith push raw -k $KEY ravynsoft/ravynOS --name kernel_${CIRRUS_BRANCH%/*}.txz /usr/obj/${CIRRUS_WORKING_DIR}/${PLATFORM}/release/kernel.txz
  85. upload_caches:
  86. - sys
  87. - release
  88. only_if: $CIRRUS_BRANCH == 'main' || $CIRRUS_BRANCH == 'staging'
  89. system_task:
  90. environment:
  91. PKG_CONFIG_PATH: /usr/libdata/pkgconfig:/usr/local/libdata/pkgconfig
  92. IGNORE_OSVERSION: yes
  93. id_rsa_priv_file:
  94. path: /root/.ssh/id_rsa
  95. variable_name: MIRROR2_SSH_PRIVKEY
  96. id_rsa_pub_file:
  97. path: /root/.ssh/id_rsa.pub
  98. variable_name: MIRROR2_SSH_PUBKEY
  99. clone_script: |
  100. pkg update
  101. pkg install -yf git-tiny bison
  102. if [ -z "$CIRRUS_PR" ]; then
  103. git clone --recursive --branch=$CIRRUS_BRANCH https://x-access-token:${CIRRUS_REPO_CLONE_TOKEN}@github.com/${CIRRUS_REPO_FULL_NAME}.git $CIRRUS_WORKING_DIR
  104. git reset --hard $CIRRUS_CHANGE_IN_REPO
  105. else
  106. git clone --recursive https://x-access-token:${CIRRUS_REPO_CLONE_TOKEN}@github.com/${CIRRUS_REPO_FULL_NAME}.git $CIRRUS_WORKING_DIR
  107. git fetch origin pull/$CIRRUS_PR/head:pull/$CIRRUS_PR
  108. git reset --hard $CIRRUS_CHANGE_IN_REPO
  109. fi
  110. setup_script:
  111. - pkg install -fy python311 python3 py311-pip py311-setuptools
  112. - echo "PLATFORM=$(uname -m).$(uname -p)" >> ${CIRRUS_ENV}
  113. sys_cache:
  114. folder: /usr/obj/${CIRRUS_WORKING_DIR}/*/sys
  115. fingerprint_key: ${CIRRUS_BUILD_ID}_sys
  116. reupload_on_changes: false
  117. tmp_cache:
  118. folder: /usr/obj/${CIRRUS_WORKING_DIR}/*/tmp
  119. fingerprint_key: ${CIRRUS_BUILD_ID}_tmp
  120. reupload_on_changes: false
  121. release_cache:
  122. folder: /usr/obj/${CIRRUS_WORKING_DIR}/*/release
  123. fingerprint_key: ${CIRRUS_BUILD_ID}_release
  124. reupload_on_changes: false
  125. system_build_script:
  126. - mkdir -p /usr/obj/${CIRRUS_WORKING_DIR}/${PLATFORM}
  127. - cp -afv ${CIRRUS_WORKING_DIR}/usr/obj/${CIRRUS_WORKING_DIR}/${PLATFORM}/ /usr/obj/${CIRRUS_WORKING_DIR}/${PLATFORM}/
  128. - ln -sf ${CIRRUS_WORKING_DIR}/sys /usr/obj/${CIRRUS_WORKING_DIR}/${PLATFORM}/tmp/sys
  129. - ${CIRRUS_WORKING_DIR}/tools/ravynOS/build.sh system extras systempkg
  130. iso_script:
  131. - echo >> /root/.ssh/id_rsa
  132. - chmod 600 /root/.ssh/id_rsa
  133. - pkg install -y sshpass
  134. - cp -fv version.txt ISO/overlays/ramdisk/version
  135. - mkdir -p /usr/local/furybsd/$(uname -m)/cache/$(head -1 version.txt)/base
  136. - cp -fv /usr/obj/${CIRRUS_WORKING_DIR}/${PLATFORM}/release/base.txz /usr/obj/${CIRRUS_WORKING_DIR}/${PLATFORM}/release/kernel.txz ${CIRRUS_WORKING_DIR}/dist/ravynOS.txz /usr/local/furybsd/$(uname -m)/cache/$(head -1 version.txt)/base/
  137. - cd ISO; IGNORE_OSVERSION=yes RAVYNOS=${CIRRUS_WORKING_DIR} ./build.sh ravynOS ravynOS_$(head -1 ../version.txt)
  138. - SSHPASS="${MIRROR1_PASS}" sshpass -e scp -o StrictHostKeyChecking=no ${CIRRUS_WORKING_DIR}/artifacts/*.iso* ${MIRROR1_USER}@${MIRROR1_HOST}:www/nightly/
  139. - #scp -P2200 -o StrictHostKeyChecking=no ${CIRRUS_WORKING_DIR}/artifacts/*.iso* ${MIRROR1_USER}@${MIRROR2_HOST}:nightly/
  140. - date -u +'%s' > timestamp
  141. - SSHPASS="${MIRROR1_PASS}" sshpass -e scp -o StrictHostKeyChecking=no timestamp ${MIRROR1_USER}@${MIRROR1_HOST}:www/
  142. - #scp -P2200 -o StrictHostKeyChecking=no timestamp ${MIRROR1_USER}@${MIRROR2_HOST}:
  143. only_if: $CIRRUS_BRANCH == 'main' || $CIRRUS_BRANCH == 'staging'
  144. depends_on:
  145. - base
  146. - kernel
  147. ravynOS_artifacts:
  148. path: dist/ravynOS.txz