-
Notifications
You must be signed in to change notification settings - Fork 424
186 lines (152 loc) · 6.62 KB
/
generate-package-versions.yml
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
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
name: Generate Package Versions
on:
workflow_dispatch: # can be triggered manually
schedule:
- cron: "0 0 * * 0" # weekly on Sunday at midnight
push:
branches:
- quinna.halim/add-supported-versions-json # TODO: remove, for testing
jobs:
generate-package-versions:
name: Generate package versions
runs-on: ubuntu-22.04
permissions:
actions: read
contents: write
pull-requests: write
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- name: Setup Python 3.7
uses: actions/setup-python@v5
with:
python-version: "3.7"
- name: Setup Python 3.8
uses: actions/setup-python@v5
with:
python-version: "3.8"
- name: Setup Python 3.9
uses: actions/setup-python@v5
with:
python-version: "3.9"
- name: Setup Python 3.10
uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: Setup Python 3.11
uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Setup Python 3.12
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Install Docker Compose
run: |
sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
- name: Start docker service
run: docker-compose up -d testagent
- name: Install system dependencies
run: |
sudo apt-get update
sudo apt-get install -y libmariadb-dev
- name: Install hatch
uses: pypa/hatch@install
with:
version: "1.12.0"
- name: Install Python dependencies
run: |
python -m pip install --upgrade pip
pip install packaging
pip install requests
pip install riot==0.20.1
pip install wrapt==1.16.0
- uses: actions/checkout@v4
with:
persist-credentials: false
path: ddtrace
- name: Install ddtrace
run: |
pip install ./ddtrace
- uses: actions/checkout@v4
with:
persist-credentials: false
- name: Run regenerate-riot-latest
run: scripts/regenerate-riot-latest.sh
- name: Get latest version
id: new-latest
run: |
NEW_LATEST=$(python scripts/get_latest_version.py ${{ env.VENV_NAME }})
echo "NEW_LATEST=$NEW_LATEST" >> $GITHUB_ENV
- name: Generate table
run: python scripts/generate_table.py
- run: git diff
# Generate the commit with potential conflicts
- name: Generate Commit
run: |
# Checkout a new branch
git config --global --add safe.directory "$GITHUB_WORKSPACE"
git checkout -b "upgrade-latest-${{ env.VENV_NAME }}-version"
# Stage and commit the changes
git add supported_versions_output.json supported_versions_table.csv
git commit -m "Test Package Versions update"
# Resolve conflicts if any during the rebase or cherry-pick
- name: Resolve Conflicts
run: |
# Attempt to cherry-pick or rebase changes onto the base branch
git fetch origin main
git rebase origin/main || true
# Resolve conflicts by keeping changes
git checkout --theirs supported_versions_output.json || true
git checkout --theirs supported_versions_table.csv || true
# Stage resolved changes
git add supported_versions_output.json supported_versions_table.csv || true
# Continue rebase
git rebase --continue || true
- name: Create Pull Request
id: pr
uses: peter-evans/create-pull-request@v6
with:
token: ${{ secrets.GITHUB_TOKEN }}
branch: "upgrade-latest-${{ env.VENV_NAME }}-version"
commit-message: "Update package version"
delete-branch: true
base: main
add-paths: |
supported_versions_table.csv
supported_versions_output.json
.riot/requirements/*
title: "chore: update ${{ env.VENV_NAME }} latest version to ${{ env.NEW_LATEST }}"
labels: changelog/no-changelog
body: |
Update ${{ env.VENV_NAME }} lockfiles and dependency package lockfiles.
This performs the following updates:
1) Some ${{ env.VENV_NAME }} lockfiles use ${{ env.VENV_NAME }} `latest`. This will update ${{ env.VENV_NAME }} and dependencies.
2) Some ${{ env.VENV_NAME }} lockfiles use a pinned (non-latest) version of ${{ env.VENV_NAME }}, but require the `latest` version of another package. This will update all such packages.
## Checklist
- [x] PR author has checked that all the criteria below are met
- The PR description includes an overview of the change
- The PR description articulates the motivation for the change
- The change includes tests OR the PR description describes a testing strategy
- The PR description notes risks associated with the change, if any
- Newly-added code is easy to change
- The change follows the [library release note guidelines](https://ddtrace.readthedocs.io/en/stable/releasenotes.html)
- The change includes or references documentation updates if necessary
- Backport labels are set (if [applicable](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting))
## Reviewer Checklist
- [ ] Reviewer has checked that all the criteria below are met
- Title is accurate
- All changes are related to the pull request's stated goal
- Avoids breaking [API](https://ddtrace.readthedocs.io/en/stable/versioning.html#interfaces) changes
- Testing strategy adequately addresses listed risks
- Newly-added code is easy to change
- Release note makes sense to a user of the library
- If necessary, author has acknowledged and discussed the performance implications of this PR as reported in the benchmarks PR comment
- Backport labels are set in a manner that is consistent with the [release branch maintenance policy](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)