mirror of
				https://github.com/docker/metadata-action.git
				synced 2025-10-31 17:47:36 +08:00 
			
		
		
		
	Add workflows
This commit is contained in:
		
							parent
							
								
									03eb07f964
								
							
						
					
					
						commit
						98414716d9
					
				
							
								
								
									
										
											BIN
										
									
								
								.github/ghaction-docker-meta.png
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.github/ghaction-docker-meta.png
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 6.5 KiB | 
							
								
								
									
										77
									
								
								.github/labels.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										77
									
								
								.github/labels.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,77 @@ | |||||||
|  | ## more info https://github.com/crazy-max/ghaction-github-labeler | ||||||
|  | - # automerge | ||||||
|  |   name: ":bell: automerge" | ||||||
|  |   color: "8f4fbc" | ||||||
|  |   description: "" | ||||||
|  | - # bot | ||||||
|  |   name: ":robot: bot" | ||||||
|  |   color: "69cde9" | ||||||
|  |   description: "" | ||||||
|  | - # bug | ||||||
|  |   name: ":bug: bug" | ||||||
|  |   color: "b60205" | ||||||
|  |   description: "" | ||||||
|  | - # dependencies | ||||||
|  |   name: ":game_die: dependencies" | ||||||
|  |   color: "0366d6" | ||||||
|  |   description: "" | ||||||
|  | - # documentation | ||||||
|  |   name: ":memo: documentation" | ||||||
|  |   color: "c5def5" | ||||||
|  |   description: "" | ||||||
|  | - # duplicate | ||||||
|  |   name: ":busts_in_silhouette: duplicate" | ||||||
|  |   color: "cccccc" | ||||||
|  |   description: "" | ||||||
|  | - # enhancement | ||||||
|  |   name: ":sparkles: enhancement" | ||||||
|  |   color: "0054ca" | ||||||
|  |   description: "" | ||||||
|  | - # feature request | ||||||
|  |   name: ":bulb: feature request" | ||||||
|  |   color: "0e8a16" | ||||||
|  |   description: "" | ||||||
|  | - # feedback | ||||||
|  |   name: ":mega: feedback" | ||||||
|  |   color: "03a9f4" | ||||||
|  |   description: "" | ||||||
|  | - # future maybe | ||||||
|  |   name: ":rocket: future maybe" | ||||||
|  |   color: "fef2c0" | ||||||
|  |   description: "" | ||||||
|  | - # good first issue | ||||||
|  |   name: ":hatching_chick: good first issue" | ||||||
|  |   color: "7057ff" | ||||||
|  |   description: "" | ||||||
|  | - # help wanted | ||||||
|  |   name: ":pray: help wanted" | ||||||
|  |   color: "4caf50" | ||||||
|  |   description: "" | ||||||
|  | - # hold | ||||||
|  |   name: ":hand: hold" | ||||||
|  |   color: "24292f" | ||||||
|  |   description: "" | ||||||
|  | - # invalid | ||||||
|  |   name: ":no_entry_sign: invalid" | ||||||
|  |   color: "e6e6e6" | ||||||
|  |   description: "" | ||||||
|  | - # maybe bug | ||||||
|  |   name: ":interrobang: maybe bug" | ||||||
|  |   color: "ff5722" | ||||||
|  |   description: "" | ||||||
|  | - # needs more info | ||||||
|  |   name: ":thinking: needs more info" | ||||||
|  |   color: "795548" | ||||||
|  |   description: "" | ||||||
|  | - # question | ||||||
|  |   name: ":question: question" | ||||||
|  |   color: "3f51b5" | ||||||
|  |   description: "" | ||||||
|  | - # upstream | ||||||
|  |   name: ":eyes: upstream" | ||||||
|  |   color: "fbca04" | ||||||
|  |   description: "" | ||||||
|  | - # wontfix | ||||||
|  |   name: ":coffin: wontfix" | ||||||
|  |   color: "ffffff" | ||||||
|  |   description: "" | ||||||
							
								
								
									
										82
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										82
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,82 @@ | |||||||
|  | name: ci | ||||||
|  | 
 | ||||||
|  | on: | ||||||
|  |   schedule: | ||||||
|  |     - cron: '0 10 * * 0' # everyday sunday at 10am | ||||||
|  |   push: | ||||||
|  |     branches: | ||||||
|  |       - '**' | ||||||
|  |     tags: | ||||||
|  |       - 'v*.*.*' | ||||||
|  |   pull_request: | ||||||
|  | 
 | ||||||
|  | env: | ||||||
|  |   DOCKER_IMAGE: localhost:5000/name/app | ||||||
|  | 
 | ||||||
