Tweak duplicate check (#147) #97
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |