GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — AliceO2/.github/workflows/reports.yml at dev · maoderos/AliceO2 137 lines (133 loc) · 5.28 KB / Copy pathreports.ymlFile metadata and controls137 lines (133 loc) · 5.28 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 136 137 name: Automatically create CHANGELOG for O2 releases on: push: workflow_dispatch: inputs: LAST_RELEASE_DATE: description: 'Time of the last release' required: true default: '' schedule: - cron: '0 0 * * *' jobs: build: runs-on: macOS-latest if: github.repository == 'AliceO2Group/AliceO2' steps: - uses: actions/checkout@v2 - name: Set up Python 3.7 uses: actions/setup-python@v1 with: python-version: 3.7 - uses: actions/cache@v2 name: Configure pip caching with: path: ~/.cache/pip key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} restore-keys: | ${{ runner.os }}-pip- - uses: octokit/[email protected] id: get_latest_o2_releases with: query: | { repository(name: "AliceO2", owner: "AliceO2Group") { releases(last:14) { edges { node { tagName publishedAt } } } } } env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - uses: octokit/[email protected] id: get_latest_o2_prs with: query: | { repository(name: "AliceO2", owner: "AliceO2Group") { pullRequests(last: 100) { edges { node { state mergedAt title number author { login } files(last: 100) { edges { node { path } } } } } } } } env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Update Changelog run: | set -x mkdir -p doc/data # We create new files once per month, mostly so that # we can keep the query results small. It does not # matter if we get results from different months, # as what matters is how we merge them. CURRENT_MONTH=`date +%Y-%m` cat <<\EOF > doc/data/${CURRENT_MONTH}-o2_releases.json ${{ steps.get_latest_o2_releases.outputs.data }} EOF cat <<\EOF > doc/data/${CURRENT_MONTH}-o2_prs.json ${{ steps.get_latest_o2_prs.outputs.data }} EOF # FIXME: this should really be one second after the last release # being published LAST_RELEASE="${{ github.event.inputs.LAST_RELEASE_DATE }}" MERGED_AFTER=${LAST_RELEASE:-$(date -v -14d +%Y-%m-%d)} # Here we convert all the json files to per subsystem # logs, using the MERGED_AFTER date to further filter them. # Notice we can have duplicates in each file, # as they will be removed in the next iteration. # FIXME: it's probably enough to iterate on the last two # months, at least for bi-weekly releases. for f in doc/data/*_prs.json; do for x in Algorithm Analysis Common DataFormats Detectors EventVisualisation Examples Framework Generators Steer Testing Utilities; do cat $f | jq ".repository.pullRequests.edges[].node | select(.files.edges[].node.path | test(\"$x\")) | del(.files) | select(.state == \"MERGED\" and .mergedAt >= \"${MERGED_AFTER}\")" > /tmp/${x}_prs.json if [ ! X`jq -s length /tmp/${x}_prs.json` = X0 ]; then cat /tmp/${x}_prs.json | jq -r '"- [#\(.number)](https://github.com/AliceO2Group/AliceO2/pull/\(.number)) \(.mergedAt | split("T")[0]): \(.title) by [@\(.author.login)](https://github.com/\(.author.login))"' | sort -u >> /tmp/${x}_prs.md fi done done # Here we do the merging by iterating on the subsystems adding # an header for each and removing the duplicates. printf "# Changes since ${MERGED_AFTER}\n\n" > CHANGELOG.md for x in Algorithm Analysis Common DataFormats Detectors EventVisualisation Examples Framework Generators Steer Testing Utilities; do [ ! -f /tmp/${x}_prs.md ] && continue printf "## Changes in $x\n\n" >> CHANGELOG.md cat /tmp/${x}_prs.md | sort -k3 | uniq >> CHANGELOG.md done - name: Commit and push if changed run: |- git add CHANGELOG.md doc/data git diff git config --global user.email "[email protected]" git config --global user.name "GitHub Action Bot" git commit -m "Updated README" -a || echo "No changes to commit" git push origin HEAD:changelog -f GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }} \ hub pull-request -f -b dev -h changelog \ --no-edit --no-maintainer-edits \ 'Auto-generated changelog' \ -m 'The following changelog has been automatically generated.' || # If the PR already exists, the force-push will have updated it. # It's fine if this step fails. true |
| You are visitor 01402520 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |