Skip to content

species fix and sourcelist #391

species fix and sourcelist

species fix and sourcelist #391

Workflow file for this run

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."