Skip to content

Instantly share code, notes, and snippets.

View xSAVIKx's full-sized avatar
🇺🇦

Yurii Serhiichuk xSAVIKx

🇺🇦
View GitHub Profile
@xSAVIKx
xSAVIKx / index.ts
Last active November 15, 2025 19:23
GCP Cloud Workstations customizable setup with Pulumi, Typescript and Bun
import { dirname } from "node:path";
import { fileURLToPath } from "node:url";
import * as docker from "@pulumi/docker";
import * as gcp from "@pulumi/gcp";
import * as pulumi from "@pulumi/pulumi";
import { GoogleAuth } from "google-auth-library";
const __dirname = dirname(fileURLToPath(import.meta.url));
const region = "us-central1";
@xSAVIKx
xSAVIKx / index.ts
Last active October 25, 2025 17:35
GCP Cloud Workstations minimal setup with Pulumi, Typescript and Bun
import * as gcp from "@pulumi/gcp";
const region = "us-central1";
const gcpProvider = new gcp.Provider("gcpProvider", {
project: gcp.config.project,
region: region,
defaultLabels: { team: "devops" },
});
const enableServices = (services: string[]) => {
@xSAVIKx
xSAVIKx / empty-file.txt
Created October 24, 2025 16:11
test-gist
almost empty
not so empty anymore.
yeah.
@xSAVIKx
xSAVIKx / update-gist.yml
Last active October 24, 2025 10:13
This gist is auto-updated using https://github.com/xSAVIKx/gist-uploader-action action
name: Update Gist
on:
release:
types:
- published
workflow_dispatch:
jobs:
update-gist:
@xSAVIKx
xSAVIKx / long-running-tasks-example.workflows.yaml
Created April 20, 2024 20:18
Tasks Runner e2e test GCP Workflows workflow
main:
params: [input]
steps:
- checkSleepTimeout:
switch:
- condition: ${"sleepTimeoutSeconds" in input}
assign:
- sleepTimeoutSeconds: ${int(input.sleepTimeoutSeconds)}
- condition: true
assign:
@xSAVIKx
xSAVIKx / sample-long-running-gcp-workflow.workflows.yaml
Last active January 9, 2023 11:28
Sample GCP Workflow with long-running architecture
main:
steps:
- createCallback:
call: events.create_callback_endpoint
args:
http_callback_method: "POST"
result: callbackDetails
- createHttpCallPayload:
assign:
- httpCallPayload: {}
@xSAVIKx
xSAVIKx / sample-gcp-workflow.workflows.yaml
Last active January 9, 2023 11:28
A sample GCP Workflow
main:
steps:
- getCurrentTime:
call: http.get
args:
url: https://us-central1-workflowsample.cloudfunctions.net/datetime
result: currentDateTime
- returnOutput:
return: ${currentDateTime.body.dayOfTheWeek}
@xSAVIKx
xSAVIKx / radix-converter.js
Last active October 30, 2019 20:38
Converts numbers in string representation to their int representation using supplied radix.
const glbl = global || globalThis || window;
const radixes = '0123456789абвгдеёжзийклмнопрстуфхцчшщъыьэюя';
const parseInt = (text, radix) => {
const actualRadix = radixes.indexOf(radix);
const result = glbl.parseInt(text, actualRadix);
return result;
};
console.log(parseInt('210', 3)); // 21
@xSAVIKx
xSAVIKx / Demo.java
Created March 20, 2017 21:10
JAXB Unmarshalling from Source example
import javax.xml.bind.*;
import javax.xml.transform.Source;
import javax.xml.transform.stream.StreamSource;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
public class Demo {
public static void main(String[] args) throws JAXBException, IOException {
JAXBContext context = JAXBContext.newInstance(Type.class, InnerType.class);
@xSAVIKx
xSAVIKx / Demo.java
Created March 20, 2017 20:54
JAXB Custom Adapter Example
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
/**
* Created by User on 20.03.2017.
*/
public class Demo {
public static void main(String[] args) throws JAXBException {
JAXBContext context = JAXBContext.newInstance(Type.class, InnerType.class);