Skip to content

Instantly share code, notes, and snippets.

View askb's full-sized avatar

askb askb

View GitHub Profile
@askb
askb / gist:4b69882938f9ce8df7aab4319dc1c5b5
Last active October 25, 2025 01:01
Generic MVP for creating new lfreleng-actions
<!--
SPDX-License-Identifier: Apache-2.0
SPDX-FileCopyrightText: 2025 The Linux Foundation
-->
# GitHub Actions MVP - Complete Guide
**Comprehensive Best Practices for Creating GitHub Actions**
This document synthesizes patterns from 43+ production GitHub Actions to provide a complete MVP (Minimum Viable Product) guide for creating robust, maintainable, and enterprise-ready GitHub Actions.
---
# SPDX-License-Identifier: Apache-2.0
# Copyright (c) 2025 The Linux Foundation
name: Gerrit CI Packer Merge using Tailscale VPN and SSH Tunnel
# yamllint disable-line rule:truthy
on:
push:
branches: [main]
@askb
askb / lf-env.sh
Last active August 26, 2025 21:22
#!/usr/bin/no-execute
# shellcheck shell=bash
# SPDX-License-Identifier: EPL-1.0
##############################################################################
# Copyright (c) 2019 The Linux Foundation and others.
#
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
#!/bin/bash
# Gerrit 502 Error Diagnostic Script
# Usage: sudo ./gerrit-diagnostic.sh
# This script performs read-only checks to identify the root cause of 502 errors
set -euo pipefail
# Colors for output
RED='\033[0;31m'
@askb
askb / gist:55d69f025023c724ec11a49381e0d1a2
Created April 24, 2025 09:53
Changes required for conditionally building packer images locally outside the cloud tenat
$ git diff
diff --git a/templates/builder.pkr.hcl b/templates/builder.pkr.hcl
index ab331b0..316c9ef 100644
--- a/templates/builder.pkr.hcl
+++ b/templates/builder.pkr.hcl
@@ -149,11 +149,12 @@ build {
"ANSIBLE_HOST_KEY_CHECKING=False",
"ANSIBLE_ROLES_PATH=${var.ansible_roles_path}",
"ANSIBLE_CALLBACK_WHITELIST=profile_tasks",
- "ANSIBLE_STDOUT_CALLBACK=debug"
@askb
askb / gerrit_query_parse.sh
Last active April 3, 2025 12:15
Gerrit query info - Input Gerrit change request URL and output required change-info for reusable workflows
#!/bin/bash
# Script to execute a Gerrit query, parse JSON output, and set environment variables.
# Usage: ./gerrit_query_parse.sh <gerrit_url> <user_name> [<patchset revision>]
if [ "$#" -lt 2 ] || [ "$#" -gt 3 ]; then
echo "Usage: $0 <gerrit_url> <ssh_user_name> [ <patchset revision> ]"
exit 1
fi
#!/bin/bash
# SPDX-License-Identifier: EPL-1.0
##############################################################################
# Copyright (c) 2022 The Linux Foundation and others.
#
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
##############################################################################
FROM centos:7
SHELL ["/bin/bash", "-c"]
ARG SIGN_DIR="${WORKSPACE}/m2repo"
ARG GIT_TAG=""
RUN echo $'[fedora-infra-sigul] \n\
name=Fedora builder packages for sigul \n\
baseurl=https://kojipkgs.fedoraproject.org/repos-dist/epel\$releasever-infra/latest/\$basearch/ \n\
enabled=1 \n\
@askb
askb / gist:4df53e74ce385dedd58ca000d392836f
Created October 13, 2022 00:35
Debug packer provisioner with verbose output
diff --git a/templates/builder.json b/templates/builder.json
index 0fa217d..c1eb535 100644
--- a/templates/builder.json
+++ b/templates/builder.json
@@ -56,6 +56,7 @@
{
"type": "ansible",
"playbook_file": "provision/local-builder.yaml",
+ "extra_arguments": ["-vvvv"],
"ansible_env_vars": [
## pyenv configs
# Set the python version available under pyenv
export PYENV_ROOT="/opt/pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
set_python_version="3.9"
# Takes 3.x and returns 3.x.y from the available py3.x versions on the system
pyver() { grep "^$(echo ${1//[a-zA-Z]/})\(\..*\)\?\.[0-9]\+$" <(pyenv versions | sed 's/[[:alpha:]|(|)|/||*|[:space:]]//g'| tr -d ' ') | sort -V | tail -n 1 ; }
if command -v pyenv 1>/dev/null 2>&1; then
eval "$(pyenv init -)"