diff --git a/.github/workflows/deploy.yaml b/.github/workflows/deploy.yaml new file mode 100644 index 0000000..2e92adb --- /dev/null +++ b/.github/workflows/deploy.yaml @@ -0,0 +1,48 @@ + +name: Deploy to Production + +on: + push: + branches: + - main + +env: + PROJECT_NAME: gateway + +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Deploy to server via SSH + uses: appleboy/ssh-action@v1.2.2 + with: + host: ${{ secrets.HOST }} + username: ${{ secrets.USERNAME }} + # key: ${{ secrets.KEY }} + password: ${{ secrets.PASSWORD }} + port: ${{ secrets.PORT }} + script: | + PROJECTS=/opt/projects/ + DIR=/opt/projects/${{ env.PROJECT_NAME }}/ + if [ -d "$PROJECTS" ]; then + echo "projects papkasi mavjud" + else + mkdir -p $PROJECTS + echo "projects papkasi yaratildi" + fi + if [ -d "$DIR" ]; then + echo "loyiha mavjud" + else + cd $PROJECTS + git clone git@github.com:${{ github.repository }}.git ${{ env.PROJECT_NAME }} + echo "Clone qilindi"; + fi + cd $DIR + git fetch origin main + git reset --hard origin/main + + export PORT=${{ vars.GATEWAY }} + docker stack deploy -c stack.yaml ${{ env.PROJECT_NAME }} diff --git a/stack.yaml b/stack.yaml index b147ba5..2cea4e7 100644 --- a/stack.yaml +++ b/stack.yaml @@ -4,7 +4,10 @@ services: krakend: image: krakend:2.12.0 ports: - - "8080:8080" + - mode: ingress + target: 80 + published: ${PORT:?Enviromentda port topilmadi} + protocol: tcp volumes: - ./krakend.json:/etc/krakend/krakend.json:ro deploy: