diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 58046629c..ffa87f48f 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -4,7 +4,16 @@ name: CI on: - workflow_dispatch: ~ + workflow_dispatch: + inputs: + release: + description: 'PMS Release Channel' + required: false + default: 'public' + type: choice + options: + - public + - beta pull_request: ~ push: branches: @@ -71,17 +80,26 @@ jobs: PLEXAPI_AUTH_SERVER_BASEURL: http://127.0.0.1:32400 PLEXAPI_PLEXAPI_TIMEOUT: "60" PLEX_CONTAINER: plexinc/pms-docker - PLEX_CONTAINER_TAG: latest + PLEX_CONTAINER_TAG: ${{ matrix.release == 'beta' && 'plexpass' || 'latest'}} strategy: fail-fast: false max-parallel: 3 matrix: plex: ['unclaimed', 'claimed'] + release: + - ${{ inputs.release || 'public' }} is-master: - ${{ github.ref == 'refs/heads/master' }} + is-workflow-dispatch: + - ${{ github.event_name == 'workflow_dispatch' }} exclude: + # For PRs, skip claimed tests unless manually triggered - is-master: false plex: claimed + is-workflow-dispatch: false + # Always skip unclaimed beta tests (even for manual triggers) + - release: beta + plex: unclaimed steps: - name: Check out code from Github uses: actions/checkout@v6 @@ -223,11 +241,20 @@ jobs: strategy: matrix: plex: ['unclaimed', 'claimed'] + release: + - ${{ inputs.release || 'public' }} is-master: - ${{ github.ref == 'refs/heads/master' }} + is-workflow-dispatch: + - ${{ github.event_name == 'workflow_dispatch' }} exclude: + # For PRs, skip claimed tests unless manually triggered - is-master: false plex: claimed + is-workflow-dispatch: false + # Always skip unclaimed beta tests (even for manual triggers) + - release: beta + plex: unclaimed steps: - name: Check out code from GitHub uses: actions/checkout@v6 @@ -270,4 +297,4 @@ jobs: env: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} with: - flags: ${{ matrix.plex }} + flags: ${{ join(fromJSON(format('["{0}", "{1}"]', matrix.plex, matrix.release)), ',') }}