Skip to content

ui: remove xcore location as the destination of the transition workflow #979

ui: remove xcore location as the destination of the transition workflow

ui: remove xcore location as the destination of the transition workflow #979

---
name: build, push to registry and tests
on:
push:
branches-ignore:
- 'development/**'
jobs:
build:
runs-on: ubuntu-20.04
permissions:
contents: read
packages: write
steps:
- name: Checkout
uses: actions/[email protected]
- uses: actions/[email protected]
with:
node-version: '16'
cache: 'npm'
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to GitHub Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Login to Scality Registry
uses: docker/login-action@v2
with:
registry: registry.scality.com
username: ${{ secrets.REGISTRY_LOGIN }}
password: ${{ secrets.REGISTRY_PASSWORD}}
- name: install dependencies
run: npm config set unsafe-perm true && npm ci
- name: build assets
run: npm run build
- name: Build and push zenko ui
uses: docker/[email protected]
with:
push: true
context: .
tags: |
ghcr.io/${{ github.repository }}/zenko-ui:${{ github.sha }}
registry.scality.com/zenko-ui-dev/zenko-ui:${{ github.sha }}
cache-from: type=gha
cache-to: type=gha,mode=max
- name: Build and push keycloak
uses: docker/[email protected]
with:
push: true
context: .github/docker/keycloakconfig
tags: ghcr.io/${{ github.repository }}/ci-keycloak:${{ github.sha }}
cache-from: type=gha
cache-to: type=gha,mode=max
tests:
runs-on: ubuntu-20.04
steps:
- uses: actions/[email protected]
- uses: actions/[email protected]
with:
node-version: '16'
cache: 'npm'
- name: install dependencies
run: npm config set unsafe-perm true && npm ci
- name: run eslint test
run: npm run test:lint
- name: run test suite
run: npm run test:coverage
- name: code coverage
uses: codecov/[email protected]
end2end:
needs: [build]
runs-on: ubuntu-20.04
permissions:
contents: read
packages: write
env:
KEYCLOAK_ROOT: 'http://127.0.0.1:8080'
KEYCLOAK_REALM: 'myrealm'
KEYCLOAK_CLIENT_ID: 'myclient'
KEYCLOAK_USERNAME: 'bartsimpson'
KEYCLOAK_PASSWORD: '123'
KEYCLOAK_USER_FIRSTNAME: 'Bart'
KEYCLOAK_USER_LASTNAME: 'Simpson'
services:
keycloak:
image: ghcr.io/${{ github.repository }}/ci-keycloak:${{ github.sha }}
credentials:
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
ports:
- 8080:8080
env:
# Couldn't find a way to not duplicate those variables
KEYCLOAK_ROOT: 'http://127.0.0.1:8080'
KEYCLOAK_REALM: 'myrealm'
KEYCLOAK_CLIENT_ID: 'myclient'
KEYCLOAK_USERNAME: 'bartsimpson'
KEYCLOAK_PASSWORD: '123'
KEYCLOAK_USER_FIRSTNAME: 'Bart'
KEYCLOAK_USER_LASTNAME: 'Simpson'
shell-ui:
image: registry.scality.com/metalk8s/shell-ui:v2.10.3
ports:
- 8082:80
steps:
- uses: actions/[email protected]
- uses: actions/[email protected]
with:
node-version: '16'
cache: 'npm'
- name: install dependencies
run: npm config set unsafe-perm true && npm ci
- name: Login to GitHub Registry
uses: docker/[email protected]
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
# Can't run Zenko UI as service as we're unable to attach
# volumes that are located inside the repository
- name: Run Zenko UI
run: >
docker run -d -p 8383:8383
-v $(pwd)/.github/configs/ui-test-config-shell.json:/usr/share/nginx/html/config-shell.json
-v $(pwd)/.github/configs/ui-test-config.json:/usr/share/nginx/html/config.json
-v $(pwd)/conf/zenko-ui-nginx.conf:/etc/nginx/conf.d/default.conf
ghcr.io/${{ github.repository }}/zenko-ui:${{ github.sha }}
- name: Wait for all services to start
run: |
bash wait_for_local_port.bash 8082 40
bash wait_for_local_port.bash 8080 40
bash wait_for_local_port.bash 8383 40
- name: Run end-to-end tests
run: npm run cypress:run
env:
CYPRESS_KEYCLOAK_USER_FULLNAME: '${{ env.KEYCLOAK_USER_FIRSTNAME }} ${{ env.KEYCLOAK_USER_LASTNAME }}'
CYPRESS_KEYCLOAK_USERNAME: '${{ env.KEYCLOAK_USERNAME }}'
CYPRESS_KEYCLOAK_PASSWORD: '${{ env.KEYCLOAK_PASSWORD }}'
CYPRESS_KEYCLOAK_ROOT: '${{ env.KEYCLOAK_ROOT }}'
CYPRESS_KEYCLOAK_CLIENT_ID: '${{ env.KEYCLOAK_CLIENT_ID }}'
CYPRESS_KEYCLOAK_REALM: '${{ env.KEYCLOAK_REALM }}'
- name: code coverage
uses: codecov/[email protected]
- name: Dump container logs
run: |
docker logs ${{ job.services.keycloak.id }}
docker logs ${{ job.services.shell-ui.id }}
if: always()