|  | jobs: | ||||||
|  |   multi-images: | ||||||
|  |     runs-on: ubuntu-latest | ||||||
|  |     steps: | ||||||
|  |       - | ||||||
|  |         name: Checkout | ||||||
|  |         uses: actions/checkout@v2.3.3 | ||||||
|  |       - | ||||||
|  |         name: Docker meta | ||||||
|  |         id: docker_meta | ||||||
|  |         uses: ./ | ||||||
|  |         with: | ||||||
|  |           images: | | ||||||
|  |             ${{ env.DOCKER_IMAGE }} | ||||||
|  |             ghcr.io/name/app | ||||||
|  |           tag-sha: true | ||||||
|  | 
 | ||||||
|  |   docker-push: | ||||||
|  |     runs-on: ubuntu-latest | ||||||
|  |     services: | ||||||
|  |       registry: | ||||||
|  |         image: registry:2 | ||||||
|  |         ports: | ||||||
|  |           - 5000:5000 | ||||||
|  |     steps: | ||||||
|  |       - | ||||||
|  |         name: Checkout | ||||||
|  |         uses: actions/checkout@v2.3.3 | ||||||
|  |       - | ||||||
|  |         name: Docker meta | ||||||
|  |         id: docker_meta | ||||||
|  |         uses: ./ | ||||||
|  |         with: | ||||||
|  |           images: | | ||||||
|  |             ${{ env.DOCKER_IMAGE }} | ||||||
|  |           tag-sha: true | ||||||
|  |       - | ||||||
|  |         name: Set up QEMU | ||||||
|  |         uses: docker/setup-qemu-action@v1 | ||||||
|  |       - | ||||||
|  |         name: Set up Docker Buildx | ||||||
|  |         uses: docker/setup-buildx-action@v1 | ||||||
|  |         with: | ||||||
|  |           driver-opts: network=host | ||||||
|  |       - | ||||||
|  |         name: Build and push to local registry | ||||||
|  |         uses: docker/build-push-action@v2 | ||||||
|  |         with: | ||||||
|  |           context: ./test | ||||||
|  |           file: ./test/Dockerfile | ||||||
|  |           platforms: linux/amd64,linux/arm64,linux/386 | ||||||
|  |           push: true | ||||||
|  |           tags: ${{ steps.docker_meta.outputs.tags }} | ||||||
|  |           labels: ${{ steps.docker_meta.outputs.labels }} | ||||||
|  |       - | ||||||
|  |         name: Inspect image | ||||||
|  |         run: | | ||||||
|  |           docker pull ${{ env.DOCKER_IMAGE }}:${{ steps.docker_meta.outputs.version }} | ||||||
|  |           docker image inspect ${{ env.DOCKER_IMAGE }}:${{ steps.docker_meta.outputs.version }} | ||||||
|  |       - | ||||||
|  |         name: Check manifest | ||||||
|  |         run: | | ||||||
|  |           docker buildx imagetools inspect ${{ env.DOCKER_IMAGE }}:${{ steps.docker_meta.outputs.version }} | ||||||
|  |       - | ||||||
|  |         name: Dump context | ||||||
|  |         if: always() | ||||||
|  |         uses: crazy-max/ghaction-dump-context@v1 | ||||||
							
								
								
									
										20
									
								
								.github/workflows/labels.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								.github/workflows/labels.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,20 @@ | |||||||
|  | name: labels | ||||||
|  | 
 | ||||||
|  | on: | ||||||
|  |   push: | ||||||
|  |     branches: | ||||||
|  |       - 'master' | ||||||
|  |     paths: | ||||||
|  |       - '.github/labels.yml' | ||||||
|  |       - '.github/workflows/labels.yml' | ||||||
|  | 
 | ||||||
|  | jobs: | ||||||
|  |   labeler: | ||||||
|  |     runs-on: ubuntu-latest | ||||||
|  |     steps: | ||||||
|  |       - | ||||||
|  |         name: Checkout | ||||||
|  |         uses: actions/checkout@v2.3.3 | ||||||
|  |       - | ||||||
|  |         name: Run Labeler | ||||||
|  |         uses: crazy-max/ghaction-github-labeler@v3.1.0 | ||||||
							
								
								
									
										53
									
								
								.github/workflows/test.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								.github/workflows/test.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,53 @@ | |||||||
|  | name: test | ||||||
|  | 
 | ||||||
|  | on: | ||||||
|  |   push: | ||||||
|  |     branches: | ||||||
|  |       - 'master' | ||||||
|  |       - 'releases/v*' | ||||||
|  |     paths-ignore: | ||||||
|  |       - '**.md' | ||||||
|  |   pull_request: | ||||||
|  |     paths-ignore: | ||||||
|  |       - '**.md' | ||||||
|  | 
 | ||||||
