Skip to content

Build and Push Docker Image #3356

Build and Push Docker Image

Build and Push Docker Image #3356

name: Build and Push Docker Image
on:
schedule:
- cron: '0 */2 * * *'
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v2
with:
context: .
push: true
tags: bitcoindevproject/public-inbox:latest
no-cache: true
deploy:
needs: build
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Use Node 18
uses: actions/setup-node@v1
with:
node-version: 18.x
- name: Install Railway
run: npm i -g @railway/cli
- name: Deploy
run: | # This script retries the deployment 3 times before failing because railway sometimes fails to deploy
n=0
until [ "$n" -ge 3 ]
do
railway up --service public-inbox && break
n=$((n+1))
echo "Retrying deployment... attempt $n"
sleep 10
done
# Check if all retries failed
if [ "$n" -eq 3 ]; then
echo "All deployment attempts failed"
exit 1
fi
env:
RAILWAY_TOKEN: ${{ secrets.RAILWAY_TOKEN }}