Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Initialize revdepcheck action #225

Merged
merged 13 commits into from
Apr 25, 2024
94 changes: 94 additions & 0 deletions .github/workflows/revdepcheck.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
---
name: revdepcheck ⏪

on:
workflow_dispatch:
walkowif marked this conversation as resolved.
Show resolved Hide resolved
workflow_call:
secrets:
REPO_GITHUB_TOKEN:
description: |
Github token with read access to repositories, required for dependencies installation
required: false
GCHAT_WEBHOOK:
description: |
Google Chat webhook to send failure notifications
required: false
inputs:
additional-env-vars:
description: |
Extra environment variables, as a 'key=value' pair, with each pair on a new line.
Example usage:
additional-env-vars: |
ABC=123
XYZ=456
required: false
default: ""
type: string

jobs:
dependency-test:
name: revdepcheck ⏪
runs-on: ubuntu-latest
if: >
!contains(github.event.commits[0].message, '[skip revdepcheck]')
# Restore this in the if condition
# && github.event.pull_request.draft == false
container:
image: ghcr.io/insightsengineering/rstudio:latest

steps:
- name: Setup token 🔑
id: github-token
run: |
if [ "${{ secrets.REPO_GITHUB_TOKEN }}" == "" ]; then
echo "REPO_GITHUB_TOKEN is empty. Substituting it with GITHUB_TOKEN."
echo "token=${{ secrets.GITHUB_TOKEN }}" >> $GITHUB_OUTPUT
else
echo "Using REPO_GITHUB_TOKEN."
echo "token=${{ secrets.REPO_GITHUB_TOKEN }}" >> $GITHUB_OUTPUT
fi
shell: bash

- name: Get branch names 🌿
id: branch-name
uses: tj-actions/branch-names@v7

- name: Checkout repo 🛎
uses: actions/checkout@v4
with:
ref: ${{ steps.branch-name.outputs.head_ref_branch }}
fetch-depth: 1

- name: Check commit message 💬
run: |
git config --global --add safe.directory $(pwd)
export head_commit_message="$(git show -s --format=%B | tr '\r\n' ' ' | tr '\n' ' ')"
echo "head_commit_message = $head_commit_message"
if [[ $head_commit_message == *"$SKIP_INSTRUCTION"* ]]; then
echo "Skip instruction detected - cancelling the workflow."
exit 1
fi
shell: bash
env:
SKIP_INSTRUCTION: "[skip revdepcheck]"

- name: Normalize variables 📏
run: |
echo "gchat_webhook=${{ secrets.GCHAT_WEBHOOK }}" >> $GITHUB_ENV
shell: bash

- name: revdepcheck 🔄
id: revdepcheck
# TODO update branch to main
uses: insightsengineering/r-revdepcheck-action@initialize-action
walkowif marked this conversation as resolved.
Show resolved Hide resolved
with:
github-token: ${{ steps.github-token.outputs.token }}
additional-env-vars: ${{ inputs.additional-env-vars }}

- name: GChat notification 🔔
if: (failure() || cancelled()) && steps.revdepcheck.outcome != 'success' && env.gchat_webhook != ''
uses: insightsengineering/google-chat-notification@master
with:
name: ${{ github.event.repository.name }} - revdepcheck - ${{ env.strategy }}
url: ${{ secrets.GCHAT_WEBHOOK }}
status: ${{ job.status }}
Loading