name: CI Pipeline on: push env: IMAGE: registry.gitlab.com/hosttoday/ht-docker-node:npmci NPMCI_TOKEN_NPM: ${{secrets.NPMCI_TOKEN_NPM}} NPMCI_TOKEN_NPM2: ${{secrets.NPMCI_TOKEN_NPM2}} NPMCI_GIT_GITHUBTOKEN: ${{secrets.NPMCI_GIT_GITHUBTOKEN}} NPMCI_URL_CLOUDLY: ${{secrets.NPMCI_URL_CLOUDLY}} jobs: security: runs-on: ubuntu-latest continue-on-error: true container: image: ${{ env.IMAGE }} outputs: dummy: ${{ true }} steps: - uses: actions/checkout@v3 - name: Install pnpm and npmci run: | pnpm install -g pnpm pnpm install -g @shipzone/npmci - name: Run npm prepare run: npmci npm prepare - name: Audit production dependencies run: | npmci command npm config set registry https://registry.npmjs.org npmci command pnpm audit --audit-level=high --prod continue-on-error: true - name: Audit development dependencies run: | npmci command npm config set registry https://registry.npmjs.org npmci command pnpm audit --audit-level=high --dev continue-on-error: true test: needs: security runs-on: ubuntu-latest container: image: ${{ env.IMAGE }} steps: - uses: actions/checkout@v3 - name: Test stable run: | npmci node install stable npmci npm install npmci npm test - name: Test build run: | npmci node install stable npmci npm install npmci npm build release: needs: test if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') runs-on: ubuntu-latest container: image: ${{ env.IMAGE }} steps: - uses: actions/checkout@v3 - name: Release run: | npmci node install stable npmci npm publish metadata: needs: test if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') runs-on: ubuntu-latest container: image: ${{ env.IMAGE }} continue-on-error: true steps: - uses: actions/checkout@v3 - name: Code quality run: | npmci command npm install -g typescript npmci npm prepare npmci npm install - name: Trigger run: npmci trigger - name: Build docs and upload artifacts run: | npmci node install stable npmci npm install npmci command npm run buildDocs - name: Upload artifacts uses: actions/upload-artifact@v2 with: name: public path: public retention-days: 7