Skip to content

Instantly share code, notes, and snippets.

@tzaffi
Last active May 18, 2024 17:43
Show Gist options
  • Save tzaffi/af68fee39dc86fc87db5a863eb4f9c2b to your computer and use it in GitHub Desktop.
Save tzaffi/af68fee39dc86fc87db5a863eb4f9c2b to your computer and use it in GitHub Desktop.
GIthub Actions Examples
name: Comprehensive Workflow Example
on:
# Push event - triggers on pushes to specified branches and paths
push:
branches:
- main
- zeph/testing
tags:
- v*
paths:
- '**.js'
- '**.py'
# Pull request event - triggers on pull request activities for specified branches
pull_request:
types: [assigned, opened, synchronize, reopened]
branches:
- main
paths:
- '**.js'
# Schedule event - triggers based on a cron schedule
schedule:
- cron: '0 2 * * *' # Runs at 02:00 UTC every day
# Workflow dispatch - allows you to trigger the workflow manually
workflow_dispatch:
# Repository dispatch - triggers the workflow on a custom event sent with a POST request
repository_dispatch:
types: [build, deploy]
# Check run - triggers when a check run is created, completed, requested, or rerequested
check_run:
types: [created, completed]
# Check suite - triggers when a check suite is completed, requested, or rerequested
check_suite:
types: [completed, requested]
# Create - triggers when a branch or tag is created
create:
# Delete - triggers when a branch or tag is deleted
delete:
# Deployment - triggers when a deployment is created
deployment:
# Deployment status - triggers when a deployment status changes
deployment_status:
# Fork - triggers when a user forks the repository
fork:
# Gollum - triggers on wiki updates
gollum:
# Issue comment - triggers on comments on issues
issue_comment:
types: [created, edited]
# Issues - triggers on issue activities like open, close, or label
issues:
types: [opened, edited, labeled]
# Label - triggers when a label is created, edited, or deleted
label:
types: [created, edited, deleted]
# Milestone - triggers when a milestone is created, closed, opened, edited, or deleted
milestone:
types: [created, closed, opened, edited, deleted]
# Page build - triggers when a GitHub Pages site is built or results in a failed build
page_build:
# Project - triggers when a project is created, updated, or deleted
project:
types: [created, updated, deleted]
# Project card - triggers when a project card is created, updated, moved, converted, or deleted
project_card:
types: [created, updated, moved, converted, deleted]
# Project column - triggers when a project column is created, updated, moved, or deleted
project_column:
types: [created, updated, moved, deleted]
# Public - triggers when a repository is made public
public:
# Pull request review - triggers on pull request review activities
pull_request_review:
types: [submitted, edited, dismissed]
# Pull request review comment - triggers on comment activities on pull request reviews
pull_request_review_comment:
types: [created, edited, deleted]
# Pull request target - similar to pull_request but with a different `GITHUB_TOKEN` permissions
pull_request_target:
types: [assigned, opened, synchronize, reopened]
branches:
- main
# Registry package - triggers when a GitHub Packages registry package is published or updated
registry_package:
types: [published, updated]
# Release - triggers when a release is created, published, unpublished, etc.
release:
types: [created, published, unpublished, edited, deleted, prereleased]
# Status - triggers when the status of a Git commit changes
status:
# Watch - triggers when someone stars the repository
watch:
types: [started]
jobs:
example_job:
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v2
- name: Run a multi-line script
run: |
echo "This is a multi-line script example"
echo "Triggered by event: ${{ github.event_name }}"
name: Test Workflow for OpsGenie Experimentation
on:
push:
branches:
- zeph/FromPagerDuty2OpsGenie
env:
RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
JOB_HUMAN: AERA_OpsGenie_Experiment
jobs:
example_job:
runs-on: ubuntu-latest
steps:
- run: |
echo "Oh no!"
# set a non-0 status code to simulate a failure:
exit 1
- name: "Alias: dedupe slug using timestamp"
if: failure()
run:
echo "dedup=${JOB_HUMAN}_$(date +'%Y-%m-%d')" >> $GITHUB_ENV
- name: "Dummy vault name"
if: failure()
run:
echo "vault_name=BestVaultEver" >> $GITHUB_ENV
- name: "Send OpsGenie alert on failure"
if: failure()
uses: cdqag/opsgenie-create-alert@v1
with:
priority: P1
message: "${{ github.workflow }} #${{ github.run_number }} failed"
alias: ${{ env.dedup }}
responders: '[{"id":"${{ secrets.OPSGENIE_TEAM_AERA }}","type":"team"}]'
apiKey: ${{ secrets.OPSGENIE_API_KEY }}
description: |
${{ env.JOB_HUMAN }} has failed!
<br><a href="${{ env.RUN_URL }}" target="_blank">Investigate ${{ env.JOB_HUMAN }} job failure @ github</a>
tags: '["team: AERA", "type: ETL"]'
verbose: true
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment