Skip to content

Change ratio (#150) #100

Change ratio (#150)

Change ratio (#150) #100

Workflow file for this run

name: Deploy
on:
push:
branches: ["master"]
jobs:
migrate:
name: Migrate database
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Download golang-migrate binary
run: mkdir golang-migrate && curl -L https://github.com/golang-migrate/migrate/releases/download/v4.16.2/migrate.linux-amd64.tar.gz | tar -xz -C golang-migrate
- name: Run migrations
run: |
mkdir keys
touch defaultec2.pem
echo "${{ secrets.EC2_PRIVATE_SSH_KEY }}" | tr -d '\r' > defaultec2.pem
chmod 400 defaultec2.pem
ssh -o StrictHostKeyChecking=no -i defaultec2.pem -N -L 5433:localhost:5432 wweitzel@24.56.249.228 -v &
sleep 2
./golang-migrate/migrate -source file://internal/db/migrations -database postgres://${{ secrets.TOP90_DB_USER }}:${{ secrets.TOP90_DB_PASSWORD }}@localhost:5433/redditsoccergoals up
scraper:
name: Deploy scraper
runs-on: ubuntu-latest
needs: migrate
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Login to Docker Hub
uses: docker/#-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Build and push
uses: docker/build-push-action@v4
with:
context: .
file: ./Dockerfile.scraper
push: true
tags: ${{ secrets.DOCKERHUB_USERNAME }}/top90-scraper
- name: Pull image on ec2
run: |
mkdir keys
touch keys/defaultec2.pem
echo "${{ secrets.EC2_PRIVATE_SSH_KEY }}" | tr -d '\r' > keys/defaultec2.pem
chmod 400 keys/defaultec2.pem
ssh -o StrictHostKeyChecking=no -i keys/defaultec2.pem wweitzel@24.56.249.228 <<EOF
docker pull ${{ secrets.DOCKERHUB_USERNAME }}/top90-scraper
EOF
ssh -o StrictHostKeyChecking=no -i keys/defaultec2.pem wweitzel@24.56.249.228 <<EOF
docker image prune -f
EOF
api:
name: Deploy api
runs-on: ubuntu-latest
needs: migrate
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Login to Docker Hub
uses: docker/#-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Build and push
uses: docker/build-push-action@v4
with:
context: .
file: ./Dockerfile
push: true
tags: ${{ secrets.DOCKERHUB_USERNAME }}/top90
- name: Pull latest image
run: |
mkdir keys
touch keys/defaultec2.pem
echo "${{ secrets.EC2_PRIVATE_SSH_KEY }}" | tr -d '\r' > keys/defaultec2.pem
touch .env
echo "${{ secrets.TOP90_ENV_FILE_PROD }}" | tr -d '\r' > .env
chmod 400 keys/defaultec2.pem
ssh -o StrictHostKeyChecking=no -i keys/defaultec2.pem wweitzel@24.56.249.228 docker pull ${{ secrets.DOCKERHUB_USERNAME }}/top90
- name: Restart API
run: |
ssh -o StrictHostKeyChecking=no -i keys/defaultec2.pem wweitzel@24.56.249.228 docker stop top90-server || true
ssh -o StrictHostKeyChecking=no -i keys/defaultec2.pem wweitzel@24.56.249.228 docker container prune -f
ssh -o StrictHostKeyChecking=no -i keys/defaultec2.pem wweitzel@24.56.249.228 docker run --network="host" --env-file top90/.env -p 7171:7171 -d --restart unless-stopped --name top90-server wweitzel/top90
ssh -o StrictHostKeyChecking=no -i keys/defaultec2.pem wweitzel@24.56.249.228 docker image prune -f
syncdata:
name: Deploy syncdata
runs-on: ubuntu-latest
needs: migrate
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Login to Docker Hub
uses: docker/#-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Build and push
uses: docker/build-push-action@v4
with:
context: .
file: ./Dockerfile.syncdata
push: true
tags: ${{ secrets.DOCKERHUB_USERNAME }}/top90-syncdata
- name: Pull image on ec2
run: |
mkdir keys
touch keys/defaultec2.pem
echo "${{ secrets.EC2_PRIVATE_SSH_KEY }}" | tr -d '\r' > keys/defaultec2.pem
chmod 400 keys/defaultec2.pem
ssh -o StrictHostKeyChecking=no -i keys/defaultec2.pem wweitzel@24.56.249.228 <<EOF
docker pull ${{ secrets.DOCKERHUB_USERNAME }}/top90-syncdata
EOF
ssh -o StrictHostKeyChecking=no -i keys/defaultec2.pem wweitzel@24.56.249.228 <<EOF
docker image prune -f
EOF