Skip to content

Build and Push Docker image to GitLab Registry #42

Build and Push Docker image to GitLab Registry

Build and Push Docker image to GitLab Registry #42

name: Build and Push Docker image to GitLab Registry
on:
workflow_dispatch:
permissions:
contents: read
packages: read
env:
IMAGE_NAME: inocs-sum-odp-webapp
REGISTRY: ${{ secrets.GITLAB_REGISTRY }}
PROJECT_PATH: ${{ vars.GITLAB_PROJECT_PATH }}
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Extract version from package.json
id: package-version
run: echo "version=$(node -p "require('./package.json').version")" >> $GITHUB_OUTPUT
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log in to GitLab Container Registry
run: echo "${{ secrets.GITLAB_PASSWORD }}" | docker login ${{ env.REGISTRY }} -u ${{ secrets.GITLAB_USER }} --password-stdin
- name: Build and push Docker image
uses: docker/build-push-action@v6
with:
context: .
file: ./Dockerfile
push: true
provenance: false
sbom: false
tags: |
${{ env.REGISTRY }}/${{ env.PROJECT_PATH }}/${{ env.IMAGE_NAME }}:${{ steps.package-version.outputs.version }}
${{ env.REGISTRY }}/${{ env.PROJECT_PATH }}/${{ env.IMAGE_NAME }}:latest
cache-from: type=registry,ref=${{ env.REGISTRY }}/${{ env.PROJECT_PATH }}/${{ env.IMAGE_NAME }}:latest
cache-to: type=inline
- name: Logout
run: docker logout ${{ env.REGISTRY }}