Build and Deploy Docker Container #5
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This workflow will build a docker container, publish it to Github Registry. | |
name: Build and Deploy Docker Container | |
on: | |
release: | |
types: [created] | |
workflow_dispatch: | |
env: | |
REGISTRY: ghcr.io | |
WEBAPP_IMAGE_NAME: poudelprakash/bigcapital-webapp | |
SERVER_IMAGE_NAME: poudelprakash/bigcapital-server | |
jobs: | |
build-publish-webapp: | |
name: Build and deploy webapp container | |
runs-on: ubuntu-latest | |
environment: production | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
# Login to Container registry. | |
- name: Log in to the Container registry | |
uses: docker/login-action@v1 | |
with: | |
registry: ${{ env.REGISTRY }} | |
username: ${{ github.actor }} | |
password: ${{ secrets.GH_TOKEN }} | |
- name: Extract metadata (tags, labels) for Docker | |
id: meta | |
uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38 | |
with: | |
images: ${{ env.REGISTRY }}/${{ env.WEBAPP_IMAGE_NAME }} | |
# Builds and push the Docker image. | |
- name: Build and push Docker image | |
uses: docker/build-push-action@v2 | |
with: | |
context: . | |
file: ./packages/webapp/Dockerfile | |
push: true | |
tags: ghcr.io/poudelprakash/webapp:latest | |
labels: ${{ steps.meta.outputs.labels }} | |
# Send notification to Slack channel. | |
# - name: Slack Notification built and published webapp container successfully. | |
# uses: rtCamp/action-slack-notify@v2 | |
# env: | |
# SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }} | |
build-publish-server: | |
name: Build and deploy server container | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v2 | |
# Login to Container registry. | |
- name: Log in to the Container registry | |
uses: docker/login-action@v1 | |
with: | |
registry: ${{ env.REGISTRY }} | |
username: ${{ github.actor }} | |
password: ${{ secrets.GH_TOKEN }} | |
# Builds and push the Docker image. | |
- name: Build and push Docker image | |
uses: docker/build-push-action@v2 | |
with: | |
context: ./ | |
file: ./packages/server/Dockerfile | |
push: true | |
tags: ghcr.io/poudelprakash/server:latest | |
labels: ${{ steps.meta.outputs.labels }} | |
# Send notification to Slack channel. | |
# - name: Slack Notification built and published server container successfully. | |
# uses: rtCamp/action-slack-notify@v2 | |
# env: | |
# SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }} |