name: CI Profiling on: push: branches: [main] pull_request: branches: [main] jobs: check: runs-on: ubuntu-latest outputs: inputsChecked: ${{ steps.pyroscope_cloud_token_gate.outputs.inputsChecked }} steps: - uses: svrooij/secret-gate-action@v1 id: pyroscope_cloud_token_gate with: inputsToCheck: 'token' env: token: ${{ secrets.PYROSCOPE_CLOUD_TOKEN }} go-tests: runs-on: ubuntu-latest # skip if user has not access to the token if: needs.check.outputs.inputsChecked == 'true' needs: check steps: - name: Checkout uses: actions/checkout@v2 - uses: actions/setup-go@v2 with: go-version: '^1.18.0' - name: Cache go mod directories uses: actions/cache@v2 with: path: ~/go/pkg/mod key: go-${{ hashFiles('**/go.sum') }} restore-keys: | ${{ runner.os }}-go- - name: Install go-task uses: jaxxstorm/action-install-gh-release@v1.5.0 with: repo: pyroscope-io/ci tag: latest env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: install run: pyroscope-ci go install --applicationName=pyroscope-oss pkg/ - name: uninstall from gospy since profiler is already running run: rm pkg/agent/gospy/pyroscope_test.go - name: Run Go tests and upload run: pyroscope-ci exec --exportLocally --apiKey=${{ secrets.PYROSCOPE_CLOUD_TOKEN }} make test - uses: pyroscope-io/flamegraph.com-github-action@main with: file: pyroscope-ci-output/* postInPR: true token: ${{ github.token }} id: go-tests js-tests: runs-on: ubuntu-latest # skip if user has not access to the token if: needs.check.outputs.inputsChecked == 'true' needs: check steps: - name: Checkout uses: actions/checkout@v2 - uses: actions/setup-node@v2 with: node-version: '16.18' - name: Get yarn cache directory path id: yarn-cache-dir-path run: echo "::set-output name=dir::$(yarn cache dir)" - uses: actions/cache@v2 id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`) with: path: ${{ steps.yarn-cache-dir-path.outputs.dir }} key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} restore-keys: | ${{ runner.os }}-yarn - name: Install go-task uses: jaxxstorm/action-install-gh-release@v1.5.0 with: repo: pyroscope-io/ci tag: latest env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Install Webapp dependencies run: yarn install --frozen-lockfile - name: Run tests and upload run: pyroscope-ci exec --apiKey=${{ secrets.PYROSCOPE_CLOUD_TOKEN }} --exportLocally yarn test --no-cache --max-workers=1 - uses: pyroscope-io/flamegraph.com-github-action@main with: file: pyroscope-ci-output/* postInPR: true token: ${{ github.token }}