Skip to content

Commit

Permalink
feat!: initial library generation (#8)
Browse files Browse the repository at this point in the history
  • Loading branch information
bcoe authored and Ace Nassri committed Nov 10, 2022
1 parent f03f09a commit c6b78a3
Show file tree
Hide file tree
Showing 6 changed files with 248 additions and 0 deletions.
68 changes: 68 additions & 0 deletions workflows/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
[//]: # "This README.md file is auto-generated, all changes to this file will be lost."
[//]: # "To regenerate it, use `python -m synthtool`."
<img src="https://avatars2.githubusercontent.com/u/2810941?v=3&s=96" alt="Google Cloud Platform logo" title="Google Cloud Platform" align="right" height="96" width="96"/>

# [Workflows: Node.js Samples](https://github.com/googleapis/nodejs-workflows)

[![Open in Cloud Shell][shell_img]][shell_link]



## Table of Contents

* [Before you begin](#before-you-begin)
* [Samples](#samples)
* [Create-execution](#create-execution)
* [Quickstart](#quickstart)

## Before you begin

Before running the samples, make sure you've followed the steps outlined in
[Using the client library](https://github.com/googleapis/nodejs-workflows#using-the-client-library).

`cd samples`

`npm install`

`cd ..`

## Samples



### Create-execution

View the [source code](https://github.com/googleapis/nodejs-workflows/blob/master/samples/create-execution.js).

[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-workflows&page=editor&open_in_editor=samples/create-execution.js,samples/README.md)

__Usage:__


`node samples/create-execution.js`


-----




### Quickstart

View the [source code](https://github.com/googleapis/nodejs-workflows/blob/master/samples/quickstart.js).

[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-workflows&page=editor&open_in_editor=samples/quickstart.js,samples/README.md)

__Usage:__


`node samples/quickstart.js`






[shell_img]: https://gstatic.com/cloudssh/images/open-btn.png
[shell_link]: https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-workflows&page=editor&open_in_editor=samples/README.md
[product-docs]: https://cloud.google.com/workflows/docs/
41 changes: 41 additions & 0 deletions workflows/create-execution.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
// Copyright 2020 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

'use strict';

async function main(projectId, location, name) {
// [START workflows_create_execution]
/**
* TODO(developer): Uncomment these variables before running the sample.
*/
// const projectId = 'my-project';
// const location = 'us-central1';
// const name = 'my-test-workflow';
const {ExecutionsClient} = require('@google-cloud/workflows');
const client = new ExecutionsClient();
async function createExecution() {
const [resp] = await client.createExecution({
parent: client.workflowPath(projectId, location, name),
});
console.info(`name: ${resp.name}`);
}
createExecution();
// [END workflows_create_execution]
}

process.on('unhandledRejection', (err) => {
console.error(err.message);
process.exitCode = 1;
});
main(...process.argv.slice(2));
22 changes: 22 additions & 0 deletions workflows/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"name": "nodejs-workflows-samples",
"private": true,
"license": "Apache-2.0",
"author": "Google LLC",
"engines": {
"node": ">=10"
},
"files": [
"*.js"
],
"scripts": {
"test": "c8 mocha --timeout 600000 test/*.js"
},
"dependencies": {
"@google-cloud/workflows": "^0.1.0"
},
"devDependencies": {
"c8": "^7.3.0",
"mocha": "^8.1.1"
}
}
42 changes: 42 additions & 0 deletions workflows/quickstart.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
// Copyright 2020 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

'use strict';

async function main(projectId, location) {
// [START workflows_quickstart]
/**
* TODO(developer): Uncomment these variables before running the sample.
*/
// const projectId = 'my-project';
// const location = 'us-central1';
const {WorkflowsClient} = require('@google-cloud/workflows');
const client = new WorkflowsClient();
async function listWorkflows() {
const [workflows] = await client.listWorkflows({
parent: client.locationPath(projectId, location),
});
for (const workflow of workflows) {
console.info(`name: ${workflow.name}`);
}
}
listWorkflows();
// [END workflows_quickstart]
}

process.on('unhandledRejection', (err) => {
console.error(err.message);
process.exitCode = 1;
});
main(...process.argv.slice(2));
40 changes: 40 additions & 0 deletions workflows/test/create-execution.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
// Copyright 2020 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

'use strict';

const path = require('path');
const assert = require('assert');
const cp = require('child_process');
const {describe, it} = require('mocha');

const execSync = (cmd) => cp.execSync(cmd, {encoding: 'utf-8'});

const cwd = path.join(__dirname, '..');

const project = process.env.GCLOUD_PROJECT;
const location = 'us-central1';
const workflow = 'test-workflow-dont-delete';

describe('create-execution', () => {
it('should create an execution', async () => {
const output = execSync(
`node ./create-execution.js ${project} ${location} ${workflow}`,
{
cwd,
}
);
assert(output.match(/name: projects.*executions.*/));
});
});
35 changes: 35 additions & 0 deletions workflows/test/quickstart.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
// Copyright 2020 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

'use strict';

const path = require('path');
const assert = require('assert');
const cp = require('child_process');
const {describe, it} = require('mocha');

const execSync = (cmd) => cp.execSync(cmd, {encoding: 'utf-8'});

const cwd = path.join(__dirname, '..');

const project = process.env.GCLOUD_PROJECT;

describe('Quickstart', () => {
it('should run quickstart', async () => {
const output = execSync(`node ./quickstart.js ${project} us-central1`, {
cwd,
});
assert(output.match(/name: projects.*/));
});
});

0 comments on commit c6b78a3

Please sign in to comment.