Merge pull request #1443 from 18F/staging #948
This file contains 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: CI workflow | |
on: | |
push: | |
pull_request: | |
jobs: | |
lint-js: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Code Checkout | |
uses: actions/checkout@v4 | |
- name: Install Node | |
uses: actions/setup-node@v4 | |
with: | |
node-version-file: ".nvmrc" | |
cache: 'npm' | |
- name: Install node dependencies | |
# Fix for installing puppeteer which is a pa11y dependency. | |
# Remove when this GitHub issue is resolved: https://github.com/puppeteer/puppeteer/issues/12094 | |
env: | |
PUPPETEER_DOWNLOAD_BASE_URL: https://storage.googleapis.com/chrome-for-testing-public | |
run: npm ci --timing | |
- name: Lint javascript | |
run: npm run lint:js | |
lint-styles: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Code Checkout | |
uses: actions/checkout@v4 | |
- name: Install Node | |
uses: actions/setup-node@v4 | |
with: | |
node-version-file: ".nvmrc" | |
cache: 'npm' | |
- name: Install node dependencies | |
# Fix for installing puppeteer which is a pa11y dependency. | |
# Remove when this GitHub issue is resolved: https://github.com/puppeteer/puppeteer/issues/12094 | |
env: | |
PUPPETEER_DOWNLOAD_BASE_URL: https://storage.googleapis.com/chrome-for-testing-public | |
run: npm ci --verbose --timing | |
- name: Lint SCSS | |
run: npm run lint:styles | |
audit-dependencies: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Code checkout | |
uses: actions/checkout@v4 | |
- name: Install Node | |
uses: actions/setup-node@v4 | |
with: | |
node-version-file: ".nvmrc" | |
cache: 'npm' | |
- name: Install node dependencies | |
run: npm ci | |
- name: Validate npm package signatures | |
run: npm audit signatures | |
test: | |
needs: | |
- lint-js | |
- lint-styles | |
- audit-dependencies | |
runs-on: ubuntu-latest | |
steps: | |
- name: Code Checkout | |
uses: actions/checkout@v4 | |
- name: Install Node | |
uses: actions/setup-node@v4 | |
with: | |
node-version-file: ".nvmrc" | |
cache: 'npm' | |
- name: Install node dependencies | |
# Fix for installing puppeteer which is a pa11y dependency. | |
# Remove when this GitHub issue is resolved: https://github.com/puppeteer/puppeteer/issues/12094 | |
env: | |
PUPPETEER_DOWNLOAD_BASE_URL: https://storage.googleapis.com/chrome-for-testing-public | |
run: npm ci --timing | |
- name: Run tests | |
run: npm test | |
deploy_dev: | |
needs: | |
- lint-js | |
- lint-styles | |
- audit-dependencies | |
- test | |
if: github.ref == 'refs/heads/develop' | |
uses: 18F/analytics.usa.gov/.github/workflows/deploy.yml@develop | |
with: | |
API_APP_NAME: ${{ vars.API_APP_NAME_DEV }} | |
API_FQDN: ${{ vars.API_FQDN_DEV }} | |
API_PORT: ${{ vars.API_PORT }} | |
APP_NAME: ${{ vars.APP_NAME_DEV }} | |
APP_URL: ${{ vars.APP_URL_DEV }} | |
CF_ORGANIZATION_NAME: ${{ vars.CF_ORGANIZATION_NAME }} | |
CF_SPACE_NAME: ${{ vars.CF_SPACE_NAME_DEV }} | |
NEW_RELIC_APP_NAME: ${{ vars.NEW_RELIC_APP_NAME_DEV }} | |
S3_BUCKET_URL: ${{ vars.S3_BUCKET_URL_DEV }} | |
S3_SERVICE_NAME: ${{ vars.S3_SERVICE_NAME_DEV }} | |
secrets: | |
API_DATA_GOV_SECRET: ${{ secrets.API_DATA_GOV_SECRET_DEV }} | |
CF_USERNAME: ${{ secrets.CF_USERNAME_DEV }} | |
CF_PASSWORD: ${{ secrets.CF_PASSWORD_DEV }} | |
NEW_RELIC_LICENSE_KEY: ${{ secrets.NEW_RELIC_LICENSE_KEY_DEV }} | |
deploy_stg: | |
needs: | |
- lint-js | |
- lint-styles | |
- audit-dependencies | |
- test | |
if: github.ref == 'refs/heads/staging' | |
uses: 18F/analytics.usa.gov/.github/workflows/deploy.yml@develop | |
with: | |
API_APP_NAME: ${{ vars.API_APP_NAME_STG }} | |
API_FQDN: ${{ vars.API_FQDN_STG }} | |
API_PORT: ${{ vars.API_PORT }} | |
APP_NAME: ${{ vars.APP_NAME_STG }} | |
APP_URL: ${{ vars.APP_URL_STG }} | |
CF_ORGANIZATION_NAME: ${{ vars.CF_ORGANIZATION_NAME }} | |
CF_SPACE_NAME: ${{ vars.CF_SPACE_NAME_STG }} | |
NEW_RELIC_APP_NAME: ${{ vars.NEW_RELIC_APP_NAME_STG }} | |
S3_BUCKET_URL: ${{ vars.S3_BUCKET_URL_STG }} | |
S3_SERVICE_NAME: ${{ vars.S3_SERVICE_NAME_STG }} | |
secrets: | |
API_DATA_GOV_SECRET: ${{ secrets.API_DATA_GOV_SECRET_STG }} | |
CF_USERNAME: ${{ secrets.CF_USERNAME_STG }} | |
CF_PASSWORD: ${{ secrets.CF_PASSWORD_STG }} | |
NEW_RELIC_LICENSE_KEY: ${{ secrets.NEW_RELIC_LICENSE_KEY_STG }} | |
deploy_prd: | |
needs: | |
- lint-js | |
- lint-styles | |
- audit-dependencies | |
- test | |
if: github.ref == 'refs/heads/master' | |
uses: 18F/analytics.usa.gov/.github/workflows/deploy.yml@develop | |
with: | |
API_APP_NAME: ${{ vars.API_APP_NAME_PRD }} | |
API_FQDN: ${{ vars.API_FQDN_PRD }} | |
API_PORT: ${{ vars.API_PORT }} | |
APP_NAME: ${{ vars.APP_NAME_PRD }} | |
APP_URL: ${{ vars.APP_URL_PRD }} | |
CF_ORGANIZATION_NAME: ${{ vars.CF_ORGANIZATION_NAME }} | |
CF_SPACE_NAME: ${{ vars.CF_SPACE_NAME_PRD }} | |
NEW_RELIC_APP_NAME: ${{ vars.NEW_RELIC_APP_NAME_PRD }} | |
S3_BUCKET_URL: ${{ vars.S3_BUCKET_URL_PRD }} | |
S3_SERVICE_NAME: ${{ vars.S3_SERVICE_NAME_PRD }} | |
secrets: | |
API_DATA_GOV_SECRET: ${{ secrets.API_DATA_GOV_SECRET_PRD }} | |
CF_USERNAME: ${{ secrets.CF_USERNAME_PRD }} | |
CF_PASSWORD: ${{ secrets.CF_PASSWORD_PRD }} | |
NEW_RELIC_LICENSE_KEY: ${{ secrets.NEW_RELIC_LICENSE_KEY_PRD }} |