update du code app #109
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This workflow will do a clean install of node dependencies, cache/restore them, build the source code and run tests across different versions of node | |
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions | |
name: Fast-API CI | |
on: | |
push: | |
branches: [ master ] | |
pull_request: | |
branches: [ master ] | |
env: | |
dockerhub_id: fallewi | |
dockerhub_repository: fastapi | |
dockerhub_latest: latest | |
jobs: | |
test: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Test python Code | |
run: | | |
pip3 install -r requirements.txt | |
cd app/ | |
pytest | |
build-push-container: | |
needs: test | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Build the Docker image | |
run: | | |
docker build -t $dockerhub_id/$dockerhub_repository:${GITHUB_SHA} . | |
docker tag $dockerhub_id/$dockerhub_repository:$GITHUB_SHA $dockerhub_id/$dockerhub_repository:$dockerhub_latest | |
docker images | |
docker run -d -p 80:80 --name $dockerhub_repository $dockerhub_id/$dockerhub_repository:${GITHUB_SHA} | |
sleep 10 | |
curl http://localhost | |
sleep 5 | |
docker login -u ${{ secrets.REGISTRY_USER }} -p ${{ secrets.REGISTRY_PASSWD }} | |
docker push $dockerhub_id/$dockerhub_repository:${GITHUB_SHA} | |
docker push $dockerhub_id/$dockerhub_repository:$dockerhub_latest | |
deploy: | |
needs: build-push-container | |
name: deploy | |
runs-on: ubuntu-latest | |
steps: | |
- name: executing remote ssh commands using password | |
uses: appleboy/ssh-action@master | |
with: | |
host: ${{ secrets.HOSTNAME }} | |
username: ${{ secrets.USER_NAME }} | |
key: ${{ secrets.AWS_PRIVATE_KEY }} | |
port: 22 | |
script: | | |
sudo docker rm -f fastapi | |
sudo docker rmi fallewi/fastapi:latest | |
sleep 10 | |
sudo docker run -d -p 9000:80 --name fastapi fallewi/fastapi:latest | |
sudo docker ps | |
sleep 10 | |
curl localhost:9000 | |
ls | |
sudo docker images |