Run CI without creating PR (#1) #28
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
name: Add to conda-forge | |
on: | |
push: | |
workflow_dispatch: | |
inputs: | |
name: | |
type: string | |
description: PyPi package name | |
default: 'criclive' | |
github-username: | |
type: string | |
description: GitHub Username | |
default: 'aktech' | |
upstream-github-account: | |
type: string | |
description: Upstream github username (conda-forge) | |
default: 'aktech' | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
shell: bash -el {0} | |
steps: | |
- name: Set Inputs | |
id: set-inputs | |
run: | | |
input_package_name=${{ github.event.inputs.name }} | |
package_name=${input_package_name:-"criclive"} | |
timestamp=$(date +%s) | |
pr_branch=package_name-$timestamp | |
input_github_username=${{ github.event.inputs.github-username }} | |
github_username=${input_github_username:-"aktech"} | |
input_upstream_github_username=${{ github.event.inputs.upstream-github-account }} | |
upstream_github_username=${input_upstream_github_username:-"aktech"} | |
echo "package_name=$package_name" >> "$GITHUB_OUTPUT" | |
echo "pr_branch=$pr_branch" >> "$GITHUB_OUTPUT" | |
echo "gh_username=$github_username" >> "$GITHUB_OUTPUT" | |
echo "upstream_github_username=$upstream_github_username" >> "$GITHUB_OUTPUT" | |
- name: Get event type | |
run: | | |
echo ${{ github.event_name }} | |
- name: Setup Mamba | |
uses: mamba-org/setup-micromamba@v1 | |
with: | |
micromamba-version: '1.3.1-0' | |
environment-name: ci | |
init-shell: >- | |
bash | |
powershell | |
create-args: >- | |
python=3.10 | |
grayskull | |
hub | |
- name: Clone staged-reciped | |
run: | | |
git clone https://github.com/conda-forge/staged-recipes | |
- name: Generate recipe for package using grayskull | |
run: | | |
grayskull pypi ${{ steps.set-inputs.outputs.package_name }} | |
ls -ltrh | |
ls ${{ steps.set-inputs.outputs.package_name }}/meta.yaml | |
- name: Move recipe to staged recipe | |
run: | | |
cp ${{ steps.set-inputs.outputs.package_name }} staged-recipes/recipes/ -r | |
ls staged-recipes/recipes/ | |
- name: Add github username to meta.yaml | |
run: | | |
meta_yaml=staged-recipes/recipes/${{ steps.set-inputs.outputs.package_name }}/meta.yaml | |
sed -i 's/AddYourGitHubIdHere/${{ steps.set-inputs.outputs.gh_username }}/g' $meta_yaml | |
- name: Commit Recipe | |
run: | | |
cd staged-recipes | |
git add . | |
git status | |
# TODO: Make this configurable | |
git config --global user.email "dtu.amit@gmail.com" | |
git config --global user.name "Amit Kumar" | |
git commit -m "Add recipe for ${{ steps.set-inputs.outputs.package_name }}" | |
- name: Add Fork remote | |
env: | |
GH_TOKEN: ${{ secrets.GH_TOKEN }} | |
run: | | |
cd staged-recipes | |
git remote -v | |
github_username=${{ steps.set-inputs.outputs.gh_username }} | |
url=https://$github_username:$GH_TOKEN@github.com/$github_username/staged-recipes.git | |
git remote add fork $url | |
git remote -v | |
- name: Push recipe to the fork branch | |
run: | | |
cd staged-recipes | |
echo "Pushing recipe" | |
git checkout -b ${{ steps.set-inputs.outputs.pr_branch }} | |
git push fork | |
- name: Create a PR on conda-forge | |
if: github.event_name == 'workflow_dispatch' | |
run: | | |
echo "Creating a PR on conda-forge" | |
cd staged-recipes | |
branch=${{ steps.set-inputs.outputs.pr_branch }} | |
upstream_owner=${{ steps.set-inputs.outputs.upstream_github_username }} | |
hub pull-request -m "Add recipe for ${{ steps.set-inputs.outputs.package_name }}" --base $upstream_owner:main --head ${{ steps.set-inputs.outputs.gh_username }}:$branch | |
env: | |
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} |