mirror of
				https://github.com/ethereum/solidity
				synced 2023-10-03 13:03:40 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			35 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # buildpack-deps docker images
 | |
| 
 | |
| The `buildpack-deps` docker images are used to compile and test solidity within our CI.
 | |
| 
 | |
| ## GitHub Workflow
 | |
| 
 | |
| The creation of the images are triggered by a single workflow, defined in `.github/workflows/buildpack-deps.yml`.
 | |
| For each resulting `buildpack-deps` docker image a strategy is defined in the workflow file - the image variant.
 | |
| The workflow gets triggered, if any Dockerfile defined in `scripts/docker/buildpack-deps/Dockerfile.*` were changed
 | |
| within the PR.
 | |
| 
 | |
| ### Versioning
 | |
| 
 | |
| The version of the docker images can be defined within the Dockerfile with `LABEL version`. A new docker image
 | |
| will only be created and pushed, if the new version is incremented by `1` compared with the version of the Dockerfile
 | |
| located in `develop`.
 | |
| 
 | |
| ### Build, Test & Push
 | |
| 
 | |
| Note that the whole workflow - including all defined strategies (image variants) - will be triggered,
 | |
| even if only a single Dockerfile was change. The full workflow will only gets executed, if the corresponding
 | |
| Dockerfile was changed. The execution of workflows of unchanged Dockerfiles will not continue and just return success.
 | |
| See `scripts/ci/docker_upgrade.sh`.
 | |
| 
 | |
| If the version check was successful, the docker image will be built using the Dockerfile located in
 | |
| `scripts/docker/buildpack-deps/Dockerfile.*`.
 | |
| 
 | |
| The resulting docker image will be tested by executing
 | |
| the corresponding `scripts/ci/buildpack-deps_test_*` scripts. These scripts are normally symlinked to `scripts/ci/build.sh`,
 | |
| except for the `buildpack-deps-ubuntu1604.clang.ossfuzz` docker image, that is symlinked to `scripts/ci/build_ossfuzz.sh`.
 | |
| These scripts `scripts/ci/build.sh` and `scripts/ci/build_ossfuzz.sh` are also used by CircleCI, see `.circleci/config.yml`.
 | |
| 
 | |
| If the tests passed successfully, the docker image will get tagged by the version defined within the corresponding `Dockerfile`.
 | |
| Finally, a comment will be added to the PR that contains the full repository, version and repository digest
 | |
| of the freshly created docker image. |