species fix and sourcelist #391
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
| name: PR CI | |
| on: | |
| pull_request: | |
| branches: ["main", "test"] | |
| jobs: | |
| set-deployment-environment: | |
| name: Set the GitHub deployment environment to use based on git branch. | |
| runs-on: ubuntu-latest | |
| outputs: | |
| deployment_environment: ${{ steps.determine-env.outputs.deployment_environment }} | |
| steps: | |
| - id: determine-env | |
| run: | | |
| # For pull_request events, use base_ref (target branch) | |
| # For push events, use ref_name (current branch) | |
| TARGET_BRANCH="${{ github.base_ref }}" | |
| if [ "$TARGET_BRANCH" = "main" ]; then | |
| echo "deployment_environment=production" >> $GITHUB_OUTPUT | |
| elif [ "$TARGET_BRANCH" = "test" ]; then | |
| echo "deployment_environment=test" >> $GITHUB_OUTPUT | |
| fi | |
| detect-changes: | |
| name: Check for file changes for ${{ needs.set-deployment-environment.outputs.deployment_environment }} deployment environment | |
| needs: set-deployment-environment | |
| runs-on: ubuntu-latest | |
| outputs: | |
| api: ${{ steps.changes.outputs.api }} | |
| ui: ${{ steps.changes.outputs.ui }} | |
| occurrencegeojob: ${{ steps.changes.outputs.occurrencegeojob }} | |
| steps: | |
| - uses: actions/checkout@v3 | |
| - uses: dorny/paths-filter@v3 | |
| id: changes | |
| with: | |
| filters: | | |
| api: | |
| - 'src/API/**' | |
| - '.github/**' | |
| ui: | |
| - 'src/UI/**' | |
| - '.github/**' | |
| occurrencegeojob: | |
| - 'src/OccurrenceGeoJob/**' | |
| - '.github/**' | |
| build-occurrencegeojob: | |
| name: Build and Test Occurrence Geo Job for ${{ needs.set-deployment-environment.outputs.deployment_environment }} deployment environment | |
| needs: [set-deployment-environment, detect-changes] | |
| if: needs.detect-changes.outputs.occurrencegeojob == 'true' | |
| runs-on: ubuntu-latest | |
| defaults: | |
| run: | |
| working-directory: src/OccurrenceGeoJob | |
| strategy: | |
| matrix: | |
| node-version: [20.x] | |
| steps: | |
| - uses: actions/checkout@v3 | |
| - name: Use Node.js ${{ matrix.node-version }} | |
| uses: actions/setup-node@v3 | |
| with: | |
| node-version: ${{ matrix.node-version }} | |
| cache: "npm" | |
| cache-dependency-path: "**/package-lock.json" | |
| - name: Install packages | |
| run: npm ci | |
| - name: Build | |
| run: npm run build | |
| - name: Lint | |
| run: npm run lint | |
| skip-occurrencegeojob: | |
| name: Skip Build - No OccurrenceGeoJob Changes for ${{ needs.set-deployment-environment.outputs.deployment_environment }} deployment environment | |
| if: needs.detect-changes.outputs.occurrencegeojob != 'true' | |
| needs: [set-deployment-environment, detect-changes] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - run: echo "No OccurrenceGeoJob changes. Skipping OccurrenceGeoJob build." | |
| build-api: | |
| name: Build and Test API for ${{ needs.set-deployment-environment.outputs.deployment_environment }} deployment environment | |
| needs: [set-deployment-environment, detect-changes] | |
| if: needs.detect-changes.outputs.api == 'true' | |
| runs-on: ubuntu-latest | |
| defaults: | |
| run: | |
| working-directory: src/API | |
| strategy: | |
| matrix: | |
| node-version: [22.x] | |
| steps: | |
| - uses: actions/checkout@v3 | |
| - name: Use Node.js ${{ matrix.node-version }} | |
| uses: actions/setup-node@v3 | |
| with: | |
| node-version: ${{ matrix.node-version }} | |
| cache: "npm" | |
| cache-dependency-path: "**/package-lock.json" | |
| - name: Install packages | |
| run: npm ci | |
| - name: Build | |
| run: npm run build | |
| - name: Lint | |
| run: npm run lint | |
| skip-api: | |
| name: Skip Build - No API Changes for ${{ needs.set-deployment-environment.outputs.deployment_environment }} deployment environment | |
| needs: [set-deployment-environment, detect-changes] | |
| if: needs.detect-changes.outputs.api != 'true' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - run: echo "No API changes. Skipping API build." | |
| build-ui: | |
| name: Build and Test UI for ${{ needs.set-deployment-environment.outputs.deployment_environment }} deployment environment | |
| needs: [set-deployment-environment, detect-changes] | |
| if: needs.detect-changes.outputs.ui == 'true' | |
| runs-on: ubuntu-latest | |
| defaults: | |
| run: | |
| working-directory: src/UI | |
| strategy: | |
| matrix: | |
| node-version: [18.x] | |
| steps: | |
| - uses: actions/checkout@v3 | |
| - name: Use Node.js ${{ matrix.node-version }} | |
| uses: actions/setup-node@v3 | |
| with: | |
| node-version: ${{ matrix.node-version }} | |
| cache: "npm" | |
| cache-dependency-path: "**/package-lock.json" | |
| - name: Install packages | |
| run: npm ci | |
| - name: Build | |
| run: npm run build | |
| - name: Lint | |
| run: npm run lint | |
| skip-ui: | |
| name: Skip Build - No UI Changes for ${{ needs.set-deployment-environment.outputs.deployment_environment }} deployment environment | |
| needs: [set-deployment-environment, detect-changes] | |
| if: needs.detect-changes.outputs.ui != 'true' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - run: echo "No UI changes. Skipping UI build." |