From ae83ac7be2c5f3e66794c7fd23ded4e63c023898 Mon Sep 17 00:00:00 2001 From: macdonst Date: Mon, 13 May 2024 10:04:59 -0400 Subject: [PATCH] Update CI Signed-off-by: macdonst --- .github/workflows/ci.yml | 98 ++++++++++++++++------------------------ 1 file changed, 38 insertions(+), 60 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 30736b8..ac85235 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,6 +1,6 @@ name: Node CI -# Push tests pushes; PR tests merges +# Push tests commits; pull_request tests PR merges on: [ push, pull_request ] defaults: @@ -8,86 +8,64 @@ defaults: 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'