ci-gettext-statistics #66
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Distributed under the OSI-approved BSD 3-Clause License. | |
| # See accompanying file LICENSE-BSD for details. | |
| name: ci-gettext-statistics | |
| on: | |
| # Triggers the workflow based on a schedule. | |
| schedule: | |
| - cron: '0 0 * * 1' # CRON_dev | |
| - cron: '0 0 * * 2' # CRON_v2 | |
| - cron: '0 0 * * 3' # CRON_v3 | |
| # Triggers the workflow manually through the GitHub UI. | |
| workflow_dispatch: | |
| inputs: | |
| MODE: | |
| description: 'MODE input' | |
| required: true | |
| type: choice | |
| default: 'group' | |
| options: | |
| - 'single' | |
| - 'group' | |
| VERSION: | |
| description: 'VERSION input (for single mode)' | |
| required: true | |
| type: string | |
| default: 'main' | |
| VERSION_GROUP: | |
| description: 'VERSION_GROUP input (for group mode)' | |
| required: true | |
| type: choice | |
| default: 'dev' | |
| options: | |
| - 'dev' | |
| - 'v2' | |
| - 'v3' | |
| env: | |
| CRON_dev: '0 0 * * 1' | |
| CRON_v2: '0 0 * * 2' | |
| CRON_v3: '0 0 * * 3' | |
| jobs: | |
| precondition: | |
| if: ${{ ( github.repository == 'localizethedocs/python-docs-l10n' ) && | |
| ( ( github.event_name == 'schedule' ) || | |
| ( github.event_name == 'workflow_dispatch' ) ) }} | |
| runs-on: ${{ vars.RUNNER }} | |
| steps: | |
| - name: Print Contexts/Inputs/Variables/Secrets | |
| shell: bash | |
| run: | | |
| echo "[Contexts]" | |
| echo "github.job = ${{ github.job }}" | |
| echo "github.ref = ${{ github.ref }}" | |
| echo "github.ref_name = ${{ github.ref_name }}" | |
| echo "github.event_name = ${{ github.event_name }}" | |
| echo "github.event.schedule = ${{ github.event.schedule }}" | |
| echo "[Inputs]" | |
| echo "inputs.MODE = ${{ inputs.MODE }}" | |
| echo "inputs.VERSION = ${{ inputs.VERSION }}" | |
| echo "inputs.VERSION_GROUP = ${{ inputs.VERSION_GROUP }}" | |
| echo "[Variables]" | |
| echo "vars.RUNNER = ${{ vars.RUNNER }}" | |
| echo "vars.ACTOR_NAME = ${{ vars.ACTOR_NAME }}" | |
| echo "vars.ACTOR_EMAIL = ${{ vars.ACTOR_EMAIL }}" | |
| echo "vars.GPG_FINGERPRINT = ${{ vars.GPG_FINGERPRINT }}" | |
| echo "[Secrets]" | |
| echo "secrets.ACTOR_GITHUB_TOKEN = ${{ secrets.ACTOR_GITHUB_TOKEN }}" | |
| echo "secrets.GPG_PRIVATE_KEY = ${{ secrets.GPG_PRIVATE_KEY }}" | |
| echo "secrets.GPG_PASSPHRASE = ${{ secrets.GPG_PASSPHRASE }}" | |
| - name: Check Required Variables | |
| shell: bash | |
| run: | | |
| REQUIRED_VARIABLES_EXIST=true | |
| if [[ -z "${{ vars.RUNNER }}" ]]; then | |
| echo "vars.RUNNER is missing." | |
| REQUIRED_VARIABLES_EXIST=false | |
| fi | |
| if [[ -z "${{ vars.ACTOR_NAME }}" ]]; then | |
| echo "vars.ACTOR_NAME is missing." | |
| REQUIRED_VARIABLES_EXIST=false | |
| fi | |
| if [[ -z "${{ vars.ACTOR_EMAIL }}" ]]; then | |
| echo "vars.ACTOR_EMAIL is missing." | |
| REQUIRED_VARIABLES_EXIST=false | |
| fi | |
| if [[ -z "${{ vars.GPG_FINGERPRINT }}" ]]; then | |
| echo "vars.GPG_FINGERPRINT is missing." | |
| REQUIRED_VARIABLES_EXIST=false | |
| fi | |
| if [[ "${REQUIRED_VARIABLES_EXIST}" == "false" ]]; then | |
| echo "Error: Some variables are missing." >&2 | |
| exit 1 | |
| fi | |
| - name: Check Required Secrets | |
| shell: bash | |
| run: | | |
| REQUIRED_SECRETS_EXIST=true | |
| if [[ -z "${{ secrets.ACTOR_GITHUB_TOKEN }}" ]]; then | |
| echo "secrets.ACTOR_GITHUB_TOKEN is missing." | |
| REQUIRED_SECRETS_EXIST=false | |
| fi | |
| if [[ -z "${{ secrets.GPG_PRIVATE_KEY }}" ]]; then | |
| echo "secrets.GPG_PRIVATE_KEY is missing." | |
| REQUIRED_SECRETS_EXIST=false | |
| fi | |
| if [[ -z "${{ secrets.GPG_PASSPHRASE }}" ]]; then | |
| echo "secrets.GPG_PASSPHRASE is missing." | |
| REQUIRED_SECRETS_EXIST=false | |
| fi | |
| if [[ "${REQUIRED_SECRETS_EXIST}" == "false" ]]; then | |
| echo "Error: Some secrets are missing." >&2 | |
| exit 1 | |
| fi | |
| get-matrix: | |
| if: ${{ ( github.repository == 'localizethedocs/python-docs-l10n' ) && | |
| ( ( github.event_name == 'schedule' ) || | |
| ( github.event_name == 'workflow_dispatch' ) ) }} | |
| runs-on: ${{ vars.RUNNER }} | |
| outputs: | |
| MATRIX: ${{ steps.gmja.outputs.MATRIX }} | |
| MATRIX_NUM: ${{ steps.gmja.outputs.MATRIX_NUM }} | |
| steps: | |
| - name: Checkout to '${{ github.ref }}' | |
| uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ github.ref }} | |
| submodules: false | |
| - name: Get Outputs from Schedule | |
| if: ${{ github.event_name == 'schedule' }} | |
| id: gos | |
| uses: localizethedocs/ci-common/.github/actions/get-outputs-from-schedule@main | |
| with: | |
| schedule: ${{ github.event.schedule }} | |
| - name: Get VERSION_ARRAY from the versions.json file | |
| id: gvlv | |
| uses: localizethedocs/ci-common/.github/actions/get-version-array-from-versions-file@main | |
| with: | |
| mode: ${{ inputs.MODE || steps.gos.outputs.MODE }} | |
| version: ${{ inputs.VERSION || steps.gos.outputs.VERSION }} | |
| version-group: ${{ inputs.VERSION_GROUP || steps.gos.outputs.VERSION_GROUP }} | |
| version-filter: 'all' | |
| - name: Get MATRIX from the JSON Arraies | |
| id: gmja | |
| uses: localizethedocs/ci-common/.github/actions/get-matrix-from-json-arraies@main | |
| with: | |
| matrix-type: 'version' | |
| version-array: ${{ steps.gvlv.outputs.VERSION_ARRAY }} | |
| caller: | |
| needs: [ 'precondition', 'get-matrix' ] | |
| if: ${{ ( github.repository == 'localizethedocs/python-docs-l10n' ) && | |
| ( needs.get-matrix.outputs.MATRIX_NUM != '0' ) && | |
| ( ( github.event_name == 'schedule' ) || | |
| ( github.event_name == 'workflow_dispatch' ) ) }} | |
| strategy: | |
| matrix: ${{ fromJSON(needs.get-matrix.outputs.MATRIX) }} | |
| fail-fast: false | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ matrix.VERSION }} | |
| cancel-in-progress: true | |
| uses: localizethedocs/ci-common/.github/workflows/use-gettext-statistics.yml@main | |
| with: | |
| ENABLE: true | |
| RUNNER: ${{ vars.RUNNER }} | |
| CHECKOUT: ${{ github.ref }} | |
| VERSION: ${{ matrix.VERSION }} | |
| ACTOR_NAME: ${{ vars.ACTOR_NAME }} | |
| ACTOR_EMAIL: ${{ vars.ACTOR_EMAIL }} | |
| GPG_FINGERPRINT: ${{ vars.GPG_FINGERPRINT }} | |
| secrets: | |
| ACTOR_GITHUB_TOKEN: ${{ secrets.ACTOR_GITHUB_TOKEN }} | |
| GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }} | |
| GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} |