|  | jobs: | ||||||
|  |   test-containerized: | ||||||
|  |     runs-on: ubuntu-latest | ||||||
|  |     steps: | ||||||
|  |       - | ||||||
|  |         name: Checkout | ||||||
|  |         uses: actions/checkout@v2.3.3 | ||||||
|  |       - | ||||||
|  |         name: Validate | ||||||
|  |         run: docker buildx bake validate | ||||||
|  |       - | ||||||
|  |         name: Test | ||||||
|  |         run: docker buildx bake test | ||||||
|  | 
 | ||||||
|  |   test: | ||||||
|  |     runs-on: ${{ matrix.os }} | ||||||
|  |     strategy: | ||||||
|  |       fail-fast: false | ||||||
|  |       matrix: | ||||||
|  |         os: | ||||||
|  |           - ubuntu-latest | ||||||
|  |           - macOS-latest | ||||||
|  |           - windows-latest | ||||||
|  |     steps: | ||||||
|  |       - | ||||||
|  |         name: Checkout | ||||||
|  |         uses: actions/checkout@v2.3.3 | ||||||
|  |       - | ||||||
|  |         name: Install | ||||||
|  |         run: yarn install | ||||||
|  |       - | ||||||
|  |         name: Test | ||||||
|  |         run: yarn run test | ||||||
|  |       - | ||||||
|  |         name: Upload coverage | ||||||
|  |         uses: codecov/codecov-action@v1.0.13 | ||||||
|  |         if: success() | ||||||
|  |         with: | ||||||
|  |           token: ${{ secrets.CODECOV_TOKEN }} | ||||||
|  |           file: ./coverage/clover.xml | ||||||
| @ -20,6 +20,7 @@ FROM base AS build | |||||||
| RUN yarn build | RUN yarn build | ||||||
| 
 | 
 | ||||||
| FROM deps AS test | FROM deps AS test | ||||||
|  | COPY . . | ||||||
| RUN yarn run test | RUN yarn run test | ||||||
| 
 | 
 | ||||||
| FROM base AS run-format | FROM base AS run-format | ||||||
|  | |||||||
| @ -12,6 +12,8 @@ GitHub Action to extract metadata (tags, labels) for Docker. This action is part | |||||||
| 
 | 
 | ||||||
