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

Add autopush workflow #1251

Merged
merged 2 commits into from
Aug 25, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
98 changes: 98 additions & 0 deletions .github/workflows/autopush.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
---
name: Autopush

# yamllint disable-line rule:truthy
on:
push:
branches:
- autopush-*

# Cancels this run if a new one referring to the same object and same workflow
# is requested
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

env:
# The version of caching we are using. This can be upgraded if we
# significantly change CI to the point where old caches become irrelevant.
CACHE_VERSION: 0
# Default Python version. Noetic defaults to 3.8.
DEFAULT_PYTHON: 3.8
# Location of the pre-commit cache. This is set by pre-commit, not us!
PRE_COMMIT_CACHE: ~/.cache/pre-commit

jobs:
pre-commit:
name: Run pre-commit
runs-on: ubuntu-latest
if: github.event.sender.login == 'cbrxyz'
steps:
- name: Check out code from GitHub
uses: actions/checkout@v3.0.2
with:
submodules: recursive
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v4.1.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
cache: "pip"
- name: Install pre-commit hooks
run: |
python --version
pip install "$(cat requirements.txt | grep pre-commit)"
- name: Generate pre-commit cache key
id: pre-commit_cache_key
run: >
echo "::set-output
name=key::${{ env.CACHE_VERSION }}-${{ env.DEFAULT_PYTHON }}-${{
hashFiles('.pre-commit-config.yaml') }}"
- name: Restore base pre-commit environment
id: cache-pre-commmit
uses: actions/cache@v3.0.4
with:
path: ${{ env.PRE_COMMIT_CACHE }}
key: >
${{ runner.os
}}-pre-commit-${{ steps.pre-commit_cache_key.outputs.key }}
- name: Install pre-commit dependencies if no cache
if: steps.cache-precommit.outputs.cache-hit != 'true'
run: |
pre-commit install-hooks
- name: Run pre-commit
run: |
pre-commit run --all-files --show-diff-on-failure

autopush:
name: Autopush changes
needs: [pre-commit]
runs-on: ubuntu-latest
steps:
- name: Wait for tests to succeed
uses: lewagon/wait-on-check-action@v1.3.4
with:
ref: ${{ github.ref }}
check-name: 'Run tests and build docs'
repo-token: ${{ secrets.INVESTIGATOR_BOT_TOKEN }}
wait-interval: 10

- name: Check out code from GitHub
uses: actions/checkout@v3.0.2
with:
submodules: recursive
token: ${{ secrets.INVESTIGATOR_BOT_TOKEN }}
ref: ${{ github.event.ref }}
fetch-depth: 0

- name: Create commit
run: |
git fetch
git config --global user.name \
"$(git --no-pager log --format=format:'%an' -n 1)"
git config --global user.email \
"$(git --no-pager log --format=format:'%ae' -n 1)"
git rebase origin/master
git checkout master
git branch
git merge --ff-only ${{ github.event.ref }}
git push
4 changes: 4 additions & 0 deletions scripts/setup.bash
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,10 @@ cm() {
fi
}

autopush() {
git push origin +"${1:-HEAD}":refs/heads/cameron-autopush-"$(uuidgen --random | cut -c1-8)"-citmp
}

alias xbox=startxbox

# PYTHONPATH modifications
Expand Down
Loading