Skip to content

Night

Night #238

Workflow file for this run

# GitHub runner does not support IPv6.
# See https://github.com/actions/runner-images/issues/668
# We dot not introduce one big "vintner-case-study" action due to better logging.defaults:
# See https://github.com/orgs/community/discussions/21276
name: Night
on:
workflow_dispatch:
schedule:
- cron: '20 4 * * 2'
push:
branches:
- fix-night-workflow
concurrency: night
jobs:
###################################################
#
# General
#
###################################################
general:
name: General
runs-on: ubuntu-22.04
steps:
###################################################
#
# Prepare
#
###################################################
- name: (PREPARE) Checkout repository
uses: actions/checkout@v3
with:
lfs: true
- name: (PREPARE) Install Vintner
uses: ./.github/actions/vintner-install
with:
gcp_service_account_file: ${{ secrets.GCP_SERVICE_ACCOUNT_FILE }}
os_ssh_key_file: ${{ secrets.OS_SSH_KEY_FILE }}
os_application_credential_id: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }}
os_application_credential_secret: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}
###################################################
#
# Binary
#
###################################################
- name: (BINARY) Verify checksum
run: |
wget https://github.com/opentosca/opentosca-vintner/releases/download/latest/vintner-linux-x64.sha256
cp /usr/bin/vintner vintner-linux-x64
sha256sum --check vintner-linux-x64.sha256
rm vintner-linux-x64
rm vintner-linux-x64.sha256
- name: (BINARY) Verify signature
run: |
curl https://vintner.opentosca.org/vintner-release.gpg | gpg --import
wget https://github.com/opentosca/opentosca-vintner/releases/download/latest/vintner-linux-x64.asc
cp /usr/bin/vintner vintner-linux-x64
gpg --verify vintner-linux-x64.asc
rm vintner-linux-x64.asc
- name: (BINARY) Ensure that version is overridden
run: |
vintner --version
if [ "$(vintner --version)" == "__VERSION__" ]; then
exit 1
fi
- name: (BINARY) Ensure that license is overridden
run: |
vintner info license
if [ "$(vintner info license)" == "$(cat src/assets/LICENSE)" ]; then
exit 1
fi
- name: (BINARY) Ensure that dependencies are overridden
run: |
vintner info dependencies
if [ "$(vintner info dependencies)" == "$(cat src/assets/dependencies.csv)" ]; then
exit 1
fi
- name: (BINARY) Test filesystem initialization
run: vintner setup init
- name: (BINARY) Test resolver
run: vintner setup benchmark --seeds 10 250
###################################################
#
# Docker
#
###################################################
- name: (DOCKER) Start Docker container
run: |
docker run --detach --name vintner ghcr.io/opentosca/opentosca-vintner:latest
sleep 2
docker logs vintner
- name: (DOCKER) Ensure Vintner can be executed
run: docker exec vintner vintner --version
- name: (DOCKER) Ensure Vintner version in Docker container and binary match
run: |
DOCKER_VERSION=$(docker exec vintner vintner --version)
echo "Docker version: $DOCKER_VERSION}"
BINARY_VERSION=$(vintner --version)
echo "Binary version: ${BINARY_VERSION}"
if [ ${DOCKER_VERSION} != ${BINARY_VERSION} ]; then
echo "Versions do not match"
exit 1
fi
- name: (DOCKER) Stop Docker container
run: docker kill vintner
###################################################
#
# NPM
#
###################################################
- name: (NPM) Uninstall Vintner
run: sudo rm -f $(which vintner)
- name: (NPM) Install Vintner using NPM
run: npm install --global opentosca-vintner
- name: (NPM) Test Vintner
run: vintner --version
###################################################
#
# xOpera Motivation Development
#
###################################################
xopera-motivation-dev:
name: xOpera Motivation Dev
runs-on: ubuntu-22.04
env:
ORCHESTRATOR: xopera
EXAMPLE: xopera-motivation
PRESET: dev
ENV: OS
PORT: 80
steps:
- name: (PREPARE) Checkout repository
uses: actions/checkout@v3
with:
lfs: true
- name: (PREPARE) Install Vintner
uses: ./.github/actions/vintner-install
with:
gcp_service_account_file: ${{ secrets.GCP_SERVICE_ACCOUNT_FILE }}
os_ssh_key_file: ${{ secrets.OS_SSH_KEY_FILE }}
os_application_credential_id: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }}
os_application_credential_secret: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}
- name: (VINTNER) Configure setup
uses: ./.github/actions/vintner-setup
with:
orchestrator: ${{ env.ORCHESTRATOR }}
- name: (VINTNER) Resolve variability
uses: ./.github/actions/vintner-resolve
with:
example: ${{ env.EXAMPLE }}
preset: ${{ env.PRESET }}
- name: (VINTNER) Assign deployment inputs
run: |
cat << EOF > /tmp/deployment-inputs.yaml
os_application_credential_id: ${OS_APPLICATION_CREDENTIAL_ID}
os_application_credential_secret: ${OS_APPLICATION_CREDENTIAL_SECRET}
os_ssh_key_file: /tmp/os-ssh-key-file
EOF
env:
OS_APPLICATION_CREDENTIAL_ID: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }}
OS_APPLICATION_CREDENTIAL_SECRET: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}
- name: (VINTNER) Validate application
uses: ./.github/actions/vintner-validate
- name: (VINTNER) Deploy application
uses: ./.github/actions/vintner-deploy
- name: (VINTNER) Test application
uses: ./.github/actions/vintner-test
with:
example: ${{ env.EXAMPLE }}
env: ${{ env.ENV }}
port: ${{ env.PORT }}
- name: (VINTNER) Undeploy application
uses: ./.github/actions/vintner-undeploy
if: always()
###################################################
#
# xOpera Motivation Production
#
###################################################
xopera-motivation-prod:
name: xOpera Motivation Prod
runs-on: ubuntu-22.04
env:
ORCHESTRATOR: xopera
EXAMPLE: xopera-motivation
PRESET: prod
ENV: GCP
PORT: 80
steps:
- name: (PREPARE) Checkout repository
uses: actions/checkout@v3
with:
lfs: true
- name: (PREPARE) Install Vintner
uses: ./.github/actions/vintner-install
with:
gcp_service_account_file: ${{ secrets.GCP_SERVICE_ACCOUNT_FILE }}
os_ssh_key_file: ${{ secrets.OS_SSH_KEY_FILE }}
os_application_credential_id: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }}
os_application_credential_secret: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}
- name: (VINTNER) Configure setup
uses: ./.github/actions/vintner-setup
with:
orchestrator: ${{ env.ORCHESTRATOR }}
- name: (VINTNER) Resolve variability
uses: ./.github/actions/vintner-resolve
with:
example: ${{ env.EXAMPLE }}
preset: ${{ env.PRESET }}
- name: (VINTNER) Assign deployment inputs
run: |
cat << EOF > /tmp/deployment-inputs.yaml
gcp_service_account_file: /tmp/gcp-service-account-file.json
EOF
- name: (VINTNER) Validate application
uses: ./.github/actions/vintner-validate
- name: (VINTNER) Deploy application
uses: ./.github/actions/vintner-deploy
- name: (VINTNER) Test application
uses: ./.github/actions/vintner-test
with:
example: ${{ env.EXAMPLE }}
env: ${{ env.ENV }}
port: ${{ env.PORT }}
- name: (VINTNER) Undeploy application
uses: ./.github/actions/vintner-undeploy
if: always()
###################################################
#
# Unfurl Motivation Development
#
###################################################
unfurl-motivation-dev:
name: Unfurl Motivation Dev
runs-on: ubuntu-22.04
env:
ORCHESTRATOR: unfurl
EXAMPLE: unfurl-motivation
PRESET: dev
ENV: OS
PORT: 80
steps:
- name: (PREPARE) Checkout repository
uses: actions/checkout@v3
with:
lfs: true
- name: (PREPARE) Install Vintner
uses: ./.github/actions/vintner-install
with:
gcp_service_account_file: ${{ secrets.GCP_SERVICE_ACCOUNT_FILE }}
os_ssh_key_file: ${{ secrets.OS_SSH_KEY_FILE }}
os_application_credential_id: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }}
os_application_credential_secret: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}
- name: (VINTNER) Configure setup
uses: ./.github/actions/vintner-setup
with:
orchestrator: ${{ env.ORCHESTRATOR }}
- name: (VINTNER) Resolve variability
uses: ./.github/actions/vintner-resolve
with:
example: ${{ env.EXAMPLE }}
preset: ${{ env.PRESET }}
- name: (VINTNER) Assign deployment inputs
run: |
cat << EOF > /tmp/deployment-inputs.yaml
os_application_credential_id: ${OS_APPLICATION_CREDENTIAL_ID}
os_application_credential_secret: ${OS_APPLICATION_CREDENTIAL_SECRET}
os_ssh_key_file: /tmp/os-ssh-key-file
EOF
env:
OS_APPLICATION_CREDENTIAL_ID: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }}
OS_APPLICATION_CREDENTIAL_SECRET: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}
- name: (VINTNER) Validate application
uses: ./.github/actions/vintner-validate
- name: (VINTNER) Deploy application
uses: ./.github/actions/vintner-deploy
- name: (VINTNER) Test application
uses: ./.github/actions/vintner-test
with:
example: ${{ env.EXAMPLE }}
env: ${{ env.ENV }}
port: ${{ env.PORT }}
- name: (VINTNER) Undeploy application
uses: ./.github/actions/vintner-undeploy
if: always()
###################################################
#
# Unfurl Motivation Production
#
###################################################
unfurl-motivation-prod:
name: Unfurl Motivation Prod
runs-on: ubuntu-22.04
env:
ORCHESTRATOR: unfurl
EXAMPLE: unfurl-motivation
PRESET: prod
ENV: GCP
PORT: 80
steps:
- name: (PREPARE) Checkout repository
uses: actions/checkout@v3
with:
lfs: true
- name: (PREPARE) Install Vintner
uses: ./.github/actions/vintner-install
with:
gcp_service_account_file: ${{ secrets.GCP_SERVICE_ACCOUNT_FILE }}
os_ssh_key_file: ${{ secrets.OS_SSH_KEY_FILE }}
os_application_credential_id: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }}
os_application_credential_secret: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}
- name: (VINTNER) Configure setup
uses: ./.github/actions/vintner-setup
with:
orchestrator: ${{ env.ORCHESTRATOR }}
- name: (VINTNER) Resolve variability
uses: ./.github/actions/vintner-resolve
with:
example: ${{ env.EXAMPLE }}
preset: ${{ env.PRESET }}
- name: (VINTNER) Assign deployment inputs
run: |
cat << EOF > /tmp/deployment-inputs.yaml
gcp_service_account_file: /tmp/gcp-service-account-file.json
os_application_credential_secret: dummy
EOF
- name: (VINTNER) Validate application
uses: ./.github/actions/vintner-validate
- name: (VINTNER) Deploy application
uses: ./.github/actions/vintner-deploy
- name: (VINTNER) Test application
uses: ./.github/actions/vintner-test
with:
example: ${{ env.EXAMPLE }}
env: ${{ env.ENV }}
port: ${{ env.PORT }}
- name: (VINTNER) Undeploy application
uses: ./.github/actions/vintner-undeploy
if: always()
###################################################
#
# xOpera Pruning Static
#
###################################################
xopera-pruning-static:
name: xOpera Pruning Static
runs-on: ubuntu-22.04
env:
ORCHESTRATOR: xopera
EXAMPLE: xopera-pruning
PRESET: static
ENV: OS
PORT: 3000
steps:
- name: (PREPARE) Checkout repository
uses: actions/checkout@v3
with:
lfs: true
- name: (PREPARE) Install Vintner
uses: ./.github/actions/vintner-install
with:
gcp_service_account_file: ${{ secrets.GCP_SERVICE_ACCOUNT_FILE }}
os_ssh_key_file: ${{ secrets.OS_SSH_KEY_FILE }}
os_application_credential_id: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }}
os_application_credential_secret: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}
- name: (VINTNER) Configure setup
uses: ./.github/actions/vintner-setup
with:
orchestrator: ${{ env.ORCHESTRATOR }}
- name: (VINTNER) Resolve variability
uses: ./.github/actions/vintner-resolve
with:
example: ${{ env.EXAMPLE }}
preset: ${{ env.PRESET }}
- name: (VINTNER) Assign deployment inputs
run: |
cat << EOF > /tmp/deployment-inputs.yaml
os_application_credential_id: ${OS_APPLICATION_CREDENTIAL_ID}
os_application_credential_secret: ${OS_APPLICATION_CREDENTIAL_SECRET}
os_ssh_key_file: /tmp/os-ssh-key-file
EOF
env:
OS_APPLICATION_CREDENTIAL_ID: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }}
OS_APPLICATION_CREDENTIAL_SECRET: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}
- name: (VINTNER) Validate application
uses: ./.github/actions/vintner-validate
- name: (VINTNER) Deploy application
uses: ./.github/actions/vintner-deploy
- name: (VINTNER) Test application
uses: ./.github/actions/vintner-test
with:
example: ${{ env.EXAMPLE }}
env: ${{ env.ENV }}
port: ${{ env.PORT }}
- name: (VINTNER) Undeploy application
uses: ./.github/actions/vintner-undeploy
if: always()
###################################################
#
# xOpera Pruning Elastic
#
###################################################
xopera-pruning-elastic:
name: xOpera Pruning Elastic
runs-on: ubuntu-22.04
env:
ORCHESTRATOR: xopera
EXAMPLE: xopera-pruning
PRESET: elastic
ENV: GCP
PORT: 80
steps:
- name: (PREPARE) Checkout repository
uses: actions/checkout@v3
with:
lfs: true
- name: (PREPARE) Install Vintner
uses: ./.github/actions/vintner-install
with:
gcp_service_account_file: ${{ secrets.GCP_SERVICE_ACCOUNT_FILE }}
os_ssh_key_file: ${{ secrets.OS_SSH_KEY_FILE }}
os_application_credential_id: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }}
os_application_credential_secret: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}
- name: (VINTNER) Configure setup
uses: ./.github/actions/vintner-setup
with:
orchestrator: ${{ env.ORCHESTRATOR }}
- name: (VINTNER) Resolve variability
uses: ./.github/actions/vintner-resolve
with:
example: ${{ env.EXAMPLE }}
preset: ${{ env.PRESET }}
- name: (VINTNER) Assign deployment inputs
run: |
cat << EOF > /tmp/deployment-inputs.yaml
gcp_service_account_file: /tmp/gcp-service-account-file.json
EOF
- name: (VINTNER) Validate application
uses: ./.github/actions/vintner-validate
- name: (VINTNER) Deploy application
uses: ./.github/actions/vintner-deploy
- name: (VINTNER) Test application
uses: ./.github/actions/vintner-test
with:
example: ${{ env.EXAMPLE }}
env: ${{ env.ENV }}
port: ${{ env.PORT }}
- name: (VINTNER) Undeploy application
uses: ./.github/actions/vintner-undeploy
if: always()
###################################################
#
# xOpera Pruning Mode Static
#
###################################################
xopera-pruning-mode-static:
name: xOpera Pruning Mode "Consistent Loose" Static
runs-on: ubuntu-22.04
needs: xopera-pruning-static
if: ${{ !cancelled() }}
env:
ORCHESTRATOR: xopera
EXAMPLE: xopera-pruning-consistent-loose
PRESET: static
ENV: OS
PORT: 3000
steps:
- name: (PREPARE) Checkout repository
uses: actions/checkout@v3
with:
lfs: true
- name: (PREPARE) Configure environment
uses: ./.github/actions/vintner-install
with:
gcp_service_account_file: ${{ secrets.GCP_SERVICE_ACCOUNT_FILE }}
os_ssh_key_file: ${{ secrets.OS_SSH_KEY_FILE }}
os_application_credential_id: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }}
os_application_credential_secret: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}
- name: (VINTNER) Configure setup
uses: ./.github/actions/vintner-setup
with:
orchestrator: ${{ env.ORCHESTRATOR }}
- name: (VINTNER) Resolve variability
uses: ./.github/actions/vintner-resolve
with:
example: ${{ env.EXAMPLE }}
preset: ${{ env.PRESET }}
- name: (VINTNER) Assign deployment inputs
run: |
cat << EOF > /tmp/deployment-inputs.yaml
os_application_credential_id: ${OS_APPLICATION_CREDENTIAL_ID}
os_application_credential_secret: ${OS_APPLICATION_CREDENTIAL_SECRET}
os_ssh_key_file: /tmp/os-ssh-key-file
EOF
env:
OS_APPLICATION_CREDENTIAL_ID: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }}
OS_APPLICATION_CREDENTIAL_SECRET: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}
- name: (VINTNER) Validate application
uses: ./.github/actions/vintner-validate
- name: (VINTNER) Deploy application
uses: ./.github/actions/vintner-deploy
- name: (VINTNER) Test application
uses: ./.github/actions/vintner-test
with:
example: xopera-pruning
env: ${{ env.ENV }}
port: ${{ env.PORT }}
- name: (VINTNER) Undeploy application
uses: ./.github/actions/vintner-undeploy
if: always()
###################################################
#
# xOpera Pruning Mode Elastic
#
###################################################
xopera-pruning-mode-elastic:
name: xOpera Pruning Mode "Consistent Loose" Elastic
runs-on: ubuntu-22.04
needs: xopera-pruning-elastic
if: ${{ !cancelled() }}
env:
ORCHESTRATOR: xopera
EXAMPLE: xopera-pruning-consistent-loose
PRESET: elastic
ENV: GCP
PORT: 80
steps:
- name: (PREPARE) Checkout repository
uses: actions/checkout@v3
with:
lfs: true
- name: (PREPARE) Install Vintner
uses: ./.github/actions/vintner-install
with:
gcp_service_account_file: ${{ secrets.GCP_SERVICE_ACCOUNT_FILE }}
os_ssh_key_file: ${{ secrets.OS_SSH_KEY_FILE }}
os_application_credential_id: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }}
os_application_credential_secret: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}
- name: (VINTNER) Configure setup
uses: ./.github/actions/vintner-setup
with:
orchestrator: ${{ env.ORCHESTRATOR }}
- name: (VINTNER) Resolve variability
uses: ./.github/actions/vintner-resolve
with:
example: ${{ env.EXAMPLE }}
preset: ${{ env.PRESET }}
- name: (VINTNER) Assign deployment inputs
run: |
cat << EOF > /tmp/deployment-inputs.yaml
gcp_service_account_file: /tmp/gcp-service-account-file.json
EOF
- name: (VINTNER) Validate application
uses: ./.github/actions/vintner-validate
- name: (VINTNER) Deploy application
uses: ./.github/actions/vintner-deploy
- name: (VINTNER) Test application
uses: ./.github/actions/vintner-test
with:
example: xopera-pruning
env: ${{ env.ENV }}
port: ${{ env.PORT }}
- name: (VINTNER) Undeploy application
uses: ./.github/actions/vintner-undeploy
if: always()
###################################################
#
# Unfurl Artifacts Community
#
###################################################
# Disabled for now. Out of nowhere, github workflow cant deploy the application (works on my machine)
unfurl-artifacts-community:
if: false
name: Unfurl Artifacts Community
runs-on: ubuntu-22.04
env:
ORCHESTRATOR: unfurl
EXAMPLE: unfurl-artifacts
PRESET: community
ENV: OS
PORT: 3000
steps:
- name: (PREPARE) Checkout repository
uses: actions/checkout@v3
with:
lfs: true
- name: (PREPARE) Install Vintner
uses: ./.github/actions/vintner-install
with:
gcp_service_account_file: ${{ secrets.GCP_SERVICE_ACCOUNT_FILE }}
os_ssh_key_file: ${{ secrets.OS_SSH_KEY_FILE }}
os_application_credential_id: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }}
os_application_credential_secret: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}
- name: (VINTNER) Configure setup
uses: ./.github/actions/vintner-setup
with:
orchestrator: ${{ env.ORCHESTRATOR }}
- name: (VINTNER) Resolve variability
uses: ./.github/actions/vintner-resolve
with:
example: ${{ env.EXAMPLE }}
preset: ${{ env.PRESET }}
- name: (VINTNER) Assign deployment inputs
run: |
cat << EOF > /tmp/deployment-inputs.yaml
os_application_credential_id: ${OS_APPLICATION_CREDENTIAL_ID}
os_application_credential_secret: ${OS_APPLICATION_CREDENTIAL_SECRET}
os_ssh_key_file: /tmp/os-ssh-key-file
EOF
env:
OS_APPLICATION_CREDENTIAL_ID: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }}
OS_APPLICATION_CREDENTIAL_SECRET: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}
- name: (VINTNER) Validate application
uses: ./.github/actions/vintner-validate
- name: (VINTNER) Deploy application
uses: ./.github/actions/vintner-deploy
- name: (VINTNER) Test application
uses: ./.github/actions/vintner-test
with:
example: ${{ env.EXAMPLE }}
env: ${{ env.ENV }}
port: ${{ env.PORT }}
- name: (VINTNER) Undeploy application
uses: ./.github/actions/vintner-undeploy
if: always()
###################################################
#
# Unfurl Artifacts Enterprise
#
###################################################
unfurl-artifacts-enterprise:
name: Unfurl Artifacts Enterprise
runs-on: ubuntu-22.04
env:
ORCHESTRATOR: unfurl
EXAMPLE: unfurl-artifacts
PRESET: enterprise
ENV: GCP
PORT: 80
steps:
- name: (PREPARE) Checkout repository
uses: actions/checkout@v3
with:
lfs: true
- name: (PREPARE) Install Vintner
uses: ./.github/actions/vintner-install
with:
gcp_service_account_file: ${{ secrets.GCP_SERVICE_ACCOUNT_FILE }}
os_ssh_key_file: ${{ secrets.OS_SSH_KEY_FILE }}
os_application_credential_id: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }}
os_application_credential_secret: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}
- name: (VINTNER) Configure setup
uses: ./.github/actions/vintner-setup
with:
orchestrator: ${{ env.ORCHESTRATOR }}
- name: (VINTNER) Resolve variability
uses: ./.github/actions/vintner-resolve
with:
example: ${{ env.EXAMPLE }}
preset: ${{ env.PRESET }}
- name: (VINTNER) Assign deployment inputs
run: |
cat << EOF > /tmp/deployment-inputs.yaml
gcp_service_account_file: /tmp/gcp-service-account-file.json
EOF
- name: (VINTNER) Validate application
uses: ./.github/actions/vintner-validate
- name: (VINTNER) Deploy application
uses: ./.github/actions/vintner-deploy
- name: (VINTNER) Test application
uses: ./.github/actions/vintner-test
with:
example: ${{ env.EXAMPLE }}
env: ${{ env.ENV }}
port: ${{ env.PORT }}
- name: (VINTNER) Undeploy application
uses: ./.github/actions/vintner-undeploy
if: always()
###################################################
#
# Unfurl Aware Local
#
###################################################
# Disabled for now. Out of nowhere, github workflow cant deploy the application (works on my machine)
unfurl-aware-local:
if: false
name: Unfurl Aware Local
runs-on: ubuntu-22.04
env:
ORCHESTRATOR: unfurl
EXAMPLE: unfurl-aware
PRESET: local
ENV: OS
PORT: 80
steps:
- name: (PREPARE) Checkout repository
uses: actions/checkout@v3
with:
lfs: true
- name: (PREPARE) Install Vintner
uses: ./.github/actions/vintner-install
with:
gcp_service_account_file: ${{ secrets.GCP_SERVICE_ACCOUNT_FILE }}
os_ssh_key_file: ${{ secrets.OS_SSH_KEY_FILE }}
os_application_credential_id: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }}
os_application_credential_secret: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}
- name: (VINTNER) Configure setup
uses: ./.github/actions/vintner-setup
with:
orchestrator: ${{ env.ORCHESTRATOR }}
- name: (VINTNER) Resolve variability
uses: ./.github/actions/vintner-resolve
with:
example: ${{ env.EXAMPLE }}
preset: ${{ env.PRESET }}
- name: (VINTNER) Assign deployment inputs
run: |
cat << EOF > /tmp/deployment-inputs.yaml
os_application_credential_id: ${OS_APPLICATION_CREDENTIAL_ID}
os_application_credential_secret: ${OS_APPLICATION_CREDENTIAL_SECRET}
os_ssh_key_file: /tmp/os-ssh-key-file
EOF
env:
OS_APPLICATION_CREDENTIAL_ID: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }}
OS_APPLICATION_CREDENTIAL_SECRET: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}
- name: (VINTNER) Validate application
uses: ./.github/actions/vintner-validate
- name: (VINTNER) Deploy application
uses: ./.github/actions/vintner-deploy
- name: (VINTNER) Test application
uses: ./.github/actions/vintner-test
with:
example: ${{ env.EXAMPLE }}
env: ${{ env.ENV }}
port: ${{ env.PORT }}
- name: (VINTNER) Undeploy application
uses: ./.github/actions/vintner-undeploy
if: always()
###################################################
#
# Unfurl Aware Cloud
#
###################################################
unfurl-aware-cloud:
name: Unfurl Aware Cloud
runs-on: ubuntu-22.04
env:
ORCHESTRATOR: unfurl
EXAMPLE: unfurl-aware
PRESET: cloud
ENV: GCP
PORT: 80
steps:
- name: (PREPARE) Checkout repository
uses: actions/checkout@v3
with:
lfs: true
- name: (PREPARE) Install Vintner
uses: ./.github/actions/vintner-install
with:
gcp_service_account_file: ${{ secrets.GCP_SERVICE_ACCOUNT_FILE }}
os_ssh_key_file: ${{ secrets.OS_SSH_KEY_FILE }}
os_application_credential_id: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }}
os_application_credential_secret: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}
- name: (VINTNER) Configure setup
uses: ./.github/actions/vintner-setup
with:
orchestrator: ${{ env.ORCHESTRATOR }}
- name: (VINTNER) Resolve variability
uses: ./.github/actions/vintner-resolve
with:
example: ${{ env.EXAMPLE }}
preset: ${{ env.PRESET }}
- name: (VINTNER) Assign deployment inputs
run: |
cat << EOF > /tmp/deployment-inputs.yaml
os_application_credential_id: ${OS_APPLICATION_CREDENTIAL_ID}
os_application_credential_secret: ${OS_APPLICATION_CREDENTIAL_SECRET}
gcp_service_account_file: /tmp/gcp-service-account-file.json
EOF
- name: (VINTNER) Validate application
uses: ./.github/actions/vintner-validate
- name: (VINTNER) Deploy application
uses: ./.github/actions/vintner-deploy
- name: (VINTNER) Test application
uses: ./.github/actions/vintner-test
with:
example: ${{ env.EXAMPLE }}
env: ${{ env.ENV }}
port: ${{ env.PORT }}
- name: (VINTNER) Undeploy application
uses: ./.github/actions/vintner-undeploy
if: always()
###################################################
#
# Unfurl Technology Kubernetes
#
###################################################
unfurl-technology-kubernetes:
name: Unfurl Technology Kubernetes
runs-on: ubuntu-22.04
env:
ORCHESTRATOR: unfurl
EXAMPLE: unfurl-technology---shop---plus-maintenance-automated
EXAMPLE_OVERRIDE: unfurl-technology-shop-external
STUDY: technology
ENV: K8S
PORT: 80
steps:
###################################################
#
# Prepare
#
###################################################
- name: (PREPARE) Checkout repository
uses: actions/checkout@v3
with:
lfs: true
- name: (PREPARE) Start minikube
uses: medyagh/setup-minikube@v0.0.15
- name: (PREPARE) Test kubectl
run: kubectl get pods
- name: (PREPARE) Cat kubeconfig
run: cat ~/.kube/config
- name: (PREPARE) Install Vintner
uses: ./.github/actions/vintner-install
with:
gcp_service_account_file: ${{ secrets.GCP_SERVICE_ACCOUNT_FILE }}
os_ssh_key_file: ${{ secrets.OS_SSH_KEY_FILE }}
os_application_credential_id: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }}
os_application_credential_secret: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}
- name: (VINTNER) Configure setup
uses: ./.github/actions/vintner-setup
with:
orchestrator: ${{ env.ORCHESTRATOR }}
- name: (VINTNER) Conduct study
uses: ./.github/actions/vintner-study
with:
example: ${{ env.EXAMPLE }}
study: ${{ env.STUDY }}
- name: (VINTNER) Assign variability inputs
run: |
cat << EOF > /tmp/variability-inputs.yaml
env: KUBERNETES
tier: LARGE
optional_feature: true
premium_feature: true
EOF
- name: (VINTNER) Resolve variability
uses: ./.github/actions/vintner-resolve
with:
example: ${{ env.EXAMPLE }}
- name: (VINTNER) Assign deployment inputs
run: |
cat << EOF > /tmp/deployment-inputs.yaml
database_password: ${DB_PASSWORD}
dbms_password: ${DB_PASSWORD}
k8s_host: https://$(minikube ip):8443
k8s_ca_cert_file: /home/runner/.minikube/ca.crt
k8s_client_cert_file: /home/runner/.minikube/profiles/minikube/client.crt
k8s_client_key_file: /home/runner/.minikube/profiles/minikube/client.key
EOF
env:
DB_PASSWORD: ${{ secrets.DB_PASSWORD }}
- name: (VINTNER) Validate application
uses: ./.github/actions/vintner-validate
- name: (VINTNER) Deploy application
uses: ./.github/actions/vintner-deploy
- name: (VINTNER) Test application
uses: ./.github/actions/vintner-test
with:
env: ${{ env.ENV }}
example: ${{ env.EXAMPLE_OVERRIDE }}
port: ${{ env.PORT }}
- name: (VINTNER) Undeploy application
uses: ./.github/actions/vintner-undeploy
if: always()
###################################################
#
# Unfurl Technology Elastic
#
###################################################
unfurl-technology-elastic:
name: Unfurl Technology Elastic
runs-on: ubuntu-22.04
env:
ORCHESTRATOR: unfurl
EXAMPLE: unfurl-technology---shop---plus-maintenance-automated
EXAMPLE_OVERRIDE: unfurl-technology-shop
ENV: GCP
PORT: 80
steps:
###################################################
#
# Prepare
#
###################################################
- name: (PREPARE) Checkout repository
uses: actions/checkout@v3
with:
lfs: true
- name: (PREPARE) Install Vintner
uses: ./.github/actions/vintner-install
with:
gcp_service_account_file: ${{ secrets.GCP_SERVICE_ACCOUNT_FILE }}
os_ssh_key_file: ${{ secrets.OS_SSH_KEY_FILE }}
os_application_credential_id: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }}
os_application_credential_secret: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}
- name: (VINTNER) Configure setup
uses: ./.github/actions/vintner-setup
with:
orchestrator: ${{ env.ORCHESTRATOR }}
- name: (VINTNER) Assign variability inputs
run: |
cat << EOF > /tmp/variability-inputs.yaml
env: ELASTIC
tier: LARGE
optional_feature: true
premium_feature: true
EOF
- name: (VINTNER) Resolve variability
uses: ./.github/actions/vintner-resolve
with:
example: ${{ env.EXAMPLE }}
- name: (VINTNER) Assign deployment inputs
run: |
cat << EOF > /tmp/deployment-inputs.yaml
database_password: ${DB_PASSWORD}
dbms_password: ${DB_PASSWORD}
gcp_region: ${GCP_REGION}
gcp_service_account_file: /tmp/gcp-service-account-file.json
gcp_project: ${GCP_PROJECT}
EOF
env:
DB_PASSWORD: ${{ secrets.DB_PASSWORD }}
GCP_REGION: ${{ secrets.GCP_REGION }}
GCP_PROJECT: ${{ secrets.GCP_PROJECT }}
- name: (VINTNER) Validate application
uses: ./.github/actions/vintner-validate
- name: (VINTNER) Deploy application
uses: ./.github/actions/vintner-deploy
- name: (VINTNER) Test application
uses: ./.github/actions/vintner-test
with:
example: ${{ env.EXAMPLE_OVERRIDE }}
env: ${{ env.ENV }}
port: ${{ env.PORT }}
- name: (VINTNER) Undeploy application
uses: ./.github/actions/vintner-undeploy
if: always()
###################################################
#
# Unfurl Technology Static
#
###################################################
unfurl-technology-static:
name: Unfurl Technology Static
runs-on: ubuntu-22.04
needs: unfurl-motivation-dev
if: ${{ !cancelled() }}
env:
ORCHESTRATOR: unfurl
EXAMPLE: unfurl-technology---shop---plus-maintenance-automated
EXAMPLE_OVERRIDE: unfurl-technology-shop-vm
STUDY: technology
ENV: OS
PORT: 80
steps:
###################################################
#
# Prepare
#
###################################################
- name: (PREPARE) Checkout repository
uses: actions/checkout@v3
with:
lfs: true
- name: (PREPARE) Install Vintner
uses: ./.github/actions/vintner-install
with:
gcp_service_account_file: ${{ secrets.GCP_SERVICE_ACCOUNT_FILE }}
os_ssh_key_file: ${{ secrets.OS_SSH_KEY_FILE }}
os_application_credential_id: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }}
os_application_credential_secret: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}
- name: (VINTNER) Configure setup
uses: ./.github/actions/vintner-setup
with:
orchestrator: ${{ env.ORCHESTRATOR }}
- name: (VINTNER) Conduct study
uses: ./.github/actions/vintner-study
with:
example: ${{ env.EXAMPLE }}
study: ${{ env.STUDY }}
- name: (VINTNER) Assign variability inputs
run: |
cat << EOF > /tmp/variability-inputs.yaml
env: STATIC
tier: MEDIUM
optional_feature: true
premium_feature: true
EOF
- name: (VINTNER) Resolve variability
uses: ./.github/actions/vintner-resolve
with:
example: ${{ env.EXAMPLE }}
- name: (VINTNER) Assign deployment inputs
run: |
cat << EOF > /tmp/deployment-inputs.yaml
database_password: ${DB_PASSWORD}
dbms_password: ${DB_PASSWORD}
os_network: ${OS_NETWORK}
os_ssh_key_name: ${OS_SSH_KEY_NAME}
os_ssh_user: ${OS_SSH_USER}
os_ssh_key_file: /tmp/os-ssh-key-file
os_region_name: ${OS_REGION_NAME}
os_auth_type: ${OS_AUTH_TYPE}
os_auth_url: ${OS_AUTH_URL}
os_identity_api_version: '${OS_IDENTITY_API_VERSION}'
os_interface: ${OS_INTERFACE}
os_application_credential_id: ${OS_APPLICATION_CREDENTIAL_ID}
os_application_credential_secret: ${OS_APPLICATION_CREDENTIAL_SECRET}
EOF
env:
DB_PASSWORD: ${{ secrets.DB_PASSWORD }}
DBMS_PASSWORD: ${{ secrets.DB_PASSWORD }}
OS_NETWORK: ${{ secrets.OS_NETWORK }}
OS_SSH_KEY_NAME: ${{ secrets.OS_SSH_KEY_NAME }}
OS_SSH_USER: ${{ secrets.OS_SSH_USER }}
OS_REGION_NAME: ${{ secrets.OS_REGION_NAME }}
OS_AUTH_TYPE: ${{ secrets.OS_AUTH_TYPE }}
OS_AUTH_URL: ${{ secrets.OS_AUTH_URL }}
OS_IDENTITY_API_VERSION: ${{ secrets.OS_IDENTITY_API_VERSION }}
OS_INTERFACE: ${{ secrets.OS_INTERFACE }}
OS_APPLICATION_CREDENTIAL_ID: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }}
OS_APPLICATION_CREDENTIAL_SECRET: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}
- name: (VINTNER) Validate application
uses: ./.github/actions/vintner-validate
- name: (VINTNER) Deploy application
uses: ./.github/actions/vintner-deploy
- name: (VINTNER) Test application
uses: ./.github/actions/vintner-test
with:
example: ${{ env.EXAMPLE_OVERRIDE }}
env: ${{ env.ENV }}
port: ${{ env.PORT }}
- name: (VINTNER) Undeploy application
uses: ./.github/actions/vintner-undeploy
if: always()