@@ -58,41 +58,50 @@ jobs:
5858 steps :
5959 - name : Pull new version
6060 run : docker pull ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:test
61+
62+ - name : Create env file for migration
63+ run : |
64+ cat > migration.env << EOF
65+ DB_DSN=${{ secrets.DB_DSN }}
66+ BOT_TOKEN=${{ secrets.BOT_TOKEN }}
67+ BASE_URL=${{ vars.BASE_URL }}
68+ WEBHOOK_PATH=${{ vars.WEBHOOK_PATH }}
69+ QDRANT_API_KEY=${{ secrets.QDRANT_API_KEY }}
70+ PRIVATE_KEY=${{ secrets.PRIVATE_KEY }}
71+ SERVICE_ACCOUNT_ID=${{ secrets.SERVICE_ACCOUNT_ID }}
72+ KEY_ID=${{ secrets.KEY_ID }}
73+ HOST=${{ vars.HOST }}
74+ PORT=${{ vars.PORT }}
75+ EOF
76+
6177 - name : Migrate DB
6278 run : |
63- docker run \
64- --rm \
65- --network=web \
66- --env DB_DSN='${{ secrets.DB_DSN }}' \
67- --env BOT_TOKEN='${{ secrets.BOT_TOKEN }}' \
68- --env BASE_URL='${{ vars.BASE_URL }}' \
69- --env WEBHOOK_PATH='${{ vars.WEBHOOK_PATH }}' \
70- --env QDRANT_API_KEY='${{ secrets.QDRANT_API_KEY }}' \
71- --env PRIVATE_KEY='${{ secrets.PRIVATE_KEY }}' \
72- --env SERVICE_ACCOUNT_ID='${{ secrets.SERVICE_ACCOUNT_ID }}' \
73- --env KEY_ID='${{ secrets.KEY_ID }}' \
74- --env HOST='${{ vars.HOST }}' \
75- --env PORT='${{ vars.PORT }}' \
79+ docker run --rm --network=web --env-file migration.env \
7680 --name ${{ env.CONTAINER_NAME }}_migration \
7781 ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:test \
7882 alembic upgrade head
83+
84+ - name : Create env file for container
85+ run : |
86+ cat > container.env << EOF
87+ DB_DSN=${{ secrets.DB_DSN }}
88+ BOT_TOKEN=${{ secrets.BOT_TOKEN }}
89+ BASE_URL=${{ vars.BASE_URL }}
90+ WEBHOOK_PATH=${{ vars.WEBHOOK_PATH }}
91+ QDRANT_API_KEY=${{ secrets.QDRANT_API_KEY }}
92+ PRIVATE_KEY=${{ secrets.PRIVATE_KEY }}
93+ SERVICE_ACCOUNT_ID=${{ secrets.SERVICE_ACCOUNT_ID }}
94+ KEY_ID=${{ secrets.KEY_ID }}
95+ HOST=${{ vars.HOST }}
96+ PORT=${{ vars.PORT }}
97+ EOF
98+
7999 - name : Run new version
80100 run : |
81- docker stop ${{ env.CONTAINER_NAME }} || true && docker rm ${{ env.CONTAINER_NAME }} || true
82- docker run \
83- --detach \
84- --network=web \
85- --restart on-failure:3 \
86- --env DB_DSN='${{ secrets.DB_DSN }}' \
87- --env BOT_TOKEN='${{ secrets.BOT_TOKEN }}' \
88- --env BASE_URL='${{ vars.BASE_URL }}' \
89- --env WEBHOOK_PATH='${{ vars.WEBHOOK_PATH }}' \
90- --env QDRANT_API_KEY='${{ secrets.QDRANT_API_KEY }}' \
91- --env PRIVATE_KEY='${{ secrets.PRIVATE_KEY }}' \
92- --env SERVICE_ACCOUNT_ID='${{ secrets.SERVICE_ACCOUNT_ID }}' \
93- --env KEY_ID='${{ secrets.KEY_ID }}' \
94- --env HOST='${{ vars.HOST }}' \
95- --env PORT='${{ vars.PORT }}' \
101+ docker stop ${{ env.CONTAINER_NAME }} || true
102+ docker rm ${{ env.CONTAINER_NAME }} || true
103+ docker run --detach --network=web --restart on-failure:3 \
104+ --env-file container.env \
96105 --name ${{ env.CONTAINER_NAME }} \
97106 ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:test
98107
@@ -110,40 +119,49 @@ jobs:
110119 steps :
111120 - name : Pull new version
112121 run : docker pull ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest
122+
123+ - name : Create env file for migration
124+ run : |
125+ cat > migration.env << EOF
126+ DB_DSN=${{ secrets.DB_DSN }}
127+ BOT_TOKEN=${{ secrets.BOT_TOKEN }}
128+ BASE_URL=${{ vars.BASE_URL }}
129+ WEBHOOK_PATH=${{ vars.WEBHOOK_PATH }}
130+ QDRANT_API_KEY=${{ secrets.QDRANT_API_KEY }}
131+ PRIVATE_KEY=${{ secrets.PRIVATE_KEY }}
132+ SERVICE_ACCOUNT_ID=${{ secrets.SERVICE_ACCOUNT_ID }}
133+ KEY_ID=${{ secrets.KEY_ID }}
134+ HOST=${{ vars.HOST }}
135+ PORT=${{ vars.PORT }}
136+ EOF
137+
113138 - name : Migrate DB
114139 run : |
115- docker run \
116- --rm \
117- --network=web \
118- --env DB_DSN='${{ secrets.DB_DSN }}' \
119- --env BOT_TOKEN='${{ secrets.BOT_TOKEN }}' \
120- --env BASE_URL='${{ vars.BASE_URL }}' \
121- --env WEBHOOK_PATH='${{ vars.WEBHOOK_PATH }}' \
122- --env QDRANT_API_KEY='${{ secrets.QDRANT_API_KEY }}' \
123- --env PRIVATE_KEY='${{ secrets.PRIVATE_KEY }}' \
124- --env SERVICE_ACCOUNT_ID='${{ secrets.SERVICE_ACCOUNT_ID }}' \
125- --env KEY_ID='${{ secrets.KEY_ID }}' \
126- --env HOST='${{ vars.HOST }}' \
127- --env PORT='${{ vars.PORT }}' \
140+ docker run --rm --network=web --env-file migration.env \
128141 --name ${{ env.CONTAINER_NAME }}_migration \
129142 ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest \
130143 alembic upgrade head
144+
145+ - name : Create env file for container
146+ run : |
147+ cat > container.env << EOF
148+ DB_DSN=${{ secrets.DB_DSN }}
149+ BOT_TOKEN=${{ secrets.BOT_TOKEN }}
150+ BASE_URL=${{ vars.BASE_URL }}
151+ WEBHOOK_PATH=${{ vars.WEBHOOK_PATH }}
152+ QDRANT_API_KEY=${{ secrets.QDRANT_API_KEY }}
153+ PRIVATE_KEY=${{ secrets.PRIVATE_KEY }}
154+ SERVICE_ACCOUNT_ID=${{ secrets.SERVICE_ACCOUNT_ID }}
155+ KEY_ID=${{ secrets.KEY_ID }}
156+ HOST=${{ vars.HOST }}
157+ PORT=${{ vars.PORT }}
158+ EOF
159+
131160 - name : Run new version
132161 run : |
133- docker stop ${{ env.CONTAINER_NAME }} || true && docker rm ${{ env.CONTAINER_NAME }} || true
134- docker run \
135- --detach \
136- --network=web \
137- --restart always \
138- --env DB_DSN='${{ secrets.DB_DSN }}' \
139- --env BOT_TOKEN='${{ secrets.BOT_TOKEN }}' \
140- --env BASE_URL='${{ vars.BASE_URL }}' \
141- --env WEBHOOK_PATH='${{ vars.WEBHOOK_PATH }}' \
142- --env QDRANT_API_KEY='${{ secrets.QDRANT_API_KEY }}' \
143- --env PRIVATE_KEY='${{ secrets.PRIVATE_KEY }}' \
144- --env SERVICE_ACCOUNT_ID='${{ secrets.SERVICE_ACCOUNT_ID }}' \
145- --env KEY_ID='${{ secrets.KEY_ID }}' \
146- --env HOST='${{ vars.HOST }}' \
147- --env PORT='${{ vars.PORT }}' \
162+ docker stop ${{ env.CONTAINER_NAME }} || true
163+ docker rm ${{ env.CONTAINER_NAME }} || true
164+ docker run --detach --network=web --restart always \
165+ --env-file container.env \
148166 --name ${{ env.CONTAINER_NAME }} \
149167 ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest
0 commit comments