| If you are interested, [check out](https://git.io/Je09Y) my other :octocat: GitHub Actions! | If you are interested, [check out](https://git.io/Je09Y) my other :octocat: GitHub Actions! | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | 
 | ||||||
| ___ | ___ | ||||||
| 
 | 
 | ||||||
| * [Features](#features) | * [Features](#features) | ||||||
| @ -25,7 +27,7 @@ ___ | |||||||
| 
 | 
 | ||||||
| ## Features | ## Features | ||||||
| 
 | 
 | ||||||
| * Docker tags generated through GitHub action event and Git metadata | * Docker tags generated from GitHub action event and Git metadata | ||||||
| * [OCI Image Format Specification](https://github.com/opencontainers/image-spec/blob/master/annotations.md) used to generate Docker labels | * [OCI Image Format Specification](https://github.com/opencontainers/image-spec/blob/master/annotations.md) used to generate Docker labels | ||||||
| 
 | 
 | ||||||
| ## Usage | ## Usage | ||||||
| @ -104,7 +106,7 @@ Following inputs can be used as `step.with` keys | |||||||
| |---------------------|----------|------------------------------------| | |---------------------|----------|------------------------------------| | ||||||
| | `images`            | List/CSV | List of Docker images to use as base name for tags | | | `images`            | List/CSV | List of Docker images to use as base name for tags | | ||||||
| | `tag-sha`           | Bool     | Add git short SHA as Docker tag (default `false`) | | | `tag-sha`           | Bool     | Add git short SHA as Docker tag (default `false`) | | ||||||
| | `tag-edge`          | String   | Branch that will be tagged as edge (default `${{ repo.default_branch }}` | | | `tag-edge`          | String   | Branch that will be tagged as edge (default `repo.default_branch`) | | ||||||
| | `sep-tags`          | String   | Separator to use for tags output (default `\n`) | | | `sep-tags`          | String   | Separator to use for tags output (default `\n`) | | ||||||
| | `sep-labels`        | String   | Separator to use for labels output (default `\n`) | | | `sep-labels`        | String   | Separator to use for labels output (default `\n`) | | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -15,15 +15,13 @@ inputs: | |||||||
|     default: 'false' |     default: 'false' | ||||||
|     required: false |     required: false | ||||||
|   tag-edge: |   tag-edge: | ||||||
|     description: 'Branch that will be tagged as edge (default ${{ repo.default_branch }})' |     description: 'Branch that will be tagged as edge (default repo.default_branch)' | ||||||
|     required: false |     required: false | ||||||
|   sep-tags: |   sep-tags: | ||||||
|     description: 'Separator to use for tags output (default \n)' |     description: 'Separator to use for tags output (default \n)' | ||||||
|     default: '\n' |  | ||||||
|     required: false |     required: false | ||||||
|   sep-labels: |   sep-labels: | ||||||
|     description: 'Separator to use for labels output (default \n)' |     description: 'Separator to use for labels output (default \n)' | ||||||
|     default: '\n' |  | ||||||
|     required: false |     required: false | ||||||
|   github-token: |   github-token: | ||||||
|     description: 'GitHub Token as provided by secrets' |     description: 'GitHub Token as provided by secrets' | ||||||
|  | |||||||
							
								
								
									
										9
									
								
								dist/index.js
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								dist/index.js
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -115,7 +115,6 @@ function run() { | |||||||
|             const context = github.context(); |             const context = github.context(); | ||||||
|             const repo = yield github.repo(inputs.githubToken); |             const repo = yield github.repo(inputs.githubToken); | ||||||
|             core.startGroup(`Context info`); |             core.startGroup(`Context info`); | ||||||
|             core.info(`repo: ${context.repo}`); |  | ||||||
|             core.info(`eventName: ${context.eventName}`); |             core.info(`eventName: ${context.eventName}`); | ||||||
|             core.info(`sha: ${context.sha}`); |             core.info(`sha: ${context.sha}`); | ||||||
|             core.info(`ref: ${context.ref}`); |             core.info(`ref: ${context.ref}`); | ||||||
| @ -133,12 +132,16 @@ function run() { | |||||||
|             core.setOutput('version', version); |             core.setOutput('version', version); | ||||||
|             const tags = meta.tags(); |             const tags = meta.tags(); | ||||||
|             core.startGroup(`Docker tags`); |             core.startGroup(`Docker tags`); | ||||||
|             core.info(JSON.stringify(tags)); |             for (let tag of tags) { | ||||||
|  |                 core.info(tag); | ||||||
|  |             } | ||||||
|             core.endGroup(); |             core.endGroup(); | ||||||
|             core.setOutput('tags', tags.join(inputs.sepTags)); |             core.setOutput('tags', tags.join(inputs.sepTags)); | ||||||
|             const labels = meta.labels(); |             const labels = meta.labels(); | ||||||
|             core.startGroup(`Docker labels`); |             core.startGroup(`Docker labels`); | ||||||
|             core.info(JSON.stringify(labels)); |             for (let label of labels) { | ||||||
|  |                 core.info(label); | ||||||
|  |             } | ||||||
|             core.endGroup(); |             core.endGroup(); | ||||||
|             core.setOutput('labels', labels.join(inputs.sepTags)); |             core.setOutput('labels', labels.join(inputs.sepTags)); | ||||||
|         } |         } | ||||||
|  | |||||||
| @ -15,7 +15,6 @@ async function run() { | |||||||
|     const context: Context = github.context(); |     const context: Context = github.context(); | ||||||
|     const repo: ReposGetResponseData = await github.repo(inputs.githubToken); |     const repo: ReposGetResponseData = await github.repo(inputs.githubToken); | ||||||
|     core.startGroup(`Context info`); |     core.startGroup(`Context info`); | ||||||
|     core.info(`repo: ${context.repo}`); |  | ||||||
|     core.info(`eventName: ${context.eventName}`); |     core.info(`eventName: ${context.eventName}`); | ||||||
|     core.info(`sha: ${context.sha}`); |     core.info(`sha: ${context.sha}`); | ||||||
|     core.info(`ref: ${context.ref}`); |     core.info(`ref: ${context.ref}`); | ||||||
| @ -36,13 +35,17 @@ async function run() { | |||||||
| 
 | 
 | ||||||
|     const tags: Array<string> = meta.tags(); |     const tags: Array<string> = meta.tags(); | ||||||
|     core.startGroup(`Docker tags`); |     core.startGroup(`Docker tags`); | ||||||
|     core.info(JSON.stringify(tags)); |     for (let tag of tags) { | ||||||
|  |       core.info(tag); | ||||||
|  |     } | ||||||
|     core.endGroup(); |     core.endGroup(); | ||||||
|     core.setOutput('tags', tags.join(inputs.sepTags)); |     core.setOutput('tags', tags.join(inputs.sepTags)); | ||||||
| 
 | 
 | ||||||
|     const labels: Array<string> = meta.labels(); |     const labels: Array<string> = meta.labels(); | ||||||
|     core.startGroup(`Docker labels`); |     core.startGroup(`Docker labels`); | ||||||
|     core.info(JSON.stringify(labels)); |     for (let label of labels) { | ||||||
|  |       core.info(label); | ||||||
|  |     } | ||||||
|     core.endGroup(); |     core.endGroup(); | ||||||
|     core.setOutput('labels', labels.join(inputs.sepTags)); |     core.setOutput('labels', labels.join(inputs.sepTags)); | ||||||
|   } catch (error) { |   } catch (error) { | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 CrazyMax
						CrazyMax