GitHub Action
accum-inpage-downloads
Userlog • Changelog • Dependencies • Known issues • Copyright and License
GitHub composite action to request and accumulate downloads statistic from a value on a web page.
Tutorial to use with: https://github.com/andry81-devops/accum-content
All tutorials: https://github.com/andry81/index#tutorials
Features:
-
Repository to track and repository to store traffic statistic can be different, and you may directly point the statistic as commits list:
https://github.com/{{REPO_OWNER}}/{{REPO}}--gh-stats/commits/master/traffic/board/phpbb
-
Workflow is used accum-downloads.sh bash script to accumulate traffic downloads
-
The script accumulates statistic both into a single file and into a set of files grouped by year and allocated per day:
traffic/downloads/mypage/by_year/YYYY/YYYY-MM-DD.json
Functionality of the script:
-
Can skip warnings and errors (
CONTINUE_ON_INVALID_INPUT=1
,CONTINUE_ON_EMPTY_CHANGES=1
,CONTINUE_ON_RESIDUAL_CHANGES=1
) -
Can generate textual changelog file with notes about changes per commit (including changes absence in case of skipped errors;
ENABLE_GENERATE_CHANGELOG_FILE=1
) -
Can insert the time string in format
HH:MMZ
additionally after the date in each commit message (by default inserts only a date for shorter commit messages;ENABLE_COMMIT_MESSAGE_DATE_WITH_TIME=1
) -
Can print curl response in case of an error (by default only the progress prints;
ENABLE_PRINT_CURL_RESPONSE_ON_ERROR=1
)
Warning You must replace all placeholder into respective values:
{{REPO_OWNER}}
-> repository owner{{REPO}}
-> your repository
.github/workflows/accum-mypage-download-stats.yml
:
name: mypage download stats updating every 4 hours
on:
schedule:
- cron: "0 */4 * * *"
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
jobs:
accum-mypage-download-stats:
runs-on: ubuntu-latest
steps:
- uses: {{REPO_OWNER}}/gh-action--accum-inpage-downloads@master
with:
# CAUTION: Beware of double quotes strip in case of usage yaml `>-` operator or even a single-quotted string!
query_url: http://www.mypage.net/index.html
downloads_sed_regexp: s/.*Downloaded:[^0-9]*([0-9.]+).*/\1/p
curl_flags: >-
-v
-H 'Cache-Control: no-cache'
deps_repo_owner: {{REPO_OWNER}}
deps_repo_branch: master
deps_repo_read_token: ${{ github.token }}
commit_msg_entity: my-download-link-1
output_repo_owner: {{REPO_OWNER}}
output_repo: {{REPO}}--download-stats
output_repo_branch: master
output_repo_dir: traffic/downloads/mypage
output_repo_write_token: ${{ secrets.READ_STATS_TOKEN }}
#env: >-
# CONTINUE_ON_INVALID_INPUT=1
# CONTINUE_ON_EMPTY_CHANGES=1
# CONTINUE_ON_RESIDUAL_CHANGES=1
# ENABLE_GENERATE_CHANGELOG_FILE=1
# ENABLE_COMMIT_MESSAGE_DATE_WITH_TIME=1
# ENABLE_PRINT_CURL_RESPONSE_ON_ERROR=1
# CHANGELOG_FILE=changelog.txt
Note You can use
secrets.READ_STATS_TOKEN
instead ofsecrets.WRITE_STATS_TOKEN
as long as both repositories under the same repository owner.
Warning You must use different values for
deps_repo_owner
andoutput_repo_owner
if respective repositories actually under different repository owners.
Note See REUSE section for details if you have multiple repositories and want to store all GitHub workflow scripts (
.github/workflows/*.yml
) in a single repository.
https://github.com/andry81-devops/accum-content#known-issues
https://github.com/andry81-devops/accum-content#last-known-issues-updates
Code and documentation copyright 2021 Andrey Dibrov. Code released under MIT License