2021-08-28 19:34:34 +03:00
|
|
|
name: Push
|
|
|
|
|
2021-08-28 19:36:13 +03:00
|
|
|
on: [push, release]
|
2021-08-28 19:34:34 +03:00
|
|
|
|
|
|
|
jobs:
|
|
|
|
build:
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
|
|
|
|
steps:
|
|
|
|
- name: Checkout
|
|
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Install Go
|
|
|
|
uses: actions/setup-go@v2
|
|
|
|
- name: Build
|
2021-08-29 09:45:06 +03:00
|
|
|
run: GO111MODULE=on CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build .
|
2021-08-28 19:49:43 +03:00
|
|
|
- name: Upload build
|
|
|
|
uses: actions/upload-artifact@v2
|
|
|
|
with:
|
|
|
|
name: micrach
|
|
|
|
path: micrach
|
2021-08-28 19:34:34 +03:00
|
|
|
|
2021-08-28 19:49:43 +03:00
|
|
|
release:
|
2021-08-28 19:50:24 +03:00
|
|
|
needs: build
|
2021-08-28 19:52:09 +03:00
|
|
|
|
2021-08-28 19:49:43 +03:00
|
|
|
runs-on: ubuntu-latest
|
|
|
|
|
|
|
|
steps:
|
|
|
|
- name: Checkout
|
|
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Download build
|
|
|
|
uses: actions/download-artifact@v2
|
|
|
|
with:
|
|
|
|
name: micrach
|
|
|
|
path: micrach
|
|
|
|
- name: Build docker image and push to GitHub registry
|
|
|
|
uses: docker/build-push-action@v1
|
|
|
|
with:
|
|
|
|
username: ${{ github.actor }}
|
|
|
|
password: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
registry: docker.pkg.github.com
|
2021-08-28 19:52:09 +03:00
|
|
|
repository: yanislav-igonin/micrach-go/micrach
|
2021-08-28 19:49:43 +03:00
|
|
|
dockerfile: Dockerfile
|
|
|
|
tags: latest
|
|
|
|
# build_args: CI_COMMIT_TAG=${{ github.event.release.tag_name }}
|
2021-08-29 09:54:07 +03:00
|
|
|
|
|
|
|
|
|
|
|
deploy:
|
|
|
|
needs: release
|
|
|
|
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
|
|
|
|
steps:
|
|
|
|
- name: Deploy
|
|
|
|
uses: appleboy/ssh-action@master
|
|
|
|
env:
|
|
|
|
REGISTRY: ghcr.io/yanislav-igonin/micrach-go/micrach
|
|
|
|
SERVICE_NAME: micrach_app
|
|
|
|
with:
|
|
|
|
host: ${{ secrets.VPS_HOST }}
|
|
|
|
username: ${{ secrets.VPS_SSH_USERNAME }}
|
|
|
|
key: ${{ secrets.VPS_SSH_PRIVATE_KEY }}
|
|
|
|
script: |
|
|
|
|
docker login -u ${{ github.actor }} -p ${{ secrets.GITHUB_TOKEN }} ${{ env.REGISTRY }}
|
|
|
|
docker pull ${{ env.REGISTRY }}:${{ github.event.release.tag_name }}
|
|
|
|
docker pull ${{ env.REGISTRY }}:latest
|
|
|
|
docker service update --image ${{ env.REGISTRY }}:${{ github.event.release.tag_name }} ${{ env.SERVICE_NAME }}
|