| # Copyright (c) 2021, 2022 Nordic Semiconductor ASA |
| # SPDX-License-Identifier: Apache-2.0 |
| |
| # Make a snapshot of open bugs as a python pickle file, compressed |
| # using xz. Upload the xz file to Amazon S3. |
| |
| name: Bug Snapshot |
| |
| on: |
| workflow_dispatch: |
| branches: [main] |
| schedule: |
| # Run daily at 00:05 |
| - cron: '5 00 * * *' |
| |
| permissions: |
| contents: read |
| |
| jobs: |
| make_bugs_pickle: |
| name: Make bugs pickle |
| runs-on: ubuntu-24.04 |
| if: github.repository_owner == 'zephyrproject-rtos' |
| |
| steps: |
| - name: Checkout |
| uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 |
| |
| - name: Set up Python |
| uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0 |
| with: |
| python-version: 3.12 |
| cache: pip |
| cache-dependency-path: scripts/requirements-actions.txt |
| |
| - name: Install Python packages |
| run: | |
| pip install -r scripts/requirements-actions.txt --require-hashes |
| |
| |
| - name: Snapshot bugs |
| env: |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
| run: | |
| BUGS_PICKLE_FILENAME="zephyr-bugs-$(date -I).pickle.xz" |
| BUGS_PICKLE_PATH="${RUNNER_TEMP}/${BUGS_PICKLE_FILENAME}" |
| |
| set -euo pipefail |
| python3 scripts/make_bugs_pickle.py | xz > ${BUGS_PICKLE_PATH} |
| |
| echo "BUGS_PICKLE_FILENAME=${BUGS_PICKLE_FILENAME}" >> ${GITHUB_ENV} |
| echo "BUGS_PICKLE_PATH=${BUGS_PICKLE_PATH}" >> ${GITHUB_ENV} |
| |
| - name: Configure AWS Credentials |
| uses: aws-actions/configure-aws-credentials@b47578312673ae6fa5b5096b330d9fbac3d116df # v4.2.1 |
| with: |
| aws-access-key-id: ${{ vars.AWS_BUILDS_ZEPHYR_BUG_SNAPSHOT_ACCESS_KEY_ID }} |
| aws-secret-access-key: ${{ secrets.AWS_BUILDS_ZEPHYR_BUG_SNAPSHOT_SECRET_ACCESS_KEY }} |
| aws-region: us-east-1 |
| |
| - name: Upload to AWS S3 |
| run: | |
| REPOSITORY_NAME="${GITHUB_REPOSITORY#*/}" |
| |
| PUBLISH_BUCKET="builds.zephyrproject.org" |
| PUBLISH_DOMAIN="builds.zephyrproject.io" |
| if [ "${{github.event_name}}" = "schedule" ]; then |
| PUBLISH_ROOT="${REPOSITORY_NAME}/bug-snapshot/daily" |
| else |
| PUBLISH_ROOT="${REPOSITORY_NAME}/bug-snapshot" |
| fi |
| |
| PUBLISH_UPLOAD_URI="s3://${PUBLISH_BUCKET}/${PUBLISH_ROOT}/${BUGS_PICKLE_FILENAME}" |
| PUBLISH_DOWNLOAD_URI="https://${PUBLISH_DOMAIN}/${PUBLISH_ROOT}/${BUGS_PICKLE_FILENAME}" |
| |
| aws s3 cp --quiet ${BUGS_PICKLE_PATH} ${PUBLISH_UPLOAD_URI} |
| echo "Bug pickle is available at: ${PUBLISH_DOWNLOAD_URI}" >> ${GITHUB_STEP_SUMMARY} |