Build status picture stays at "build unknown" - travis-ci

Even if the builds are passing on Travis, the Build Status picture seems to have stopped changing. It still says "build unknown".
My .travis.yml contains:
language: node_js
node_js:
- "0.12"
- "0.11"
- "0.10"
- "iojs-v2.1.0"
- "iojs-v1.0.4"
services:
- mongodb
What's the problem?

It was due to a Travis issue that is now corrected.

Related

GCP deploy error: Creating Revision interrupted

While deploying to GCP using Terraform and in our YAML file we have the following section
# Deploy to Cloud Run
- id: 'deploy'
name: 'gcr.io/cloud-builders/gcloud'
waitFor: ['build-image','push-image']
entrypoint: bash
args:
- '-c'
- |
gcloud beta run services update $_SERVICE_NAME \
'--platform=$_PLATFORM' \
'--image=$_IMAGE_NAME' \
--labels=managed-by=gcp-cloud-build-deploy-cloud-run,commit-sha=$COMMIT_SHA,gcb-build-id=$BUILD_ID \
'--region=$_GCP_REGION' \
--tag '$_REVISION' \
We set WaitFor for all previous dependencies for testing. We are getting this error:
Starting Step #3 - "deploy"
Step #3 - "deploy": Already have image (with digest): gcr.io/cloud-builders/gcloud
Step #3 - "deploy": Deploying...
Step #3 - "deploy": Creating Revision......interrupted
Step #3 - "deploy": Deployment failed
Step #3 - "deploy": ERROR: (gcloud.beta.run.services.update) Revision my-service-ui-00007-doq is not ready.
Finished Step #3 - "deploy"
ERROR
ERROR: build step 3 "gcr.io/cloud-builders/gcloud" failed: step exited with non-zero status: 1
We have tried playing around with the command line and that is showing the same error. We tried several times, so this is not a random error.
Any idea what could cause this? Or any clue how we could investigate it?
I've experienced that if a non-ready revision has a traffic tag assigned (as can be the case when tagging the revision during e.g. deploy), subsequent deploys might fail. So best to go through the UI and remove all traffic tags from revisions which are not green. Maybe that fixes the problem. Just a guess if this could be the problem.
Christian
Remove that revision and tag from the YAML file and try again.
Removing from YAML will help because when updating traffic, "0%" traffic was being assigned to every revision specified in the traffic field. Since this revision is not ready, any operation that is assigning traffic (even though 0%) is causing this error.

Expo build fails in CI but builds locally (babel-preset-expo has been ignored because it contains invalid configuration)

