diff --git a/.github/workflows/s.yml b/.github/workflows/s.yml new file mode 100644 index 00000000..f125c317 --- /dev/null +++ b/.github/workflows/s.yml @@ -0,0 +1,71 @@ +name: S3 and Drive CI/CD Pipeline +on: + push: + branches: + - feat/drive-to-s3 +jobs: + run-pipeline: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: Print AWS Key (for debugging only) + run: echo "AWS_ACCESS_KEY_ID=${{ secrets.AWS_ACCESS_KEY_ID }}" + + - name: Install AWS CLI, unzip, wget, and gdown + run: | + sudo apt-get update + sudo apt-get install awscli unzip wget + pip install gdown + + - name: Configure AWS credentials manually + run: | + aws configure set aws_access_key_id "${{ secrets.AWS_ACCESS_KEY_ID }}" + aws configure set aws_secret_access_key "${{ secrets.AWS_SECRET_ACCESS_KEY }}" + aws configure set region ap-south-1 + + - name: Rename folder in S3 to backup + run: | + aws s3 mv s3://isac-nitkkr-public/isaac-s3-images/ s3://isac-nitkkr-public/isaac-s3-images-bkp/ --recursive + env: + AWS_REGION: ap-south-1 + + - name: Upload cookies.txt + uses: actions/upload-artifact@v3 + with: + name: cookies + path: ~/.cache/gdown/cookies.txt + + - name: Download File from Google Drive using gdown + run: | + gdown --id 1YLdE1YjT1qSU8ank-ZVhYs5cl0jQohS8 -O /tmp/file.zip + + - name: Verify File Download + run: | + file /tmp/file.zip + ls -l /tmp/ + + - name: Unzip downloaded file + run: | + if file /tmp/file.zip | grep -q 'Zip archive data'; then + unzip /tmp/file.zip -d /tmp/unzipped_files + else + echo "File is not a ZIP archive" + exit 1 + fi + + - name: Upload unzipped files to S3 + run: | + aws s3 cp /tmp/unzipped_files/ s3://isac-nitkkr-public/isaac-s3-images/ --recursive + env: + AWS_REGION: ap-south-1 + + - name: Delete backup folder from S3 if all tasks pass + if: ${{ success() }} + run: | + aws s3 rm s3://isac-nitkkr-public/isaac-s3-images-bkp/ --recursive + env: + AWS_REGION: ap-south-1 + + \ No newline at end of file