micrach/.github/workflows/push.yml

69 lines
1.9 KiB
YAML
Raw Normal View History

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
2021-09-10 19:57:45 +03:00
with:
go-version: '1.17'
2021-08-28 19:34:34 +03:00
- 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 }}
2021-08-29 10:07:12 +03:00
# docker pull ${{ env.REGISTRY }}:${{ github.event.release.tag_name }}
2021-08-29 09:54:07 +03:00
docker pull ${{ env.REGISTRY }}:latest
2021-08-29 10:07:12 +03:00
# docker service update --image ${{ env.REGISTRY }}:${{ github.event.release.tag_name }} ${{ env.SERVICE_NAME }}
docker service update --image ${{ env.REGISTRY }}:latest ${{ env.SERVICE_NAME }}