Classic case of it works on my machine. I am building two react-native apps. App A and App B. Both of the applications were bootstrapped using expo.
When I run the command to build either app locally expo build:ios they both build. Yet when I attempt to build the applications in gitlab-ci only application B fails to build with the following message:
[23:07:28] warn Package babel-preset-expo has been ignored because it contains invalid configuration. Reason: Cannot find module 'babel-preset-expo/package.json'
[23:07:28] Require stack:
[23:07:28] - /builds/XXX/application-b/node_modules/react-native/node_modules/#react-native-community/cli/build/tools/config/resolveNodeModuleDir.js
[23:07:28] - /builds/XXX/application-b/node_modules/react-native/node_modules/#react-native-community/cli/build/tools/releaseChecker/index.js
[23:07:28] - /builds/XXX/application-b/node_modules/react-native/node_modules/#react-native-community/cli/build/commands/server/runServer.js
[23:07:28] - /builds/XXX/application-b/node_modules/react-native/node_modules/#react-native-community/cli/build/commands/server/server.js
[23:07:28] - /builds/XXX/application-b/node_modules/react-native/node_modules/#react-native-community/cli/build/commands/index.js
[23:07:28] - /builds/XXX/application-b/node_modules/react-native/node_modules/#react-native-community/cli/build/index.js
[23:07:28] - /builds/XXX/application-b/node_modules/react-native/local-cli/cli.js
[23:07:28]
[23:07:29] Starting Metro Bundler on port 19001.
[23:07:29] debug Watch mode is not supported in this environment
[23:07:29] debug Checking for a newer version of React Native
[23:07:29] debug Current version: 0.61.4
[23:07:29] debug No release cache found
[23:07:29] debug No release cache found
[23:07:29] debug Checking for newer releases on GitHub
[23:07:29] debug No release cache found
[23:07:30] Publishing to channel 'default'...
[23:07:30] debug Saving "6d6386b01438c6ef0acd213d304b5839" to cache
[23:07:30] debug No release cache found
[23:07:30] debug No release cache found
[23:07:30] debug Latest release: 0.60.0
[23:07:32] Building iOS bundle
[23:07:43] node_modules/expo/AppEntry.js: Cannot find module 'babel-preset-expo' from '/builds/XXX/application-b'
[23:07:43] › Closing Expo server
[23:07:43] node_modules/expo/AppEntry.js: Cannot find module 'babel-preset-expo' from '/builds/XXX/application-b'
[23:07:43] Failed building JavaScript bundle.
[23:07:43] ::ffff:127.0.0.1 - - [06/Apr/2020:23:07:43 +0000] "GET /node_modules/expo/AppEntry.bundle?dev=false&minify=true&hot=false&platform=ios HTTP/1.1" 500 - "-" "axios/0.19.0"
[23:07:43] › Stopping Metro bundler
[23:07:43] Packager URL http://127.0.0.1:19001/node_modules/expo/AppEntry.bundle?dev=false&minify=true&hot=false&platform=ios returned unexpected code 500. Please open your project in the Expo app and see if there are any errors. Also scroll up and make sure there were no errors or warnings when opening your project.
I have tried having the CI explicitly install the module babel-preset-expo, but that does not fix the issue. My babel.config.js is identical for both apps and looks like this:
module.exports = function(api) {
api.cache(true);
return {
presets: ['babel-preset-expo'],
};
};
I have the following lines in my both of my package.json:
"devDependencies": {
"#babel/core": "^7.0.0",
"babel-preset-expo": "^8.0.0"
},
The file in both applications being referenced in the error AppEntry.js is identical as well.
Here is my gitlab-ci.yml:
image: node/alpine
cache:
key: ${CI_COMMIT_REF_SLUG}
paths:
- ~/.npm
stages:
- deploy
- tag
before_script:
- echo $CI_BUILD_REF
- echo $CI_PROJECT_DIR
- apk add --no-cache bash build-base gcc git python3 curl
- PATCH=`git log --pretty=oneline | wc -l | sed -e 's/^[[:space:]]*//'`
- VERSION=`cat VERSION`
- VERSION=${VERSION%?}
- TAG="${VERSION}${PATCH}"
- echo "Build version = ${TAG}"
expo-build:
stage: deploy
artifacts:
paths:
- ipas/
script:
- sed -i "s/0.0.0/${TAG}/g" app.json
- npm ci --production --cache .npm --prefer-offline
- npx expo login -u $EXPO_USERNAME -p $EXPO_PASSWORD
- EXPO_DEBUG=true npx expo build:ios --non-interactive # This works because it has been already built once through the cli, credentials cannot be pass into env
- mkdir -p ipas
- curl "$(npx expo url:ipa --non-interactive)" -o ipas/bravo-teller-$TAG.ipa
only:
- master
Any feedback or suggestions as to what this could be would be greatly appreciated. Thanks
Actually, the babel-preset-expo is not a devDependencies you should add it to dependencies furthermore likely you should use lazy load by using the following code on your babel configuration:
[
'babel-preset-expo',
{
lazyImports: true,
},
]

Carthage Building scheme makes Bitrise to timeout after 90 minutes

