README.md (1735B)
1 # Docker build instructions 2 3 At Taler, we're deeply concerned about the reproducibility of our 4 builds, and that's why we make use of Docker in order to ensure that 5 our builds are consistent and replicable. 6 7 ## 1. Environment variables 8 9 So as not to store sensitive data such as private keys and login 10 credentials (required for publishing to Maven Central) in our build 11 scripts, we make use of an environment file not checked into the 12 repository. In order to provide the necessary parameters to the Docker 13 container, do the following: 14 15 1. Rename the `env.example` file to `.env`. 16 2. Fill-in the variables as instructed in the comments. 17 18 ## 2. Build image and run build 19 20 In order to automate even more the automation that the Docker image 21 itself already provides, we make use of Docker Compose. The provided 22 `docker-compose.yml` file will build the image, pick up the 23 environment file and mount a volume that exposes the container's local 24 Maven repository, so that you can test the artifacts before publishing 25 them. All you have to do, is the following: 26 27 ```bash 28 cd docker-android/ 29 docker-compose up --build 30 ``` 31 32 ## 3. Test Maven artifact locally 33 34 Testing in production is not really a great idea. It is recommended 35 that you first test your artifacts locally, before publishing them to 36 Maven Central. Doing this will require modifying the top-level 37 `build.gradle` of the Android app that uses this artifact: 38 39 ```groovy 40 allprojects { 41 repositories { 42 maven { 43 url '<absolute-path-to-quickjs-tart>/.m2/repository/' 44 } 45 // ... 46 } 47 } 48 ``` 49 50 Now, add the dependency to the module-level `build.gradle`: 51 52 ```groovy 53 dependencies { 54 // ... 55 implementation "net.taler.qtart:<version>@aar" 56 // ... 57 } 58 ```