-
Notifications
You must be signed in to change notification settings - Fork 2
135 lines (125 loc) · 5.48 KB
/
rerender-package.yml
File metadata and controls
135 lines (125 loc) · 5.48 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
name: Re-render package
on:
workflow_call:
inputs:
package:
required: true
type: string
release:
required: true
type: string
requires-prs:
required: true
type: string
outputs:
pr-number:
description: "Generated PR number if any"
value: ${{ jobs.rerender.outputs.pr-number }}
jobs:
rerender:
name: Re-render package ${{ inputs.package }}-${{ inputs.release }} (requires ${{ inputs.requires-prs }} )
runs-on: ubuntu-latest
outputs:
pr-number: ${{ steps.set-outputs.outputs.output-pr-number }}
steps:
- uses: actions/checkout@v4
- name: Install miniconda
uses: conda-incubator/setup-miniconda@v3
with:
auto-update-conda: true
miniforge-version: latest
channels: conda-forge
conda-remove-defaults: "true"
- name: Install tools using conda
shell: bash -l {0}
run: conda install conda-smithy python pyyaml git
- name: Re-render ${{ inputs.release }}/${{ inputs.package }} using conda smithy and filter configs
shell: bash -l {0}
run: |
CONDA_BUILD_CONFIG_FILE=conda/configs/conda-build.yaml
PACKAGE_DIR=conda/recipes/${{ inputs.release }}/${{ inputs.package }}
echo "PACKAGE_DIR=$PACKAGE_DIR" >> $GITHUB_ENV
bash scripts/rerender.sh $CONDA_BUILD_CONFIG_FILE $PACKAGE_DIR
- name: Check if at least one config needs update
shell: bash -l {0}
run: |
set +e
git diff --exit-code $PACKAGE_DIR/.ci_support/*.yaml
NEEDS_UPDATE=$?
echo "NEEDS_UPDATE=$NEEDS_UPDATE" >> $GITHUB_ENV
if [[ $NEEDS_UPDATE -eq 0 ]]; then
echo "Feedstock does not need update"
else
echo "Feedstock needs update"
fi
- name: Bump recipe build number
if: ${{ env.NEEDS_UPDATE == 1 }}
run: |
# python scripts/bump_build_number.py ${{ env.PACKAGE_DIR }}/recipe/recipe.yaml
RESULT=$(python scripts/bump_build_number.py ${{ env.PACKAGE_DIR }}/recipe/recipe.yaml)
NEW_BUILD_NUMBER=$(echo "$RESULT" | jq -r '.new_build_number')
echo "==== NEW_BUILD_NUMBER = $NEW_BUILD_NUMBER"
echo "NEW_BUILD_NUMBER=$NEW_BUILD_NUMBER" >> $GITHUB_ENV
echo "BRANCH_NAME=rerender/${{ inputs.package }}/${{ inputs.release }}/build_$NEW_BUILD_NUMBER" >> $GITHUB_ENV
- name: Create PR [no requirements]
id: create-pr-no-require
if: ${{ env.NEEDS_UPDATE == 1 && inputs.requires-prs == '' }}
uses: peter-evans/create-pull-request@v7
with:
base: master
token: ${{ secrets.TEST_PAT }}
commit-message: Rebuild ${{ inputs.package }}/${{ inputs.release }} build number ${{ env.NEW_BUILD_NUMBER }}
committer: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
author: ${{ github.actor }} <${{ github.actor_id }}+${{ github.actor }}@users.noreply.github.com>
branch: ${{ env.BRANCH_NAME }}
delete-branch: true
labels: rerender
add-paths: |
${{ env.PACKAGE_DIR }}/recipe/recipe.yaml
${{ env.PACKAGE_DIR }}/.ci_support/*.yaml
title: 'Rebuild ${{ inputs.package }}/${{ inputs.release }} build ${{ env.NEW_BUILD_NUMBER }}'
body: |
Rebuild package ${{ inputs.package }}:
- version ${{ inputs.release }}
- new build number: ${{ env.NEW_BUILD_NUMBER }}
--
Auto-generated by [create-pull-request][1]
[1]: https://github.com/peter-evans/create-pull-request
- name: Create PR [requires PRs ${{ inputs.requires-prs }} ]
id: create-pr-requires
if: ${{ env.NEEDS_UPDATE == 1 && inputs.requires-prs != '' }}
uses: peter-evans/create-pull-request@v7
with:
base: master
token: ${{ secrets.TEST_PAT }}
commit-message: Rebuild ${{ inputs.package }}/${{ inputs.release }} build number ${{ env.NEW_BUILD_NUMBER }}
committer: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
author: ${{ github.actor }} <${{ github.actor_id }}+${{ github.actor }}@users.noreply.github.com>
branch: ${{ env.BRANCH_NAME }}
delete-branch: true
labels: rerender, depends-on
add-paths: |
${{ env.PACKAGE_DIR }}/recipe/recipe.yaml
${{ env.PACKAGE_DIR }}/.ci_support/*.yaml
title: 'Rebuild ${{ inputs.package }}/${{ inputs.release }} build ${{ env.NEW_BUILD_NUMBER }}'
body: |
Rebuild package ${{ inputs.package }}:
- version: ${{ inputs.release }}
- new build number: ${{ env.NEW_BUILD_NUMBER }}
- Depends-on PRs:
${{ inputs.requires-prs }}
--
Auto-generated by [create-pull-request][1]
[1]: https://github.com/peter-evans/create-pull-request
- name: Output required PRs
id: set-outputs
if: ${{ env.NEEDS_UPDATE == 1 }}
run: |
if [ -z "${{ inputs.requires-prs }}" ]; then
echo "output-pr-number=#${{ steps.create-pr-no-require.outputs.pull-request-number }}" >> $GITHUB_OUTPUT
echo "Set output output-pr-number to #${{ steps.create-pr-no-require.outputs.pull-request-number }} (no requires case)"
else
echo "output-pr-number=#${{ steps.create-pr-requires.outputs.pull-request-number }}" >> $GITHUB_OUTPUT
echo "Set output output-pr-number to #${{ steps.create-pr-requires.outputs.pull-request-number }} (requires case)"
fi
echo $GITHUB_OUTPUT