Skip to content

feat: add frontend workflow #1

feat: add frontend workflow

feat: add frontend workflow #1

Workflow file for this run

name: Frontend CI Pipeline
on:
push:
branches: [ main ]
paths:
- 'src/frontend/**'
workflow_dispatch:
env:
DOCKERHUB_ID: maestrops
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '16'
- name: Set environment variables
run: |
COMMIT_SHA=$(git rev-parse --short HEAD)
echo "IMAGE_NAME=${{ env.DOCKERHUB_ID }}/cymbal-frontend" >> $GITHUB_ENV
echo "IMAGE_TAG_1=latest" >> $GITHUB_ENV
echo "IMAGE_TAG_2=${{ github.run_number }}-$COMMIT_SHA" >> $GITHUB_ENV
- name: Build Docker Image
working-directory: src/frontend
run: |
docker build -t ${{ env.IMAGE_NAME }} .
docker tag ${{ env.IMAGE_NAME }} ${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG_2 }}
# docker tag ${{ env.IMAGE_NAME }} ${{ env.DOCKERHUB_ID }}/${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG_1 }}
- name: Run Trivy Scan
uses: aquasecurity/trivy-action@master
with:
image-ref: ${{ env.IMAGE_NAME }}
format: 'table'
output: '${{ env.IMAGE_NAME }}-scan-report.txt'
- name: Upload Scan Results
uses: actions/upload-artifact@v3
with:
name: trivy-scan-results
path: ${{ env.IMAGE_NAME }}-scan-report.txt
- name: Login to DockerHub
uses: docker/login-action@v2
with:
username: ${{ env.DOCKERHUB_ID }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Push Docker Images
run: |
docker push ${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG_1 }}
docker push ${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG_2 }}