1
- sudo : required
2
-
3
- arch :
4
- - amd64
5
- - arm64
1
+ language : shell
2
+ os : linux
6
3
7
4
env :
8
5
global :
6
+ - NODE_VERSION=12
9
7
- CC_TEST_REPORTER_ID=054a8c4f2007b9299933b67221504554462eed6cbb06c364c926a9869dfd4020
8
+ - DOCKER_CLI_EXPERIMENTAL=enabled
9
+ - IMAGE_VERSION=latest
10
10
11
- language : node_js
12
- node_js :
13
- - " 12"
14
-
15
- services :
16
- - docker
11
+ before_install :
17
12
18
- install :
19
- - npm ci
13
+ # Install docker with buildx
14
+ - sudo rm -rf /var/lib/apt/lists/*
15
+ - curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
16
+ - lsb_release -cs
17
+ - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) edge"
18
+ - sudo apt-get update
19
+ - sudo apt-get -y -o Dpkg::Options::="--force-confnew" install docker-ce
20
+ # - docker run --rm --privileged multiarch/qemu-user-static:register --reset
21
+ - docker run --rm --privileged docker/binfmt:820fdd95a9972a5308930a2bdfb8573dd4447ad3
22
+ - cat /proc/sys/fs/binfmt_misc/qemu-aarch64
20
23
21
- before_script :
24
+ # Install Nodejs
25
+ - nvm install $NODE_VERSION
22
26
23
27
# Init Code Climate
24
- - if [ "$TRAVIS_CPU_ARCH" == "amd64" ]; then
25
- curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter;
26
- chmod +x ./cc-test-reporter;
27
- ./cc-test-reporter before-build;
28
- fi
28
+ - curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
29
+ - chmod +x ./cc-test-reporter
30
+ - ./cc-test-reporter before-build
29
31
30
32
script :
31
33
34
+ # Install npm dependencies
35
+ - npm ci
36
+
32
37
# Run Linter
33
38
- npm run lint
34
39
35
40
# Run Unit tests
36
41
- npm test
37
42
43
+ # Report to Code Climate
44
+ - ./cc-test-reporter after-build -t lcov --debug --exit-code $TRAVIS_TEST_RESULT;
45
+
38
46
after_script :
39
47
40
- # Report to Code Climate
41
- - if [ "$TRAVIS_CPU_ARCH" == "amd64" ]; then
42
- ./cc-test-reporter after-build -t lcov --debug --exit-code $TRAVIS_TEST_RESULT;
43
- fi
44
-
45
- # Build docker image
46
- - docker build -t $DOCKER_USERNAME/teleinfo-mqtt:$TRAVIS_BRANCH-$TRAVIS_CPU_ARCH -f Dockerfile .
47
-
48
- # Tag or master branch? -> push
49
- - if [ ! -z "$TRAVIS_TAG" ] || [ "$TRAVIS_BRANCH" == "master" ] ; then
50
- docker login -u "$DOCKER_USERNAME" -p "$DOCKER_PASSWORD";
51
- docker push $DOCKER_USERNAME/teleinfo-mqtt:$TRAVIS_BRANCH-$TRAVIS_CPU_ARCH;
52
- fi
53
-
54
- # Tag? -> push tag & latest
55
- - if [ ! -z "$TRAVIS_TAG" ] ; then
56
- docker tag $DOCKER_USERNAME/teleinfo-mqtt:$TRAVIS_BRANCH-$TRAVIS_CPU_ARCH $DOCKER_USERNAME/teleinfo-mqtt:latest-$TRAVIS_CPU_ARCH;
57
- docker push $DOCKER_USERNAME/teleinfo-mqtt:latest-$TRAVIS_CPU_ARCH;
58
- fi
48
+ - docker login -u "$DOCKER_USERNAME" -p "$DOCKER_PASSWORD"
49
+ - docker version
50
+ - make prepare
51
+
52
+ # Override image version with tag name if any
53
+ - if [ ! -z "$TRAVIS_TAG" ] ; then export IMAGE_VERSION=latest; fi
54
+
55
+ # Buils & push image
56
+ - make build IMAGE_NAME=$DOCKER_USERNAME/teleinfo-mqtt IMAGE_VERSION=$IMAGE_VERSION
0 commit comments