I am using Bitrise and I have updated both my development machine and bitrise stack to Xcode 11.
When running a build, the Carthage dependencies need to be regenerated and since I am using AWS dependencies, even in my Mac book pro, they take a long time to build and they make the Bitrise build to time out.
Here there is an example on how my bitrise.yml is configured:
...
workflows:
test:
steps:
- gitlab-status:
run_if: not (enveq "BITRISE_GIT_COMMIT" "")
inputs:
- private_token: "$GITLAB_STATUS_TOKEN"
- preset_status: running
- api_base_url: https://gitlab.company.cloud/api/v4
- activate-ssh-key:
run_if: '{{getenv "SSH_RSA_PRIVATE_KEY" | ne ""}}'
- git-clone: {}
- cache-pull:
inputs:
- is_debug_mode: 'true'
- certificate-and-profile-installer: {}
- carthage:
inputs:
- verbose_log: 'yes'
- carthage_options: "--platform ios --no-use-binaries --cache-builds"
- cocoapods-install: {}
- xcode-test:
inputs:
- scheme: CompanyApp
- project_path: CompanyApp.xcworkspace
- simulator_device: iPhone 8
- xcode-test:
inputs:
- project_path: CompanyApp.xcworkspace
- simulator_device: iPhone 8
- scheme: CompanyAppUITests
- gitlab-status:
run_if: not (enveq "BITRISE_GIT_COMMIT" "")
inputs:
- private_token: "$GITLAB_STATUS_TOKEN"
- api_base_url: https://gitlab.company.cloud/api/v4
- cache-push:
is_always_run: true
inputs:
- is_debug_mode: 'true'
- deploy-to-bitrise-io: {}
...
Just in case, they are the last 2 lines from the build log
*** Building scheme "AWSLogs" in AWSiOSSDKv2.xcodeproj
*** Building scheme "AWSMachineLearning" in AWSiOSSDKv2.xcodeproj
Any ideas???
The solution is to not rebuild libraries in CI, after adding them to repository and skipping build part in CI you will see huge build time decrease.
Try removing --no-use-binaries.
By selecting to not use binaries, large dependencies can't provide you with pre-compiled binaries to greatly decrease compile times. If you remove that flag you should notice that compilation speeds up.

I can't build android-27 , tool-27.0.2 with travis.CI

Can any one help me?
Stuck from my side.
https://travis-ci.org/XinyueZ/mvvm-template/jobs/313586340
I can 't build (./gradlew test) it.
my yml is:
language: android
android:
components:
- tools
- platform-tools
- build-tools-27.0.2
- android-27
- add-on
- extra
licenses:
- 'android-sdk-license-.+'
jdk:
- oraclejdk8
script:
- ./gradlew :repository:testMockDebugUnitTest :repository:testProdDebugUnitTest :repository:testProdReleaseUnitTest
before_cache:
- rm -f $HOME/.gradle/caches/modules-2/modules-2.lock
cache:
directories:
- $HOME/.m2
- $HOME/.gradle/caches/
- $HOME/.gradle/wrapper/
buildToolsVersion = '27.0.2'
I have tried 27.0.1 as well, same failed.
I had one or three times successed, just 2 hours later, something went wrong.
same yml, no change.
See here
It seems Google uploaded a new version of the android-27 package and the checksum is now different and the download fails. For the moment, you need to install it yourself using the sdkmanager CLI instead. Here's what you would need to add to your .travis.yml file:
before_install:
- yes | sdkmanager "platforms;android-27"

Usage of $TRAVIS_OS_NAME in .travis.yml

I want to test a project on multiple platforms, so I am using according to the docs os: and $TRAVIS_OS_NAME. But I seem to be missing something. My .travis.yml looks as follow:
os:
- osx
before_install:
- ./.travis.$TRAVIS_OS_NAME.before_install.sh
install:
- ./.travis.$TRAVIS_OS_NAME.install.sh
script:
- ./.travis.$TRAVIS_OS_NAME.script.sh
But i get the following error:
$ ./.travis.$TRAVIS_OS_NAME.before_install.sh
/home/travis/build.sh: line 41: ./.travis.linux.before_install.sh: No such file or directory
So it seems that the os: directive is ignored.
Am I missing something?
I have not included os: -linux as the tests scripts are not ready yet.

Resources