73 lines
1.8 KiB
YAML
73 lines
1.8 KiB
YAML
name: Build & Deploy
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
- v*
|
|
workflow_dispatch:
|
|
|
|
# branches:
|
|
# - master
|
|
# - dev
|
|
|
|
# pull_request:
|
|
# branches:
|
|
# - main
|
|
|
|
env:
|
|
REGISTRY: ghcr.io
|
|
IMAGE_NAME: ${{ github.repository }}
|
|
TAG: ${{ github.ref_name }}
|
|
|
|
jobs:
|
|
# test:
|
|
# timeout-minutes: 10
|
|
# runs-on: ubuntu-latest
|
|
|
|
# steps:
|
|
# - name: Checkout
|
|
# uses: actions/checkout@v1
|
|
|
|
# # - name: Build containers
|
|
# # run: docker compose build
|
|
|
|
# - name: Test backend
|
|
# run: docker compose run --build backend sh -c 'npx prisma migrate reset --force && export NODE_ENV=test && npx jest'
|
|
|
|
push:
|
|
timeout-minutes: 10
|
|
runs-on: ubuntu-latest
|
|
permissions:
|
|
contents: read
|
|
packages: write
|
|
# needs: test
|
|
# if: github.ref == 'refs/heads/main'
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v3
|
|
|
|
- name: 'Login to GitHub Container Registry'
|
|
uses: docker/login-action@v2
|
|
with:
|
|
registry: ${{env.REGISTRY}}
|
|
username: ${{github.actor}}
|
|
password: ${{secrets.GITHUB_TOKEN}}
|
|
|
|
- name: Build containers
|
|
run: docker compose -f docker-compose.yml -f docker-compose.prod.yml build
|
|
|
|
- name: Add tag
|
|
run: docker tag ${{env.REGISTRY}}/${{env.IMAGE_NAME}}:latest ${{env.REGISTRY}}/${{env.IMAGE_NAME}}:${{env.TAG}}
|
|
|
|
# - name: Add tag
|
|
# run: docker tag ${{env.REGISTRY}}/${{env.IMAGE_NAME}}:latest ${{env.REGISTRY}}/${{env.IMAGE_NAME}}:${{github.sha}}
|
|
|
|
# - name: Tag with Git SHA
|
|
# run: docker tag ${{env.REGISTRY}}/${{env.IMAGE_NAME}}:latest ${{env.REGISTRY}}/${{env.IMAGE_NAME}}:${{github.sha}}
|
|
|
|
- name: Push to Docker Hub
|
|
run: |
|
|
docker push ${{env.REGISTRY}}/${{env.IMAGE_NAME}}:${{env.TAG}}
|
|
docker push ${{env.REGISTRY}}/${{env.IMAGE_NAME}}:latest
|