Развертывание функции GCP: Zip-файл из локальной сборки, но не ZIP-файл из действия Github
Я пытаюсь создать действие github, которое создаст zip-файл с исходным кодом функции кода и загрузит его в облачное хранилище Google.
Затем у меня есть репозиторий terraform, в котором развертываются облачные функции с помощью этого zip-файла.
Дело в том, что когда я архивирую этот файл в своей локальной среде — WSL Ubuntu 18-04 — и загружаю его в то же хранилище, я могу продолжить развертывание terraform, и все идет нормально.
zip ../0.0.9.zip *
Однако та же команда, выполненная из действия Github, создает zip-архив, помещает его в облачное хранилище, как и ожидалось, я также могу загрузить его и открыть, но процесс облачной сборки для развертывания облачных функций не работает. Я не могу понять, в чем разница между ними.
Вот рабочий процесс действий Github:
name: Function Deploy
on:
push:
tags:
- '*'
jobs:
build:
name: 'Build & Push'
runs-on: ubuntu-latest
defaults:
run:
shell: bash
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Using Node
uses: actions/setup-node@v2
with:
node-version: "16.x"
- name: Installing Node Modules
run: npm install
- name: Building
run: npm run build
- name: Copy files
run: |
cp package.json ./lib/package.json
cp package-lock.json ./lib/package-lock.json
cp cloudbuild.yaml ./lib/cloudbuild.yaml
- name: Zipping Version
run: |
cd lib
zip ../${{ github.ref_name }}.zip *
cd ..
- name: Auth to GCP
uses: google-github-actions/auth@v1
with:
credentials_json: ${{ secrets.GOOGLE_CREDENTIALS }}
- name: Uploading
uses: google-github-actions/upload-cloud-storage@v1
with:
path: ${{ github.ref_name }}.zip
destination: ${{ secrets.GCP_BUCKET_NAME }}
и вот журнал ошибок из облачной сборки:
starting build "ac767a2c-5242-4315-8b20-f8672206b04c"
FETCHSOURCE
Fetching storage object: gs://gcf-sources-xxxxx-europe-west1/ln-func-bcareer-e8268533-f38c-44a7-b62e-ec74a3affe0b/version-2/function-source.zip#1669544086773073
Copying gs://gcf-sources-xxxxxx-europe-west1/ln-func-bcareer-e8268533-f38c-44a7-b62e-ec74a3affe0b/version-2/function-source.zip#1669544086773073...
/ [0 files][ 0.0 B/ 31.6 KiB] / [1 files][ 31.6 KiB/ 31.6 KiB]
Operation completed over 1 objects/31.6 KiB.
Archive: /tmp/source-archive.zip
End-of-central-directory signature not found. Either this file is not
a zipfile, or it constitutes one disk of a multi-part archive. In the
latter case the central directory and zipfile comment will be found on
the last disk(s) of this archive.
unzip: cannot find zipfile directory in one of /tmp/source-archive.zip or
/tmp/source-archive.zip.zip, and cannot find /tmp/source-archive.zip.ZIP, period.
Используемая команда zip одинакова, в одной и той же версии в обоих процессах.
ZIP-файл, созданный Github Action, можно загрузить из облачного хранилища и нормально открыть в Windows:
Но при загрузке в хранилище сборки его больше нельзя открыть:
опять же, zip-архив из моего локального хранилища также можно загрузить и открыть из облачного хранилища сборок.
Что я пропустил ?