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 7397af3
Showing 1 changed file with 71 additions and 25 deletions.
96 changes: 71 additions & 25 deletions .github/workflows/pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ env:
# github.repository as <account>/<repo>
#IMAGE_NAME: ${{ github.repository }}
IMAGE_NAME: theshellland/automonisaur
DOCKER_IMAGE: automonisaur.tar

PKG: automon
PYPI: automonisaur
Expand All @@ -27,16 +28,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: ${{ env.IMAGE_NAME }}
outputs: type=docker,dest=/tmp/${{ env.DOCKER_IMAGE }}
- name: Upload artifact
uses: actions/upload-artifact@v2
with:
name: ${{ env.IMAGE_NAME }}
path: /tmp/${{ env.DOCKER_IMAGE }}


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: ${{ env.IMAGE_NAME }}
path: /tmp
- name: Load Docker image
run: |
docker load --input /tmp/${{ env.DOCKER_IMAGE }}
docker run ${{ env.IMAGE_NAME }} test
publish-coverage:
Expand All @@ -45,37 +70,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: ${{ env.IMAGE_NAME }}
path: /tmp
- name: Load Docker image
run: |
docker load --input /tmp/${{ env.DOCKER_IMAGE }}
# - 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: ${{ env.IMAGE_NAME }}
path: /tmp
- name: Load Docker image
run: |
docker load --input /tmp/${{ env.DOCKER_IMAGE }}
docker run ${{ env.IMAGE_NAME }} upload
publish-docker:
Expand Down

0 comments on commit 7397af3

Please sign in to comment.