Git Product home page Git Product logo

Comments (6)

richardlau avatar richardlau commented on July 16, 2024 2

When the github bot was able to start citgm CI runs on request, it worked by collaborators posting a comment in the PR @-mentioning the bot which would then work out the correct parameters. It worked really well when it worked and would be a good long term solution.

from automation.

vsemozhetbyt avatar vsemozhetbyt commented on July 16, 2024

As an awkward workaround till this is done properly, I can suggest a tiny bookmarklet with a new Google Chrome clipboard API (available since v66):

javascript: {
  (async () => {
    try {
      const PR_ID = location.pathname.replace(/.+\/pull\/(\d+).*/, '$1');

      if (confirm(`Create CI for #${PR_ID} ("${document.title}")?`)) {
        await navigator.clipboard.writeText(PR_ID);
        open('https://ci.nodejs.org/job/node-test-pull-request/build?delay=0sec');
      }
    } catch (err) {
      alert(err);
    }
  })();
}

It asks if the PR is an intended one, copies its ID to the clipboard and opens CI form.

from automation.

priyank-p avatar priyank-p commented on July 16, 2024

The way @vsemozhetbyt suggested could be easily done in node-review and it's a perfect place for it.

from automation.

joyeecheung avatar joyeecheung commented on July 16, 2024

have git node land check the CI parameters to make sure they match the PR number? (That's a big request and would probably be sloooooow.)

Not really, actually, unless the Jenkins is stucked for some reason. All you need is an additional request to the Jenkins API. In case anyone is interested, here is how you can figure out the PRID from a build (code copy-pasted from nodejs/node-core-utils#161, and from my experience using that PR to get the CI results (~3-5 req per PR failed by flakes) , the request is pretty fast if Jenkins is not stucked):

// request a build with the suffix api/json/?tree=actions[parameters[name,value]]
// e.g. https://ci.nodejs.org/job/node-test-pull-request/13871/api/json?tree=actions[parameters[name,value]]
// https://ci.nodejs.org/job/node-test-commit/17170/api/json?tree=actions[parameters[name,value]]

  get sourceURL() {
    const { params } = this;

    if (params.PR_ID) {  // from a node-test-pull-request build
      const owner = params.TARGET_GITHUB_ORG;
      const repo = params.TARGET_REPO_NAME;
      const prid = params.PR_ID;
      return `https://github.com/${owner}/${repo}/pull/${prid}/`;
    }

    if (params.GITHUB_ORG) {  // from a node-test-commit build
      const owner = params.GITHUB_ORG;
      const repo = params.REPO_NAME;
      const prm = params.GIT_REMOTE_REF.match(/refs\/pull\/(\d+)\/head/);
      if (prm) {
        return `https://github.com/${owner}/${repo}/pull/${prm[1]}/`;
      } else {
        const result =
          `https://api.github.com/repos/${owner}/${repo}/git/` +
          params.GIT_REMOTE_REF;
        return result;
      }
    }
  }

from automation.

gibfahn avatar gibfahn commented on July 16, 2024

When the github bot was able to start citgm CI runs on request, it worked by collaborators posting a comment in the PR @-mentioning the bot which would then work out the correct parameters. It worked really well when it worked and would be a good long term solution.

Most recently discussed in nodejs/build#1180, agreed that this is the best solution long-term.

I like the idea of git node metadata warning if the PR-URL doesn't match, given that it's already telling you whether CI was run or not.

from automation.

Trott avatar Trott commented on July 16, 2024

Unarchived this repo so I could close all the PRs and issues. Will re-archive when I'm done.

from automation.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.