Skip to content

Night

Night #199

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 can be executed
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
###################################################
#
# 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
concurrency: xopera-pruning-static
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
concurrency: xopera-pruning-elastic
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
concurrency: xopera-pruning-static
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
concurrency: xopera-pruning-elastic
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
#
###################################################
unfurl-artifacts-community:
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
#
###################################################
unfurl-aware-local:
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()