Skip to content

Merge pull request #60 from vbalalian/cicd-integration #10

Merge pull request #60 from vbalalian/cicd-integration

Merge pull request #60 from vbalalian/cicd-integration #10

Workflow file for this run

name: Continuous Integration and Deployment
on:
push:
branches: [master]
pull_request:
branches: [master]
jobs:
build-and-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Build and run tests
run: |
docker-compose -f compose.test.yaml up --build -d
docker-compose -f compose.test.yaml run web_scraper pytest
docker-compose -f compose.test.yaml run api pytest
- name: Clean up
run: docker-compose -f compose.test.yaml down
deploy:
if: github.event_name == 'push' && github.ref == 'refs/heads/master'
needs: build-and-test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Build Docker images
run: docker-compose build
- name: Login to Docker Hub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
- name: Build and Push Web Scraper Image
if: contains(github.event.head_commit.modified, '.web_scraping/')
run: |
docker build -t ${{ secrets.DOCKER_HUB_USERNAME }}/roman-coins-data-pipeline:web_scraper-${{ github.sha }} ./web_scraping
docker build -t ${{ secrets.DOCKER_HUB_USERNAME }}/roman-coins-data-pipeline:web_scraper-latest ./web_scraping
docker push ${{ secrets.DOCKER_HUB_USERNAME }}/roman-coins-data-pipeline:web_scraper-${{ github.sha }}
docker push ${{ secrets.DOCKER_HUB_USERNAME }}/roman-coins-data-pipeline:web_scraper-latest
- name: Build and Push API Image
if: contains(github.event.head_commit.modified, '.api/')
run: |
docker build -t ${{ secrets.DOCKER_HUB_USERNAME }}/roman-coins-data-pipeline:api-${{ github.sha }} ./api
docker build -t ${{ secrets.DOCKER_HUB_USERNAME }}/roman-coins-data-pipeline:api-latest ./api
docker push ${{ secrets.DOCKER_HUB_USERNAME }}/roman-coins-data-pipeline:api-${{ github.sha }}
docker push ${{ secrets.DOCKER_HUB_USERNAME }}/roman-coins-data-pipeline:api-latest