Cheers, this is brilliant work and great to reduce our dependence on Jenkins. Does the CI job run automatically for every update to a PR, or is there some equivalent of the old "ok to test" system?

On 19/06/2020 13:31, Giovanni Tirloni wrote:
Hi Tony,

I translated the Jenkins configuration that lived in the ci-service repository:

https://github.com/fluid-project/ci-service/blob/master/jenkins_jobs/infusion-pull-request.yml

Into the GitHub Actions workflow configuration that lives in each code repository:

https://github.com/fluid-project/infusion/blob/master/.github/workflows/main.yml

Instead of using our Jenkins node (located in the IDRC datacenter), it's using the GitHub-hosted runners.



Here we say the workflow should run on pushes and PRs for the master branch only:

on: push: branches: [ master ] pull_request: branches: [ master ]



The CI job runs on ubuntu-latest (for now, there's a PR to run it on Windows as well):

jobs: build: runs-on: ubuntu-latest


The build strategy means GitHub will template/duplicate the build definition for each of these values. They are just strings but it means we're testing against Node.js 10.x and 12.x:

strategy: matrix: node-version: [10.x, 12.x]



We pass the HEADLESS env var so our tests run in Firefox/Chrome headless:

env: HEADLESS: true


Then come the actual build instructions. We first do a Git checkout of the repo:


steps: - uses: actions/checkout@v2




Then we install the Node.js version we want, based on that matrix definition above.

- name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v1 with: node-version: ${{ matrix.node-version }}


And the usual build commands in separate Steps:

- name: Install Node.js dependencies run: npm install - name: Code linter run: $(npm bin)/grunt lint - name: Browser tests run: $(npm bin)/testem ci --file tests/testem.js - name: Node.js tests run: $(npm bin)/nyc node tests/node-tests/basic-node-tests.js



We are not using any special Action but there's a marketplace of them: https://github.com/marketplace?type=actions . They are basically Git repos with docker images or Javascript to run arbitrary code.


The syntax reference for Workflow files is here: https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions

Regards,
Giovanni


------------------------------------------------------------------------
*From:* Tony Atkins <t...@raisingthefloor.org>
*Sent:* Friday, June 19, 2020 06:20
*To:* Giovanni Tirloni <gtirl...@ocadu.ca>
*Cc:* fluid-work@lists.idrc.ocad.ca <fluid-work@lists.idrc.ocad.ca>
*Subject:* Re: GitHub Actions
Hi, Gio.

Great to hear this.  I know we could all work our way through the documentation and experiment with our own projects in time, but It'd be great for maintainers in the community to save time by learning from what you had to do.  Would you be able to briefly write up what you had to do or possibly demo/present briefly in an upcoming meeting?

Cheers,


Tony

On Tue, 16 Jun 2020 at 21:46, Giovanni Tirloni <gtirl...@ocadu.ca <mailto:gtirl...@ocadu.ca>> wrote:

    Hello,

    It seems GitHub Actions is working as expected.

    With that in mind, I'd like to disable Jenkins for the two Fluid
    repos that have builds enabled: Infusion and Kettle.

    Please let me know if there are any concerns.

    Regards,
    Giovanni

    ------------------------------------------------------------------------
    *From:* Giovanni Tirloni <gtirl...@ocadu.ca <mailto:gtirl...@ocadu.ca>>
    *Sent:* Monday, April 20, 2020 18:10
    *To:* fluid-work@lists.idrc.ocad.ca
    <mailto:fluid-work@lists.idrc.ocad.ca>
    <fluid-work@lists.idrc.ocad.ca <mailto:fluid-work@lists.idrc.ocad.ca>>
    *Subject:* GitHub Actions
    Hello,

    We're running an experiment to see if GitHub Actions [0] is a good
    replacement for our current Jenkins-based CI system.

    I've enabled Actions in the fluid-project/infusion repository today.
    Every new PR (and updates to old PRs) and commits to the master
    branch will trigger CI builds in both GitHub Actions and Jenkins.
    We'll run them in parallel for a while to collect usage data.

    The GitHub Actions workflow has a few benefits for us:

      * GitHub-owned runners so we don't need to worry about maintaining
        our own servers
      * Configuration As Code: the CI configuration lives in the
        repository and can be modified with PRs
      * Better integration with the GitHub UI

    We'll be trying more customizations in the near future but for now
    the GitHub Actions workflow in the Infusion repository more or less
    mimics the actions of the Jenkins-based pipeline configuration in
    the fluid-project/ci-service repository. For example, it doesn't yet
    publish a new Infusion build when commits are made to the master
    branch, that's coming next as it requires changes to how we do
    deployments.

    If you notice any issues or have any feedback, please feel free to
    reach out. If we have a good experience with Actions, we'll add it
    to more repositories.

    0 - https://github.com/features/actions

    Regards,
    *Giovanni Tirloni*
    DevOps Engineer
    Inclusive Design Research Centre, OCAD University
    https://idrc.ocadu.ca <https://idrc.ocadu.ca/>
    _______________________________________________________
    fluid-work mailing list - fluid-work@lists.idrc.ocad.ca
    <mailto:fluid-work@lists.idrc.ocad.ca>
    To unsubscribe, change settings or access archives,
    see https://lists.idrc.ocad.ca/mailman/listinfo/fluid-work
    
<https://secure-web.cisco.com/1Fy-8-ua8W6t3cX3JF5jTBrt88lp9HKvCSV88HJAKxL7x75oqEU4qXmAa_9sgV6xQku8aZu8pnTzBjqNSlXP4DN1CWek1LTAPA5l1EGY0qilcVP6rOKfAkT2izCYY63UYigTB2DTH5Bf6xssOBCLbM_ADTukmeMoifPbqB0VtX1UP4q4QuVz709QJiBzTbJAIaHm1NqcoyEtThtgvrNxQCYLHesamfYcbGNWlii_k2JQS3fTbbpfSG6GsGYJAmkOp5ctLbPjiWWKHK7WscDf4P2eewODDIl-MChsRIxzNIAXUz0HbaqxFGQArrXImWpuUo6XVFoJtFNJIrmVhDWJS4rnCTgAfyax2wXJKBV2lFcCnfofkTpjwanxh67e8aWA_qOChtYtb5Tqwhjlu87DJBvtjQZAOh_5lChfHUcrgq8OaCy9rOBwIK8ZOnTIrtyKZemKQhMeC1MnbULvZHgRpBg/https%3A%2F%2Flists.idrc.ocad.ca%2Fmailman%2Flistinfo%2Ffluid-work>


_______________________________________________________
fluid-work mailing list - fluid-work@lists.idrc.ocad.ca
To unsubscribe, change settings or access archives,
see 
https://secure-web.cisco.com/1Fy-8-ua8W6t3cX3JF5jTBrt88lp9HKvCSV88HJAKxL7x75oqEU4qXmAa_9sgV6xQku8aZu8pnTzBjqNSlXP4DN1CWek1LTAPA5l1EGY0qilcVP6rOKfAkT2izCYY63UYigTB2DTH5Bf6xssOBCLbM_ADTukmeMoifPbqB0VtX1UP4q4QuVz709QJiBzTbJAIaHm1NqcoyEtThtgvrNxQCYLHesamfYcbGNWlii_k2JQS3fTbbpfSG6GsGYJAmkOp5ctLbPjiWWKHK7WscDf4P2eewODDIl-MChsRIxzNIAXUz0HbaqxFGQArrXImWpuUo6XVFoJtFNJIrmVhDWJS4rnCTgAfyax2wXJKBV2lFcCnfofkTpjwanxh67e8aWA_qOChtYtb5Tqwhjlu87DJBvtjQZAOh_5lChfHUcrgq8OaCy9rOBwIK8ZOnTIrtyKZemKQhMeC1MnbULvZHgRpBg/https%3A%2F%2Flists.idrc.ocad.ca%2Fmailman%2Flistinfo%2Ffluid-work


_______________________________________________________
fluid-work mailing list - fluid-work@lists.idrc.ocad.ca
To unsubscribe, change settings or access archives,
see https://lists.idrc.ocad.ca/mailman/listinfo/fluid-work

Reply via email to