diff --git a/.github/workflows/s.yml b/.github/workflows/s.yml new file mode 100644 index 00000000..18bec5c1 --- /dev/null +++ b/.github/workflows/s.yml @@ -0,0 +1,64 @@ +name: S3 and Drive CI/CD Pipeline +on: + push: + branches: + - feat/drive-to-s3 +jobs: + run-pipeline: + runs-on: ubuntu-latest + permissions: + id-token: write + contents: read + + steps: + - name: Checkout code + uses: actions/checkout@v2 + + # - name: Configure AWS credentials + # uses: aws-actions/configure-aws-credentials@v1 + # with: + # aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + # aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + # aws-region: ap-south-1 + + - name: Configure AWS Credentials + uses: aws-actions/configure-aws-credentials@v4 + with: + aws-region: ap-south-1 + ## the following creates an ARN based on the values entered into github secrets + role-to-assume: arn:aws:iam::471112850772:role/cicd + role-session-name: myGitHubActions + + - 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: Install gdown to download from Google Drive + run: | + pip install gdown + + - name: Download Google Drive folder + run: | + gdown --folder https://drive.google.com/drive/folders/1YLdE1YjT1qSU8ank-ZVhYs5cl0jQohS8 + env: + AWS_REGION: ap-south-1 + + - name: Unzip downloaded files + run: | + sudo apt-get install unzip + unzip '*.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 \ No newline at end of file