Skip to content

Commit

Permalink
github actions: docker images need to be stored and retrieved from ar…
Browse files Browse the repository at this point in the history
…tifacts, to pass to another job

this is really dumb, but okay

docker/build-push-action#225 (comment)
  • Loading branch information
naisanzaa committed Sep 19, 2021
1 parent 96ac228 commit 0f4088e
Showing 1 changed file with 70 additions and 25 deletions.
95 changes: 70 additions & 25 deletions .github/workflows/pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,16 +27,40 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- run: docker build . --tag ${{ env.IMAGE_NAME }}

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Build and push
uses: docker/build-push-action@v2
with:
context: .
file: ./Dockerfile
tags: ${{ IMAGE_NAME }}
outputs: type=docker,dest=/tmp/${{ env.IMAGE_NAME }}.tar
- name: Upload artifact
uses: actions/upload-artifact@v2
with:
name: ${{ IMAGE_NAME }}
path: /tmp/${{ env.IMAGE_NAME }}.tar


test:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- run: docker build . --tag ${{ env.IMAGE_NAME }}
- run: docker run ${{ env.IMAGE_NAME }} test

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Download artifact
uses: actions/download-artifact@v2
with:
name: ${{ IMAGE_NAME }}
path: /tmp
- name: Load Docker image
run: |
docker load --input /tmp/${{ env.IMAGE_NAME }}.tar
docker run ${{ env.IMAGE_NAME }} test
publish-coverage:
Expand All @@ -45,37 +69,58 @@ jobs:
# upload coverage report
steps:
- uses: actions/checkout@v2
- run: docker build . --tag ${{ env.IMAGE_NAME }}

- name: Codecov
uses: codecov/[email protected]
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Download artifact
uses: actions/download-artifact@v2
with:
# User defined upload name. Visible in Codecov UI
name: # optional
# Repository upload token - get it from codecov.io. Required only for private repositories
token: # optional
# Path to coverage file to upload
file: # optional
# Comma-separated list of files to upload
files: # optional
# Directory to search for coverage reports.
directory: # optional
# Flag upload to group coverage metrics (e.g. unittests | integration | ui,chrome)
flags: # optional
# Write upload file to path before uploading
path_to_write_report: # optional
# Environment variables to tag the upload with (e.g. PYTHON | OS,PYTHON)
env_vars: # optional
# Specify whether or not CI build should fail if Codecov runs into an error during upload
fail_ci_if_error: # optional
name: ${{ IMAGE_NAME }}
path: /tmp
- name: Load Docker image
run: |
docker load --input /tmp/${{ env.IMAGE_NAME }}.tar
# - name: Codecov
# uses: codecov/[email protected]
# with:
# # User defined upload name. Visible in Codecov UI
# name: # optional
# # Repository upload token - get it from codecov.io. Required only for private repositories
# token: # optional
# # Path to coverage file to upload
# file: # optional
# # Comma-separated list of files to upload
# files: # optional
# # Directory to search for coverage reports.
# directory: # optional
# # Flag upload to group coverage metrics (e.g. unittests | integration | ui,chrome)
# flags: # optional
# # Write upload file to path before uploading
# path_to_write_report: # optional
# # Environment variables to tag the upload with (e.g. PYTHON | OS,PYTHON)
# env_vars: # optional
# # Specify whether or not CI build should fail if Codecov runs into an error during upload
# fail_ci_if_error: # optional


publish-pypi:
needs: test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- run: docker run ${{ env.IMAGE_NAME }} upload

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Download artifact
uses: actions/download-artifact@v2
with:
name: ${{ IMAGE_NAME }}
path: /tmp
- name: Load Docker image
run: |
docker load --input /tmp/${{ env.IMAGE_NAME }}.tar
docker run ${{ env.IMAGE_NAME }} upload
publish-docker:
Expand Down

0 comments on commit 0f4088e

Please sign in to comment.