Skip to content

Merge pull request #7 #245

Merge pull request #7

Merge pull request #7 #245

Workflow file for this run

# build, publis and deploy an API docker image
name: build, publish & deploy docker image
on: [push]
jobs:
push_to_registry:
name: push docker image to docker hub
runs-on: ubuntu-latest
steps:
- name: check out the repo
uses: actions/checkout@v2
- name: log in to docker hub
uses: docker/login-action@v1.10.0
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: extract metadata (tags, labels) for docker
id: meta
uses: docker/metadata-action@v3.3.0
with:
images: gendercomics/api
tags: |
type=ref,event=branch
type=ref,event=tag
flavor: |
latest=true
- name: build and push docker image
uses: docker/build-push-action@v2.6.1
with:
push: true
tags: ${{ steps.meta.outputs.tags }}
deploy_stage:
needs: push_to_registry
name: stage deployment to digitalocean.com
runs-on: ubuntu-latest
steps:
- name: check out the repo
uses: actions/checkout@v2
- name: deploy stage
uses: alinz/ssh-scp-action@master
with:
key: ${{ secrets.DEPLOY_KEY }}
host: ${{ secrets.APP_HOST }}
user: ${{ secrets.DEPLOY_USER }}
# runs this on remove server
ssh_before: |
echo 'STAGE: deploying ${{ github.ref }}'
cd /var/gendercomics/api
ls -lath
# then upload docker-compose.yml
scp: |
./docker-compose.yml ${{ secrets.DEPLOY_USER }}@${{ secrets.APP_HOST }}:/var/gendercomics/api
# then run these commands
ssh_after: |
echo 'running docker-compose'
docker pull gendercomics/api:latest
cd /var/gendercomics/api
docker-compose up -d gendercomics-api-stage
echo 'DONE!!!'
deploy_production:
if: startsWith(github.ref, 'refs/tags/')
needs: push_to_registry
name: production deployment to digitalocean.com
runs-on: ubuntu-latest
steps:
- name: check out the repo
uses: actions/checkout@v2
- name: extract metadata (tags, labels) for docker
id: meta
uses: docker/metadata-action@v3.3.0
with:
images: gendercomics/api
tags: |
type=ref,event=tag
- name: deploy stage
uses: alinz/ssh-scp-action@master
with:
key: ${{ secrets.DEPLOY_KEY }}
host: ${{ secrets.APP_HOST }}
user: ${{ secrets.DEPLOY_USER }}
# runs this on remove server
ssh_before: |
echo 'PRODUCTION: deploying ${{ github.ref }}'
cd /var/gendercomics/api
ls -lath
# then upload docker-compose.yml
scp: |
./docker-compose.yml ${{ secrets.DEPLOY_USER }}@${{ secrets.APP_HOST }}:/var/gendercomics/api
# then run these commands
ssh_after: |
echo 'running docker-compose'
docker pull gendercomics/api:${{ steps.meta.outputs.tags }}
cd /var/gendercomics/api
docker-compose up -d gendercomics-api
echo 'DONE!!!'