decla-red/.github/workflows/main.yaml
2020-07-26 19:24:10 +02:00

94 lines
2.5 KiB
YAML

name: Deploy everything
on:
push:
branches:
- master
env:
CONTAINER_REGISTRY: registry.digitalocean.com/declared
DOMAIN: decla.red
jobs:
build-error-pages:
runs-on: ubuntu-latest
steps:
- name: Checkout current branch with lfs
uses: actions/checkout@master
with:
lfs: true
- name: Setup auth tokens
run: |
# Docker Hub
docker login -u ${{ secrets.DOCKER_TOKEN }} -p ${{ secrets.DOCKER_TOKEN }}
- name: Build and push error pages
run: |
docker build . -t $CONTAINER_REGISTRY/declared-error-pages
docker push $CONTAINER_REGISTRY/declared-error-pages
working-directory: error-pages
build-ingress:
runs-on: ubuntu-latest
needs:
- build-error-pages
steps:
- name: Checkout current branch with lfs
uses: actions/checkout@master
with:
lfs: true
- name: Setup auth tokens
run: |
# Docker Hub
docker login -u ${{ secrets.DOCKER_TOKEN }} -p ${{ secrets.DOCKER_TOKEN }}
- name: Build and push ingress
run: |
docker build . -t $CONTAINER_REGISTRY/declared-ingress
docker push $CONTAINER_REGISTRY/declared-ingress
working-directory: ingress
build-frontend:
runs-on: ubuntu-latest
needs:
- build-error-pages
steps:
- name: Checkout current branch with lfs
uses: actions/checkout@master
with:
lfs: true
- name: Setup auth tokens
run: |
# Docker Hub
docker login -u ${{ secrets.DOCKER_TOKEN }} -p ${{ secrets.DOCKER_TOKEN }}
- name: Build and push frontend
run: |
docker build . -t $CONTAINER_REGISTRY/declared-frontend
docker push $CONTAINER_REGISTRY/declared-frontend
working-directory: frontend
deploy:
runs-on: ubuntu-latest
needs:
- build-frontend
- build-ingress
steps:
- name: Checkout current branch with lfs
uses: actions/checkout@master
with:
lfs: true
- name: Setup auth tokens
run: |
# SSH key
mkdir ~/.ssh
echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_ed25519
chmod 400 ~/.ssh/id_ed25519
ssh -o StrictHostKeyChecking=no root@$DOMAIN uptime
- name: Stack up
run: |
DOCKER_HOST=ssh://root@$DOMAIN docker stack up declared -c docker-compose.yml
working-directory: infrastructure