Skip to content

Commit

Permalink
Update CI
Browse files Browse the repository at this point in the history
Signed-off-by: macdonst <[email protected]>
  • Loading branch information
macdonst committed May 13, 2024
1 parent a470f50 commit ae83ac7
Showing 1 changed file with 38 additions and 60 deletions.
98 changes: 38 additions & 60 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,93 +1,71 @@
name: Node CI

# Push tests pushes; PR tests merges
# Push tests commits; pull_request tests PR merges
on: [ push, pull_request ]

defaults:
run:
shell: bash

jobs:
# Run tests on PR branches
build_prs:
name: Run tests on PR branch
if: github.ref != 'refs/heads/main' || github.event_name == 'pull_request'
runs-on: ubuntu-latest

steps:
- name: Check out repo
uses: actions/checkout@v4

- name: Set up Node.js
uses: actions/setup-node@v4

- name: Install
run: npm install

- name: Typescript compile
run: tsc

- name: Run tests
run: npm run test

# Deploy the build
deploy_staging:
name: Deploy staging
if: github.ref == 'refs/heads/main' && github.event_name == 'push' # Don't run twice for PRs (for now)
test:
# Setup
runs-on: ubuntu-latest
concurrency:
group: staging_${{ github.repository }}

# Go
steps:
- name: Check out repo
uses: actions/checkout@v4

- name: Set up Node.js
uses: actions/setup-node@v4
with:
registry-url: https://registry.npmjs.org/

- name: Install
run: npm install
run: npm ci

- name: Typescript compile
run: tsc
- name: Run Tests
run: npm test
env:
CI: true

- name: Run tests
run: npm run test
# ----- Only git tag testing + package publishing beyond this point ----- #

- name: Deploy to staging
uses: beginner-corp/actions/deploy@main
with:
begin_token: ${{ secrets.BEGIN_TOKEN }}
begin_env_name: staging
channel: 'main'

# Deploy the build
deploy_production:
name: Deploy production
if: startsWith(github.ref, 'refs/tags/v') && github.event_name == 'push' # Don't run twice for PRs (for now)
# Publish to package registries
publish:
# Setup
if: startsWith(github.ref, 'refs/tags/v')
runs-on: ubuntu-latest
concurrency:
group: production_${{ github.repository }}

# Go
steps:
- name: Check out repo
uses: actions/checkout@v4

- name: Set up Node.js
uses: actions/setup-node@v4
with:
registry-url: https://registry.npmjs.org/

- name: Install
run: npm install

- name: Typescript compile
run: tsc
run: npm ci

- name: Run Tests
run: npm test
env:
CI: true

# Publish to npm
- name: Publish @RC to npm
if: contains(github.ref, 'RC')
run: npm publish --tag RC --access public
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

- name: Publish @latest to npm
if: contains(github.ref, 'RC') == false #'!contains()'' doesn't work lol
run: npm publish --access public
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

- name: Run tests
run: npm run test

- name: Deploy to production
uses: beginner-corp/actions/deploy@main
with:
begin_token: ${{ secrets.BEGIN_TOKEN }}
begin_env_name: production
channel: 'main'

0 comments on commit ae83ac7

Please sign in to comment.