From 465eedad3fcd3c14218bd789c36913974bd21c50 Mon Sep 17 00:00:00 2001 From: Tyler Hall Date: Thu, 31 Oct 2024 18:51:06 +0000 Subject: [PATCH] ci(data-protocols): add for testing and publishing #1059 --- .github/workflows/data-protocols.yml | 132 +++++++++++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100644 .github/workflows/data-protocols.yml diff --git a/.github/workflows/data-protocols.yml b/.github/workflows/data-protocols.yml new file mode 100644 index 000000000..5198ce839 --- /dev/null +++ b/.github/workflows/data-protocols.yml @@ -0,0 +1,132 @@ +name: 📊🛠 Test & Deploy Data-Protocols Lib + +on: + pull_request: + branches: + - main + paths: + - "data-protocols/**" + push: + branches: + - main + paths: + - "data-protocols/**" + + # Perform a release using a workflow dispatch + workflow_dispatch: + inputs: + version: + description: "semver version to bump to" + required: true + +defaults: + run: + shell: bash + +jobs: + + test: + if: github.event_name != 'workflow_dispatch' + runs-on: ubuntu-latest + steps: + - name: ⬇️ Checkout repo + uses: actions/checkout@v4 + + - name: ⎔ Setup node + uses: actions/setup-node@v4 + with: + node-version: 20 + + - name: 📥 Download deps + working-directory: data-protocols + run: | + npm i + + - name: ⚡ Run Tests + working-directory: data-protocols + run: | + npm test + env: + CI: true + + test-integration: + if: github.event_name != 'workflow_dispatch' + runs-on: ubuntu-latest + steps: + - name: ⬇️ Checkout repo + uses: actions/checkout@v4 + + - name: ⎔ Setup node + uses: actions/setup-node@v4 + with: + node-version: 20 + + - name: 📥 Download deps + working-directory: data-protocols + run: | + npm i + + - name: ⚡ Run Tests + working-directory: data-protocols + run: | + npm run test:integration + env: + CI: true + + release: + # Releases are performed via a workflow dispatch + if: github.event_name == 'workflow_dispatch' + runs-on: ubuntu-latest + concurrency: + group: release + steps: + - name: ⬇️ Checkout repo + uses: actions/checkout@v4 + with: + fetch-depth: 0 + ref: main + + - name: ⎔ Setup node + uses: actions/setup-node@v4 + with: + node-version: 20 + registry-url: "https://registry.npmjs.org" + + - name: 👀 Env + run: | + echo "Event name: ${{ github.event_name }}" + echo "Git ref: ${{ github.ref }}" + echo "GH actor: ${{ github.actor }}" + echo "SHA: ${{ github.sha }}" + VER=`node --version`; echo "Node ver: $VER" + VER=`npm --version`; echo "npm ver: $VER" + + - name: 🤓 Set Git User + run: | + git config --global user.name "${{ github.actor }}" + git config --global user.email "${{ github.actor }}@users.noreply.github.com" + + - name: ✊ Bump + id: bump + uses: hyper63/hyper-ci-bump@v2.0.3 + with: + bump-to: ${{ github.event.inputs.version }} + package: data-protocols + + - name: ⬆️ Push + run: | + git push + git push --tags + + - name: 📥 Download deps + working-directory: data-protocols + run: | + npm i + + - name: 🦠 Publish to NPM + working-directory: data-protocols + run: | + npm run build + npm publish --access=public + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}