From 31a3572062613f3cb1039287f04fc3ea97c7c4c7 Mon Sep 17 00:00:00 2001 From: Justin Spahr-Summers Date: Mon, 18 Nov 2024 14:29:14 +0000 Subject: [PATCH] CI workflow --- .github/workflows/main.yml | 59 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 .github/workflows/main.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..20dd444 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,59 @@ + +on: + push: + branches: + - main + pull_request: + release: + types: [published] + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: 18 + cache: npm + + - run: npm ci + - run: npm run build + + - name: Test creation from template + run: | + ./build/index.js test-server --name test-server --description "Here is a test server" + + - name: Validate generated project + run: npm install && npm run build && npm link + working-directory: test-server + + publish: + runs-on: ubuntu-latest + if: github.event_name == 'release' + environment: release + needs: build + + permissions: + contents: read + id-token: write + + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: 18 + cache: npm + registry-url: 'https://registry.npmjs.org' + + - run: npm ci + + # TODO: Add --provenance once the repo is public + - run: npm publish --access public + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}