엔지니어 블로그
[Git] Git action GCP 연동 본문
git action을 통해 파일을 Cloud Storage / Bigquery에 upload 하는 방법을 소개하려고한다.
먼저 테스트용 service account를 생성한다.
PROJECT="dev-sample"
SERVICE_ACCOUNT="test-tj-cloud-storage"
gcloud iam service-accounts create $SERVICE_ACCOUNT \
--description="test" \
--display-name="test github action" \
--project=$PROJECT
생성한 service account에 버킷 개채 관리자 권한을 부여한다.
gsutil iam ch serviceAccount:$SERVICE_ACCOUNT@$PROJECT.iam.gserviceaccount.com:objectAdmin gs://test-bucket
저장소 변수에 버킷 이름, 업로드할 파일 패스 등을 설정한다.
GOOGLE_CREDENTIALS는 service account의 key를 저장하면 된다.
name: git to gcs
on:
push:
path:
- 'static_data/**'
branches:
- main
jobs:
deploy-to-cloud-storage:
runs-on: ubuntu-latest
permissions:
contents: 'read'
id-token: 'write'
steps:
- uses: 'actions/checkout@v2'
- uses: 'google-github-actions/auth@v2'
with:
credentials_json: '${{ secrets.GOOGLE_CREDENTIALS }}'
- id: 'upload-file'
uses: 'google-github-actions/upload-cloud-storage@v2'
with:
path: '${{ secrets.FILE_PATH }}'
destination: '${{ secrets.BUCKET_NAME }}'
- name: Load CSV to BigQuery
run: |
for file in static_data/*.csv; do
filename=$(basename "$file" .csv)
echo "Uploading $file to BigQuery table $filename..."
echo
bq load \
--source_format=CSV \
--autodetect \
--replace \
olist_dataset.$filename \
gs://${{ secrets.BUCKET_NAME }}/static_data/$filename.csv
echo "$file uploaded successfully!"
done
'Git' 카테고리의 다른 글
[Git] Pull,Push 실행시 username/password 재입력 생략 (0) | 2023.10.30 |
---|