-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Move cloud tests to new repo * Fix dep * Oops * Add secrets to workflows * Use really temporary temp directory. * Ignore error * Consolidate EVEN MORE logic
- Loading branch information
1 parent
a97e1f4
commit 41934ed
Showing
49 changed files
with
3,133 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
# Changes here will be overwritten by Copier | ||
_commit: v1.4.5 | ||
_src_path: gh:lincc-frameworks/python-project-template | ||
author_email: [email protected] | ||
author_name: LINCC Frameworks | ||
create_example_module: true | ||
custom_install: true | ||
include_benchmarks: true | ||
include_docs: false | ||
mypy_type_checking: none | ||
package_name: hipscat_cloudtests | ||
preferred_linter: pylint | ||
project_license: BSD | ||
project_name: hipscat_cloudtests | ||
project_organization: astronomy-commons | ||
use_gitlfs: none | ||
use_isort: true |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,101 @@ | ||
# This workflow will run benchmarks with airspeed velocity (asv), | ||
# store the new results in the "benchmarks" branch and publish them | ||
# to a dashboard on GH Pages. | ||
|
||
name: Run ASV benchmarks for main | ||
|
||
on: | ||
push: | ||
branches: [ main ] | ||
|
||
env: | ||
PYTHON_VERSION: "3.10" | ||
WORKING_DIR: ${{ github.workspace }}/benchmarks | ||
|
||
concurrency: | ||
group: ${{ github.workflow }}-${{ github.ref }} | ||
cancel-in-progress: true | ||
|
||
jobs: | ||
|
||
setup-python: | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: Cache Python ${{ env.PYTHON_VERSION }} | ||
uses: actions/cache@v3 | ||
with: | ||
path: ~/.cache/pip | ||
key: python-${{ env.PYTHON_VERSION }} | ||
|
||
- name: Set up Python ${{ env.PYTHON_VERSION }} | ||
uses: actions/setup-python@v4 | ||
with: | ||
python-version: "${{ env.PYTHON_VERSION }}" | ||
|
||
asv-main: | ||
runs-on: ubuntu-latest | ||
needs: setup-python | ||
|
||
permissions: | ||
contents: write | ||
|
||
defaults: | ||
run: | ||
working-directory: ${{ env.WORKING_DIR }} | ||
|
||
steps: | ||
- name: Checkout main branch of the repository | ||
uses: actions/checkout@v3 | ||
with: | ||
fetch-depth: 0 | ||
|
||
- name: Cache Python ${{ env.PYTHON_VERSION }} | ||
uses: actions/cache@v3 | ||
with: | ||
path: ~/.cache/pip | ||
key: python-${{ env.PYTHON_VERSION }} | ||
|
||
- name: Install dependencies | ||
run: | | ||
sudo apt-get update | ||
python -m pip install --upgrade pip | ||
pip install asv==0.6.1 virtualenv tabulate | ||
- name: Configure git | ||
run: | | ||
git config user.name "github-actions[bot]" | ||
git config user.email "41898282+github-actions[bot]@users.noreply.github.com" | ||
- name: Create ASV machine config file | ||
run: asv machine --machine gh-runner --yes | ||
|
||
- name: Fetch previous results from the "benchmarks" branch | ||
run: | | ||
if git ls-remote --exit-code origin benchmarks > /dev/null 2>&1; then | ||
git merge origin/benchmarks \ | ||
--allow-unrelated-histories \ | ||
--no-commit | ||
mv ../_results . | ||
fi | ||
- name: Run ASV for the main branch | ||
run: asv run ALL --skip-existing --verbose || true | ||
|
||
- name: Submit new results to the "benchmarks" branch | ||
uses: JamesIves/github-pages-deploy-action@v4 | ||
with: | ||
branch: benchmarks | ||
folder: ${{ env.WORKING_DIR }}/_results | ||
target-folder: _results | ||
|
||
- name: Generate dashboard HTML | ||
run: | | ||
asv show | ||
asv publish | ||
- name: Deploy to Github pages | ||
uses: JamesIves/github-pages-deploy-action@v4 | ||
with: | ||
branch: gh-pages | ||
folder: ${{ env.WORKING_DIR }}/_html |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,93 @@ | ||
# This workflow will run daily at 06:45. | ||
# It will run benchmarks with airspeed velocity (asv) | ||
# and compare performance with the previous nightly build. | ||
|
||
name: Run benchmarks nightly job | ||
|
||
on: | ||
schedule: | ||
- cron: 45 6 * * * | ||
workflow_dispatch: | ||
|
||
env: | ||
PYTHON_VERSION: "3.10" | ||
WORKING_DIR: ${{ github.workspace }}/benchmarks | ||
NIGHTLY_HASH_FILE: nightly-hash | ||
|
||
jobs: | ||
|
||
asv-nightly: | ||
runs-on: ubuntu-latest | ||
|
||
defaults: | ||
run: | ||
working-directory: ${{ env.WORKING_DIR }} | ||
|
||
steps: | ||
- name: Checkout main branch of the repository | ||
uses: actions/checkout@v3 | ||
with: | ||
fetch-depth: 0 | ||
|
||
- name: Cache Python ${{ env.PYTHON_VERSION }} | ||
uses: actions/cache@v3 | ||
with: | ||
path: ~/.cache/pip | ||
key: python-${{ env.PYTHON_VERSION }} | ||
|
||
- name: Set up Python ${{ env.PYTHON_VERSION }} | ||
uses: actions/setup-python@v4 | ||
with: | ||
python-version: "${{ env.PYTHON_VERSION }}" | ||
|
||
- name: Install dependencies | ||
run: | | ||
sudo apt-get update | ||
python -m pip install --upgrade pip | ||
pip install asv==0.6.1 virtualenv | ||
- name: Configure git | ||
run: | | ||
git config user.name "github-actions[bot]" | ||
git config user.email "41898282+github-actions[bot]@users.noreply.github.com" | ||
- name: Create ASV machine config file | ||
run: asv machine --machine gh-runner --yes | ||
|
||
- name: Fetch previous results from the "benchmarks" branch | ||
run: | | ||
if git ls-remote --exit-code origin benchmarks > /dev/null 2>&1; then | ||
git merge origin/benchmarks \ | ||
--allow-unrelated-histories \ | ||
--no-commit | ||
mv ../_results . | ||
fi | ||
- name: Get nightly dates under comparison | ||
id: nightly-dates | ||
run: | | ||
echo "yesterday=$(date -d yesterday +'%Y-%m-%d')" >> $GITHUB_OUTPUT | ||
echo "today=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT | ||
- name: Use last nightly commit hash from cache | ||
uses: actions/cache@v3 | ||
with: | ||
path: ${{ env.WORKING_DIR }} | ||
key: nightly-results-${{ steps.nightly-dates.outputs.yesterday }} | ||
|
||
- name: Run comparison of main against last nightly build | ||
run: | | ||
HASH_FILE=${{ env.NIGHTLY_HASH_FILE }} | ||
CURRENT_HASH=${{ github.sha }} | ||
if [ -f $HASH_FILE ]; then | ||
PREV_HASH=$(cat $HASH_FILE) | ||
asv continuous $PREV_HASH $CURRENT_HASH --verbose || true | ||
asv compare $PREV_HASH $CURRENT_HASH --sort ratio --verbose | ||
fi | ||
echo $CURRENT_HASH > $HASH_FILE | ||
- name: Update last nightly hash in cache | ||
uses: actions/cache@v3 | ||
with: | ||
path: ${{ env.WORKING_DIR }} | ||
key: nightly-results-${{ steps.nightly-dates.outputs.today }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,101 @@ | ||
# This workflow will run benchmarks with airspeed velocity (asv) for pull requests. | ||
# It will compare the performance of the main branch with the performance of the merge | ||
# with the new changes and publish a comment with this assessment. | ||
|
||
name: Run ASV benchmarks for PR | ||
|
||
on: | ||
pull_request: | ||
branches: [ main ] | ||
|
||
env: | ||
PYTHON_VERSION: "3.10" | ||
WORKING_DIR: ${{ github.workspace }}/benchmarks | ||
|
||
concurrency: | ||
group: ${{ github.workflow }}-${{ github.ref }} | ||
cancel-in-progress: true | ||
|
||
jobs: | ||
|
||
setup-python: | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: Cache Python ${{ env.PYTHON_VERSION }} | ||
uses: actions/cache@v3 | ||
with: | ||
path: ~/.cache/pip | ||
key: python-${{ env.PYTHON_VERSION }} | ||
|
||
- name: Set up Python ${{ env.PYTHON_VERSION }} | ||
uses: actions/setup-python@v4 | ||
with: | ||
python-version: "${{ env.PYTHON_VERSION }}" | ||
|
||
asv-pr: | ||
runs-on: ubuntu-latest | ||
needs: setup-python | ||
|
||
permissions: | ||
actions: read | ||
pull-requests: write | ||
|
||
defaults: | ||
run: | ||
working-directory: ${{ env.WORKING_DIR }} | ||
|
||
steps: | ||
- name: Checkout PR branch of the repository | ||
uses: actions/checkout@v3 | ||
with: | ||
fetch-depth: 0 | ||
|
||
- name: Cache Python ${{ env.PYTHON_VERSION }} | ||
uses: actions/cache@v3 | ||
with: | ||
path: ~/.cache/pip | ||
key: python-${{ env.PYTHON_VERSION }} | ||
|
||
- name: Install dependencies | ||
run: | | ||
sudo apt-get update | ||
python -m pip install --upgrade pip | ||
pip install asv==0.6.1 virtualenv tabulate lf-asv-formatter | ||
- name: Get current job logs URL | ||
uses: Tiryoh/gha-jobid-action@v0 | ||
id: jobs | ||
with: | ||
github_token: ${{ secrets.GITHUB_TOKEN }} | ||
job_name: ${{ github.job }} | ||
|
||
- name: Create ASV machine config file | ||
run: asv machine --machine gh-runner --yes | ||
|
||
- name: Run comparison of PR against main branch | ||
run: | | ||
git remote add upstream https://github.com/${{ github.repository }}.git | ||
git fetch upstream | ||
asv continuous upstream/main HEAD --verbose || true | ||
asv compare upstream/main HEAD --sort ratio --verbose | tee output | ||
python -m lf_asv_formatter --asv_version "$(echo asv --version)" | ||
printf "\n\nClick [here]($STEP_URL) to view all benchmarks." >> output | ||
env: | ||
STEP_URL: "${{ steps.jobs.outputs.html_url }}#step:8:1" | ||
|
||
- name: Find benchmarks comment | ||
uses: peter-evans/find-comment@v2 | ||
id: find-comment | ||
with: | ||
issue-number: ${{ github.event.pull_request.number }} | ||
comment-author: 'github-actions[bot]' | ||
body-includes: view all benchmarks | ||
|
||
- name: Create or update benchmarks comment | ||
uses: peter-evans/create-or-update-comment@v3 | ||
with: | ||
comment-id: ${{ steps.find-comment.outputs.comment-id }} | ||
issue-number: ${{ github.event.pull_request.number }} | ||
body-path: ${{ env.WORKING_DIR }}/output | ||
edit-mode: replace |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
# This workflow will install Python dependencies, then perform static linting analysis. | ||
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions | ||
|
||
name: Lint | ||
|
||
on: | ||
push: | ||
branches: [ main ] | ||
pull_request: | ||
branches: [ main ] | ||
|
||
concurrency: | ||
group: ${{ github.workflow }}-${{ github.ref }} | ||
cancel-in-progress: true | ||
|
||
jobs: | ||
build: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- name: Set up Python | ||
uses: actions/setup-python@v4 | ||
with: | ||
python-version: '3.10' | ||
- name: Install dependencies | ||
run: | | ||
sudo apt-get update | ||
python -m pip install --upgrade pip | ||
pip install . | ||
pip install .[dev] | ||
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi | ||
- name: Analyze code with linter | ||
run: | | ||
pylint -rn -sn --recursive=y ./src --rcfile=./src/.pylintrc | ||
pylint -rn -sn --recursive=y ./tests --rcfile=./tests/.pylintrc | ||
pylint -rn -sn --recursive=y ./benchmarks --rcfile=./tests/.pylintrc |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
# This workflow runs pre-commit hooks on pull requests to enforce coding style. | ||
# To ensure correct configuration, please refer to: | ||
# https://lincc-ppt.readthedocs.io/en/latest/practices/ci_precommit.html | ||
|
||
name: Run pre-commit hooks | ||
|
||
on: | ||
pull_request: | ||
|
||
jobs: | ||
pre-commit-ci: | ||
runs-on: ubuntu-latest | ||
env: | ||
SKIP: "check-lincc-frameworks-template-version,pytest-check,no-commit-to-branch,validate-pyproject,check-added-large-files,sphinx-build" | ||
steps: | ||
- uses: actions/checkout@v3 | ||
with: | ||
fetch-depth: 0 | ||
- name: Set up Python | ||
uses: actions/setup-python@v4 | ||
with: | ||
python-version: '3.10' | ||
- name: Install dependencies | ||
run: | | ||
sudo apt-get update | ||
python -m pip install --upgrade pip | ||
pip install . | ||
pip install .[dev] | ||
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi | ||
- uses: pre-commit/[email protected] | ||
with: | ||
extra_args: --from-ref ${{ github.event.pull_request.base.sha }} --to-ref ${{ github.event.pull_request.head.sha }} | ||
- uses: pre-commit-ci/[email protected] | ||
if: always() |
Oops, something went wrong.