-
Notifications
You must be signed in to change notification settings - Fork 110
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #174 from shimish2/add-conformance-test
ci/cd: add github action to enable conformance test after every PR
- Loading branch information
Showing
6 changed files
with
183 additions
and
10 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
# This is a conformance test workflow that is automatically triggered with each PR | ||
|
||
name: conformance | ||
|
||
# Controls when the action will run. Workflow runs when manually triggered using the UI | ||
# or API. | ||
on: | ||
push: | ||
branches: | ||
- master | ||
pull_request: | ||
branches: | ||
- master | ||
|
||
# A workflow run is made up of one or more jobs that can run sequentially or in parallel | ||
jobs: | ||
run: | ||
runs-on: ubuntu-latest | ||
# Steps represent a sequence of tasks that will be executed as part of the job | ||
steps: | ||
- name: setup docker | ||
uses: docker-practice/[email protected] | ||
with: | ||
docker_version: 18.09 | ||
docker_channel: stable | ||
- name: checkout this PR | ||
uses: actions/checkout@v2 | ||
with: | ||
ref: ${{ github.event.pull_request.head.sha }} | ||
path: zot | ||
repository: anuvu/zot | ||
- name: start zot server | ||
run: | | ||
cd ./zot | ||
IP=`hostname -I | awk '{print $1}'` | ||
echo "ZOT_URL=http://${IP}:5000" >> $GITHUB_ENV | ||
ZOT_REF="local-zot:v$(date +%Y%m%d%H%M%S)" | ||
docker build -f ./Dockerfile-conformance -t "${ZOT_REF}" . | ||
docker run --rm -p 5000:5000 -v "$(pwd)":/go/src/github.com/anuvu/zot -idt "${ZOT_REF}" | ||
- name: Run OCI Distribution Spec conformance tests | ||
uses: opencontainers/distribution-spec@master | ||
env: | ||
OCI_ROOT_URL: ${{ env.ZOT_URL }} | ||
OCI_NAMESPACE: oci-conformance/distribution-test | ||
OCI_TEST_PULL: 1 | ||
OCI_TEST_PUSH: 1 | ||
OCI_TEST_CONTENT_DISCOVERY: 1 | ||
OCI_TEST_CONTENT_MANGEMENT: 1 | ||
OCI_HIDE_SKIPPED_WORKFLOWS: 1 | ||
- run: mkdir -p .out/ && mv {report.html,junit.xml} .out/ | ||
if: always() | ||
#run: docker run --rm -v $(pwd)/results:/results -w /results -e OCI_ROOT_URL=${{ env.OCI_ROOT_URL }} -e OCI_NAMESPACE="anuvu/zot" -e OCI_TEST_PULL=1 -e OCI_TEST_PUSH=1 -e OCI_TEST_CONTENT_DISCOVERY=1 -e OCI_TEST_CONTENT_MANAGEMENT=1 -e OCI_HIDE_SKIPPED_WORKFLOWS=0 -e OCI_DEBUG="true" ghcr.io/opencontainers/distribution-spec/conformance:db4cc68 | ||
- name: Upload test results zip as build artifact | ||
uses: actions/upload-artifact@v1 | ||
with: | ||
name: oci-test-results-${{ github.sha }} | ||
path: .out/ | ||
if: github.event == 'push' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
# --- | ||
# Stage 1: Install certs, build binary, create default config file | ||
# --- | ||
FROM docker.io/golang:1.13.6-alpine3.11 AS builder | ||
RUN apk --update add git make ca-certificates | ||
RUN mkdir -p /go/src/github.com/anuvu/zot | ||
WORKDIR /go/src/github.com/anuvu/zot | ||
COPY . . | ||
RUN CGO_ENABLED=0 make clean binary | ||
RUN echo -e '# Default config file for zot server\n\ | ||
http:\n\ | ||
address: 0.0.0.0\n\ | ||
port: 5000\n\ | ||
storage:\n\ | ||
rootDirectory: /var/lib/registry\n\ | ||
gc: false\n\ | ||
dedupe: false' > config.yml && cat config.yml | ||
|
||
# --- | ||
# Stage 2: Final image with nothing but certs, binary, and default config file | ||
# --- | ||
FROM scratch AS final | ||
COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt | ||
COPY --from=builder /go/src/github.com/anuvu/zot/bin/zot /zot | ||
COPY --from=builder /go/src/github.com/anuvu/zot/config.yml /etc/zot/config.yml | ||
ENTRYPOINT ["/zot"] | ||
EXPOSE 5000 | ||
VOLUME ["/var/lib/registry"] | ||
CMD ["serve", "/etc/zot/config.yml"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters