MNES-1021 Create pipeline #16
Workflow file for this run
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
name: Docker | |
on: | |
push: | |
branches: [ "**" ] | |
tags: [ 'v*.*.*' ] | |
pull_request: | |
branches: [ "**" ] | |
env: | |
# github.repository as <account>/<repo> | |
IMAGE_NAME: mnestix-browser | |
IMAGE_TAG: latest | |
# Update the version manually | |
IMAGE_TAG_VERSION: 0.1.0 | |
AD_CLIENT_ID: ${{ secrets.AD_CLIENT_ID }} | |
AD_TENANT_ID: ${{ secrets.AD_TENANT_ID }} | |
REGISTRY_USER: ${{ vars.REGISTRY_USER }} | |
REGISTRY_PASS: ${{ secrets.REGISTRY_PASS }} | |
AZURE_REGISTRY_PASS: ${{ secrets.AZURE_REGISTRY_PASS }} | |
AZURE_REGISTRY_USER: ${{ vars.AZURE_REGISTRY_USER }} | |
jobs: | |
default: | |
name: build, test and push image | |
runs-on: ubuntu-latest | |
permissions: | |
contents: read | |
packages: write | |
steps: | |
- name: Extract branch name | |
id: extract_branch | |
run: echo "branch=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}" >> $GITHUB_OUTPUT | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
# Login against a Docker registry except on PR | |
# https://github.com/docker/login-action | |
- name: Log into docker hub | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ env.REGISTRY_USER }} | |
password: ${{ env.REGISTRY_PASS }} | |
# Build Docker image | |
- name: Build image | |
id: build | |
run: docker compose -f docker-compose/compose.yml build mnestix-frontend | |
- name: E2E test | |
id: test | |
run: docker compose -f docker-compose/common-services.yml pull && | |
docker compose -f docker-compose/compose.test.yml down && | |
docker compose -f docker-compose/compose.test.yml up -d && | |
docker compose -f docker-compose/compose.test.yml attach cypress-test | |
- name: E2E test collect artifact | |
id: test_artifact | |
uses: actions/upload-artifact@master | |
with: | |
name: cypress-artifacts | |
path: cypress-artifacts/ | |
- name: Push Image to Production | |
id: push-prod | |
if: github.ref == 'refs/heads/prod' | |
run: docker tag mnestix/$IMAGE_NAME mnestix/$IMAGE_NAME:$IMAGE_TAG && | |
docker tag mnestix/$IMAGE_NAME mnestix/$IMAGE_NAME:$IMAGE_TAG_VERSION && | |
docker push mnestix/$IMAGE_NAME:$IMAGE_TAG && | |
docker push mnestix/$IMAGE_NAME:$IMAGE_TAG_VERSION | |
- name: Push Image to development | |
id: push-dev | |
if: github.ref == 'refs/heads/dev' || github.ref == 'refs/heads/staging' | |
env: | |
BRANCH_NAME: ${{ steps.extract_branch.outputs.branch }} | |
run: docker tag mnestix/$IMAGE_NAME mnestixcr.azurecr.io/$IMAGE_NAME:$BRANCH_NAME && | |
docker login -u $AZURE_REGISTRY_USER -p $AZURE_REGISTRY_PASS mnestixcr.azurecr.io && | |
docker push mnestixcr.azurecr.io/$IMAGE_NAME:$BRANCH_NAME | |