Skip to content

Test, build, publish #118

Test, build, publish

Test, build, publish #118

Workflow file for this run

name: 'Test, build, publish'
on:
push:
branches:
- main
pull_request:
workflow_dispatch:
permissions:
contents: write
id-token: write
jobs:
install-dependencies:
name: Install Node.js dependencies
runs-on: ubuntu-latest
env:
cache-name: cache-node-modules
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up Node
uses: actions/setup-node@v3
with:
node-version: 16.14.0
- name: Compute hash key
id: hash-key
run: echo "hash=${{ hashFiles('**/package-lock.json') }}" >> "$GITHUB_OUTPUT"
- name: Cache Node modules
id: cache-npm
uses: actions/cache@v3
with:
path: node_modules
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ steps.hash-key.outputs.hash }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
${{ runner.os }}-
- name: Install dependencies
run: npm ci
outputs:
cache-key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ steps.hash-key.outputs.hash }}
# check-prettier:
# name: Check Prettier formatting
# runs-on: ubuntu-latest
# needs: [install-dependencies]
# steps:
# - name: Checkout repository
# uses: actions/checkout@v3
# - name: Set up Node
# uses: actions/setup-node@v3
# with:
# node-version: 16.14.0
# - name: Restore dependencies
# uses: actions/cache@v3
# with:
# path: node_modules
# key: ${{ needs.install-dependencies.outputs.cache-key }}
# - name: Check prettier formatting
# run: npm run format:check
# check-types:
# name: Check TypeScript
# runs-on: ubuntu-latest
# needs: [install-dependencies]
# steps:
# - name: Checkout repository
# uses: actions/checkout@v3
# - name: Set up Node
# uses: actions/setup-node@v3
# with:
# node-version: 16.14.0
# - name: Restore dependencies
# uses: actions/cache@v3
# with:
# path: node_modules
# key: ${{ needs.install-dependencies.outputs.cache-key }}
# - name: Check types
# run: npx tsc
# run-cypress:
# name: Run Cypress tests
# runs-on: ubuntu-latest
# needs: [install-dependencies]
# steps:
# - name: Checkout repository
# uses: actions/checkout@v3
# - name: Set up Node
# uses: actions/setup-node@v3
# with:
# node-version: 16.14.0
# - name: Restore dependencies
# uses: actions/cache@v3
# with:
# path: node_modules
# key: ${{ needs.install-dependencies.outputs.cache-key }}
# - name: Run Cypress tests
# uses: cypress-io/github-action@v4
# with:
# build: npm run build
# start: npx --yes http-server static/
publish:
name: Publish to npm
# if: github.event_name == 'push' && github.ref == 'refs/heads/main'
needs: [install-dependencies, check-prettier, run-cypress, check-types]

Check failure on line 108 in .github/workflows/build.yml

View workflow run for this annotation

GitHub Actions / Test, build, publish

Invalid workflow file

The workflow is not valid. .github/workflows/build.yml (Line: 108, Col: 35): Job 'publish' depends on unknown job 'check-prettier'. .github/workflows/build.yml (Line: 108, Col: 51): Job 'publish' depends on unknown job 'run-cypress'.
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Set up Node
uses: actions/setup-node@v3
with:
node-version: 16.14.0
- name: Restore dependencies
uses: actions/cache@v3
with:
path: node_modules
key: ${{ needs.install-dependencies.outputs.cache-key }}
- name: Build the package
run: npm run build
- name: Run semantic release bot
run: npx semantic-release --dry-run
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: arn:aws:iam::457031429343:role/github-actions-browser-sdk-role
aws-region: us-east-1
- name: Upload to S3 with versioning
run: |
# Create version directory based on package version
VERSION=$(node -p "require('./package.json').version")
# Upload to versioned path
aws s3 cp static/cdn.js s3://tbx-assets/browser-sdk/$VERSION/cdn.js --acl public-read
# Create a redirect object for "latest" that points to the versioned file
aws s3api put-object \
--bucket tbx-assets \
--key browser-sdk/latest/cdn.js \
--website-redirect-location /browser-sdk/$VERSION/cdn.js \
--acl public-read