# Licensed to the Apache Software Foundation (ASF) under one or more contributor
# license agreements; and to You under the Apache License, Version 2.0.

# Test manifest for incubator-openwhisk-wskdeploy utility
# See https://github.com/apache/incubator-openwhisk-wskdeploy/tree/master/tests/src/integration/dependency
project:
    name: HelloWhisk
    packages:
        hellowhisk:
            actions:
                greeting:
                    function: src/greeting.js
                httpGet:
                    function: src/httpGet.swift
