엔지니어 블로그

[Git] Git action GCP 연동 본문

Git

[Git] Git action GCP 연동

안기용 2025. 3. 12. 18:08

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