Skip to content

[workflows/ci-cd] Add CI/CD Workflow #6

[workflows/ci-cd] Add CI/CD Workflow

[workflows/ci-cd] Add CI/CD Workflow #6

Workflow file for this run

name: CI/CD
on:
pull_request:
branches:
- main
types:
- closed
- synchronize
- opened
workflow_dispatch:
env:
IMAGE_REGISTRY: docker.io
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set environment variables
run: |
TAG=${{ hashFiles('**/package-lock.json') }}
USER=$GITHUB_REPOSITORY_OWNER
BUILDER_STRING=${REGISTRY}/${GITHUB_REPOSITORY}:builder-${TAG}
CONTEXT="./"
echo "BUILDER_STRING=$BUILDER_STRING >> $GITHUB_ENV"
echo "USER=$USER >> $GITHUB_ENV"
echo "CONTEXT=$CONTEXT >> $GITHUB_ENV"
- name: Build builder image
run: |
if [ $(docker manifest inspect $BUILDER_STRING > /dev/null ; echo $?) == 0 ]
then
exit 0
done
docker login -u=$USER -p=${{ secrets.DOCKER_CI_TOKEN }} docker.io
docker buildx create --use --driver=docker-container
docker buildx build --push -t $BUILDER_STRING \
--cache-from type=registry,ref=$BUILDER_STRING \
--cache-to type=registry,ref=$BUILDER_STRING \
${CONTEXT}
echo "Published image $BUILDER_STRING"
docker logout