diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 9692f7f..8f2864b 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -11,6 +11,8 @@ jobs: build-and-push: name: Build and Push to Docker Hub runs-on: ubuntu-latest + outputs: + tag: ${{ steps.vars.outputs.tag }} steps: - name: Checkout code uses: actions/checkout@v3 @@ -24,16 +26,21 @@ jobs: echo "REDIS_PASSWORD=fake" >> .env echo "REDIS_HOST=redis" >> .env + - name: Set image tag + id: vars + run: | + echo "tag=${GITHUB_SHA::7}" >> $GITHUB_OUTPUT + - name: Login to Docker Hub run: echo "${{ secrets.DOCKERHUB_TOKEN }}" | docker login -u "${{ secrets.DOCKERHUB_USERNAME }}" --password-stdin - name: Build bot image run: | - docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/next-downloader-bot:latest -f ./apps/bot/Dockerfile . + docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/next-downloader-bot:${{ steps.vars.outputs.tag }} -f ./apps/bot/Dockerfile . - name: Push bot image to Docker Hub run: | - docker push ${{ secrets.DOCKERHUB_USERNAME }}/next-downloader-bot:latest + docker push ${{ secrets.DOCKERHUB_USERNAME }}/next-downloader-bot:${{ steps.vars.outputs.tag }} deploy: name: Deploy to VPS @@ -63,6 +70,8 @@ jobs: echo "TELEGRAM_API_HASH=${{ secrets.TELEGRAM_API_HASH }}" >> .env echo "REDIS_PASSWORD=${{ secrets.REDIS_PASSWORD }}" >> .env echo "REDIS_HOST=${{ secrets.REDIS_HOST }}" >> .env + echo "BOT_IMAGE_TAG=${{ needs.build-and-push.outputs.tag }}" >> .env + echo "DOCKERHUB_USERNAME=${{ secrets.DOCKERHUB_USERNAME }}" >> .env - name: Copy .env to VPS via SCP uses: appleboy/scp-action@master diff --git a/docker-compose.yml b/docker-compose.yml index 95dd96f..a1bfc4c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -23,7 +23,7 @@ services: start_period: 30s next-downloader-bot: - image: vchikalkin/next-downloader-bot:latest + image: "${DOCKERHUB_USERNAME}/next-downloader-bot:${BOT_IMAGE_TAG}" env_file: - .env restart: always