Skip to content

feature(auth): flow

feature(auth): flow #2

Workflow file for this run

name: CI/CD Development Env
on:
push:
branches: ["main"]
# pull_request:
# branches: ["main"]
env:
REGISTRY: ghcr.io
REGISTRY_USERNAME: ${{ github.actor }}
REGISTRY_PASSWORD: ${{ secrets.GITHUB_TOKEN }}
IMAGE_NAME: ${{ github.repository }}
WORKER_IMAGE_NAME: ${{ github.repository }}-worker
jobs:
test-build-dev:
name: Test & Build for Development env
# if: github.ref == 'refs/heads/main' && github.event_name == 'push'
runs-on: ["socious-v3-dev"]
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Go environment
uses: actions/[email protected]
with:
go-version: '1.22.5'
- name: Copying build & test environment
run: |
cp /etc/socious-api-v3/config.yml .
cp /etc/socious-api-v3/test.config.yml .
- name: Downloading dependencies
run: |
go mod download
- name: Running tests
run: |
go test -v ./tests
- name: Run DB migrations
run: |
go run cmd/migrate/main.go up
- name: Docker Setup Buildx
uses: docker/[email protected]
- name: Log into registry ${{ env.REGISTRY }}
if: github.event_name != 'pull_request'
uses: docker/[email protected]
with:
registry: ${{ env.REGISTRY }}
username: ${{ env.REGISTRY_USERNAME }}
password: ${{ env.REGISTRY_PASSWORD }}
- name: Extract Docker metadata
id: meta
uses: docker/[email protected]
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
- name: Build and push Docker image
id: build-and-push
uses: docker/[email protected]
with:
context: .
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
# - name: Extract Worker Docker metadata
# id: meta-worker
# uses: docker/[email protected]
# with:
# images: ${{ env.REGISTRY }}/${{ env.WORKER_IMAGE_NAME }}
# - name: Build and push Worker Docker image
# id: build-and-push-worker
# uses: docker/[email protected]
# with:
# context: .
# file: "./Worker.Dockerfile"
# push: ${{ github.event_name != 'pull_request' }}
# tags: ${{ steps.meta-worker.outputs.tags }}
# labels: ${{ steps.meta-worker.outputs.labels }}
deploy-dev:
needs: [test-build-dev]
name: Deploy to Dev
# if: github.ref == 'refs/heads/main' && github.event_name == 'push'
runs-on: ["socious-v3-dev"]
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Log into registry ${{ env.REGISTRY }}
if: github.event_name != 'pull_request'
uses: docker/[email protected]
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract Docker metadata
id: meta
uses: docker/[email protected]
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
- name: Docker run
run: |
docker pull ${{ steps.meta.outputs.tags }}
docker ps -qa --filter "name=socious-api-v3" | grep -q . && docker stop socious-api-v3 && docker rm -fv socious-api-v3
docker run -d --restart always -p 5063:5063 -h socious-api-v3 --network sociousapiv3_default --name socious-api-v3 ${{ steps.meta.outputs.tags }}
# - name: Extract Docker metadata
# id: meta-worker
# uses: docker/[email protected]
# with:
# images: ${{ env.REGISTRY }}/${{ env.WORKER_IMAGE_NAME }}
# - name: Docker run worker
# run: |
# docker pull ${{ steps.meta-worker.outputs.tags }}
# docker ps -qa --filter "name=socious-api-v3-worker" | grep -q . && docker stop socious-api-v3-worker && docker rm -fv socious-api-v3-worker
# docker run -d --restart always -h socious-api-v3-worker --network sociousapiv3_default --name socious-api-v3-worker ${{ steps.meta-worker.outputs.tags }}