Night #238
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
# 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() |