Просмотр исходного кода

ci: add workflow for create github actions runner vm image (#8371)

nikita kozlovsky 6 месяцев назад
Родитель
Сommit
dbf5fb8b31
2 измененных файлов с 42 добавлено и 2 удалено
  1. 39 0
      .github/workflows/create_vm_image.yaml
  2. 3 2
      ydb/ci/gh-runner-image/image.pkr.hcl

+ 39 - 0
.github/workflows/create_vm_image.yaml

@@ -0,0 +1,39 @@
+name: Create Github Actions Runner VM image
+on:
+  workflow_dispatch:
+
+jobs:
+  packer:
+    runs-on: ubuntu-latest
+    permissions: {}
+    steps:
+      - name: Checkout
+        uses: actions/checkout@v4
+        with:
+          sparse-checkout: |
+           .github
+           ydb/ci/
+
+      - name: packer build
+        shell: bash
+        env:
+          YC_SERVICE_ACCOUNT_KEY_FILE: /tmp/yc_sa.json
+          CUSTOM_VARS_FILE: /tmp/custom.pkrvars.hcl
+          YC_SA_JSON_CREDENTIALS: ${{ secrets.YC_SA_JSON_CREDENTIALS }}
+          GH_RUNNER_BUILD_IMAGE_CUSTOM_VARS_HCL: ${{ vars.GH_RUNNER_BUILD_IMAGE_CUSTOM_VARS_HCL }}
+        run: |
+          set -e
+          echo "$YC_SA_JSON_CREDENTIALS" > "$YC_SERVICE_ACCOUNT_KEY_FILE"
+          echo "$GH_RUNNER_BUILD_IMAGE_CUSTOM_VARS_HCL" > "$CUSTOM_VARS_FILE"
+          
+          args=()
+          if [ -s "$CUSTOM_VARS_FILE" ]; then
+            args+=(-var-file="$CUSTOM_VARS_FILE")
+          fi
+          
+          set -x
+          cd ./ydb/ci/gh-runner-image/
+          packer init .
+          packer build "${args[@]}" .
+      
+    

+ 3 - 2
ydb/ci/gh-runner-image/image.pkr.hcl

@@ -30,7 +30,7 @@ build {
 
   provisioner "file" {
     content     = <<EOF
-set -x
+set -xe
 apt-get update
 # wait for unattended-upgrade is finished
 apt-get -o DPkg::Lock::Timeout=600 -y --no-install-recommends dist-upgrade
@@ -39,7 +39,7 @@ apt-get -y install --no-install-recommends \
   liblttng-ust1 lld-14 llvm-14 m4 make ninja-build parallel postgresql-client postgresql-client \
   python-is-python3 python3-pip s3cmd s3cmd zlib1g
 
-apt-get -y purge lxd-agent-loader snapd modemanager
+apt-get -y purge lxd-agent-loader snapd modemmanager
 apt-get -y autoremove
 
 pip3 install conan==1.59 pytest==7.1.3 pytest-timeout pytest-xdist==3.3.1 setproctitle==1.3.2 \
@@ -61,6 +61,7 @@ EOF
   provisioner "file" {
     content     = <<EOF
 #!/bin/env/sh
+set -xe
 
 mkdir -p /opt/cache/actions-runner/latest