Skip to content

Commit

Permalink
ci: migrate to github actions (#78)
Browse files Browse the repository at this point in the history
To migrate to GitHub Actions and our library workflows a few changes are
needed:

First up, removing the .travis.yml and adding in the
.github/workflows/dhis2-verify-lib.yml.

The lint job is left commented out, as there are 600+ linting errors
reported (all autofixable it seems), but fixing the lint errors should
be in a different commit, as this needs to be backported and is designed
to be easy to move to other branches.

The main entrypoint in package.json was pointing to a directory that
doesn't exist, so that has been updated to build/index.js.

When moving to the d2-utils-release script, we will no longer publish
this as a flat package, so this is potentially a breaking change. I
think that it worked because the lib was compiled into build/index.js,
and then since the main entrypoint in package.json did not exist, the
file-loader fell back to loading the index.js from the package, which
happened to exist in the root folder because of the flatpack structure
in the released artifact.

This should "just work" with the correct entry-point even if we no
longer release the flat package.

Old version of node-sass has been bumped to 4.13.1 which is close to the
previous to not have any breaking changes, but supports node versions >=
10.

Fix: https://jira.dhis2.org/browse/TECH-512
  • Loading branch information
varl authored Dec 10, 2020
1 parent db44b96 commit 69a64e9
Show file tree
Hide file tree
Showing 4 changed files with 264 additions and 88 deletions.
119 changes: 119 additions & 0 deletions .github/workflows/dhis2-verify-lib.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
name: 'dhis2: verify (lib)'

on:
push:
branches:

env:
GIT_AUTHOR_NAME: '@dhis2-bot'
GIT_AUTHOR_EMAIL: '[email protected]'
GIT_COMMITTER_NAME: '@dhis2-bot'
GIT_COMMITTER_EMAIL: '[email protected]'
NPM_TOKEN: ${{secrets.DHIS2_BOT_NPM_TOKEN}}
GH_TOKEN: ${{secrets.DHIS2_BOT_GITHUB_TOKEN}}
CI: true

jobs:
install:
runs-on: ubuntu-latest
if: "!contains(github.event.head_commit.message, '[skip ci]')"

steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: 12.x

- uses: actions/cache@v2
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
with:
path: '**/node_modules'
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}

- name: Install
if: steps.yarn-cache.outputs.cache-hit != 'true'
run: yarn install --frozen-lockfile

build:
runs-on: ubuntu-latest
needs: install
if: "!contains(github.event.head_commit.message, '[skip ci]')"
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: 12.x

- uses: actions/cache@v2
id: yarn-cache
with:
path: '**/node_modules'
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}

- name: Build
run: yarn build

- uses: actions/upload-artifact@v2
with:
name: lib-build
path: |
**/build
!**/node_modules
retention-days: 1

#lint:
# runs-on: ubuntu-latest
# needs: install
# if: "!contains(github.event.head_commit.message, '[skip ci]')"
# steps:
# - uses: actions/checkout@v2
# - uses: actions/setup-node@v1
# with:
# node-version: 12.x
#
# - uses: actions/cache@v2
# id: yarn-cache
# with:
# path: '**/node_modules'
# key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
#
# - name: Lint
# run: yarn lint

test:
runs-on: ubuntu-latest
needs: [install, build]
if: "!contains(github.event.head_commit.message, '[skip ci]')"
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: 12.x

- uses: actions/cache@v2
id: yarn-cache
with:
path: '**/node_modules'
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}

- name: Test
run: yarn test

publish:
runs-on: ubuntu-latest
needs: [build, test] # lint commented out
if: "!contains(github.event.head_commit.message, '[skip ci]')"
steps:
- uses: actions/checkout@v2
with:
token: ${{env.GH_TOKEN}}
- uses: actions/setup-node@v1
with:
node-version: 12.x

- uses: actions/download-artifact@v2
with:
name: lib-build

- name: Publish to NPM
run: npx @dhis2/cli-utils release --publish npm
32 changes: 0 additions & 32 deletions .travis.yml

This file was deleted.

6 changes: 3 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@
"name": "@dhis2/gis-api",
"version": "34.0.11",
"description": "Maps API for DHIS2 based on Leaflet",
"main": "lib/main/index.js",
"main": "build/index.js",
"scripts": {
"start": "webpack-dev-server",
"coverage": "npm test -- --coverage",
"test": "jest",
"test:watch": "yarn test -- --watch",
"prebuild": "yarn test",
"build": "webpack --config webpack.config.prod.js && cp ./package.json ./build/package.json",
"build": "webpack --config webpack.config.prod.js",
"validate": "npm ls --depth 0 || yarn list",
"lint": "eslint ./src"
},
Expand Down Expand Up @@ -64,7 +64,7 @@
"isparta-loader": "^2.0.0",
"jest": "^22.2.2",
"jest-enzyme": "^4.2.0",
"node-sass": "^4.7.2",
"node-sass": "^4.13.1",
"precommit-hook": "3.0.0",
"sass-loader": "^6.0.6",
"script-loader": "^0.7.2",
Expand Down
Loading

0 comments on commit 69a64e9

Please sign in to comment.