diff --git a/.github/workflows/s.yml b/.github/workflows/s.yml new file mode 100644 index 00000000..54c6bb15 --- /dev/null +++ b/.github/workflows/s.yml @@ -0,0 +1,63 @@ +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 + run: | + sudo apt-get install awscli + + - 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: Download files from Google Drive (with confirmation) + run: | + FILE_ID="1YLdE1YjT1qSU8ank-ZVhYs5cl0jQohS8" + CONFIRM=$(wget --quiet --save-cookies /tmp/cookies.txt --keep-session-cookies --no-check-certificate \ + "https://docs.google.com/uc?export=download&id=1YLdE1YjT1qSU8ank-ZVhYs5cl0jQohS8" -O- | \ + sed -rn 's/.+confirm=([0-9A-Za-z_]+).+/\1/p') + wget --load-cookies /tmp/cookies.txt "https://docs.google.com/uc?export=download&confirm=${CONFIRM}&id=$1YLdE1YjT1qSU8ank-ZVhYs5cl0jQohS8" \ + -O /tmp/downloaded-file.zip && rm -rf /tmp/cookies.txt + + - name: Verify downloaded file + run: ls -lh /tmp/downloaded-file.zip + + - name: Check file type + run: file /tmp/downloaded-file.zip + + - name: Unzip downloaded files + run: | + sudo apt-get install unzip + unzip /tmp/downloaded-file.zip -d /tmp/unzipped-folder/ + + - name: Upload unzipped folder to S3 + run: | + aws s3 cp /tmp/unzipped-folder/ 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