Skip to content

Commit

Permalink
move from docker to stacker
Browse files Browse the repository at this point in the history
  • Loading branch information
eusebiu-constantin-petu-dbk committed Apr 12, 2022
1 parent 4e1d3f4 commit 71d49b8
Show file tree
Hide file tree
Showing 5 changed files with 175 additions and 53 deletions.
77 changes: 27 additions & 50 deletions .github/workflows/ci-cd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -101,65 +101,42 @@ jobs:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build zot container image with stacker
- name: Build and push zot container image
uses: project-stacker/stacker-build-push-action@main
with:
stackerfile: 'stacker.yaml'
# stacker will fail if container name contains path separators
#substitute: REPO_NAME=${{ github.repository }}-${{ matrix.os }}-${{ matrix.arch }}
substitutes: COMMIT=${{ github.event.release.tag_name }}-${{ github.sha }} OS=${{ matrix.os }} ARCH=${{ matrix.arch }}
url: docker://ghcr.io/peusebiu/
substitutes: COMMIT=${{ github.event.release.tag_name }}-${{ github.sha }} OS=${{ matrix.os }} ARCH=${{ matrix.arch }} REPO_NAME=zot-${{ matrix.os }}-${{ matrix.arch }}
url: docker://ghcr.io/${{ github.repository_owner }}
tags: ${{ github.event.release.tag_name }} latest
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build zot container image
uses: docker/build-push-action@v2
with:
build-args: |
COMMIT=${{ github.event.release.tag_name }}-${{ github.sha }}
OS=${{ matrix.os }}
ARCH=${{ matrix.arch }}
push: true
file: Dockerfile
tags: |
ghcr.io/${{ github.repository }}-${{ matrix.os }}-${{ matrix.arch }}:${{ github.event.release.tag_name }}
ghcr.io/${{ github.repository }}-${{ matrix.os }}-${{ matrix.arch }}:latest
- name: Build zot-minimal container image
uses: docker/build-push-action@v2
- name: Build and push zot-minimal container image
uses: project-stacker/stacker-build-push-action@main
with:
build-args: |
COMMIT=${{ github.event.release.tag_name }}-${{ github.sha }}
OS=${{ matrix.os }}
ARCH=${{ matrix.arch }}
push: true
file: Dockerfile-minimal
tags: |
ghcr.io/${{ github.repository }}-minimal-${{ matrix.os }}-${{ matrix.arch }}:${{ github.event.release.tag_name }}
ghcr.io/${{ github.repository }}-minimal-${{ matrix.os }}-${{ matrix.arch }}:latest
- name: Build zot-exporter container image
uses: docker/build-push-action@v2
stackerfile: 'stacker.yaml'
substitutes: COMMIT=${{ github.event.release.tag_name }}-${{ github.sha }} OS=${{ matrix.os }} ARCH=${{ matrix.arch }} EXT=-minimal REPO_NAME=zot-minimal-${{ matrix.os }}-${{ matrix.arch }}
url: docker://ghcr.io/${{ github.repository_owner }}
tags: ${{ github.event.release.tag_name }} latest
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push zot-exporter container image
uses: project-stacker/stacker-build-push-action@main
with:
build-args: |
COMMIT=${{ github.event.release.tag_name }}-${{ github.sha }}
OS=${{ matrix.os }}
ARCH=${{ matrix.arch }}
push: true
file: Dockerfile-zxp
tags: |
ghcr.io/${{ github.repository }}-zxp-${{ matrix.os }}-${{ matrix.arch }}:${{ github.event.release.tag_name }}
ghcr.io/${{ github.repository }}-zxp-${{ matrix.os }}-${{ matrix.arch }}:latest
- name: Build zb container image
uses: docker/build-push-action@v2
stackerfile: 'stacker-zxp.yaml'
substitutes: COMMIT=${{ github.event.release.tag_name }}-${{ github.sha }} OS=${{ matrix.os }} ARCH=${{ matrix.arch }} REPO_NAME=zxp-${{ matrix.os }}-${{ matrix.arch }}
url: docker://ghcr.io/${{ github.repository_owner }}
tags: ${{ github.event.release.tag_name }} latest
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push zb container image
uses: project-stacker/stacker-build-push-action@main
with:
build-args: |
COMMIT=${{ github.event.release.tag_name }}-${{ github.sha }}
OS=${{ matrix.os }}
ARCH=${{ matrix.arch }}
push: true
file: Dockerfile-zb
tags: |
ghcr.io/${{ github.repository }}-zb-${{ matrix.os }}-${{ matrix.arch }}:${{ github.event.release.tag_name }}
ghcr.io/${{ github.repository }}-zb-${{ matrix.os }}-${{ matrix.arch }}:latest
stackerfile: 'stacker-zb.yaml'
substitutes: COMMIT=${{ github.event.release.tag_name }}-${{ github.sha }} OS=${{ matrix.os }} ARCH=${{ matrix.arch }} REPO_NAME=zb-${{ matrix.os }}-${{ matrix.arch }}
url: docker://ghcr.io/${{ github.repository_owner }}
tags: ${{ github.event.release.tag_name }} latest
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Run Trivy vulnerability scanner
uses: aquasecurity/trivy-action@master
with:
Expand Down
36 changes: 36 additions & 0 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: "tagged-release"

on:
push:
tags:
- "v*"

jobs:
tagged-release:
name: "Tagged Release"
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- name: Install go
uses: actions/setup-go@v2
with:
go-version: 1.17.x
- name: install dependencies
run: |
sudo apt-get update
sudo apt-get install -yy lxc-utils lxc-dev libacl1-dev jq libcap-dev libseccomp-dev libpam-dev bats parallel libzstd-dev
GO111MODULE=off go get github.com/opencontainers/umoci/cmd/umoci
sudo cp ~/go/bin/umoci /usr/bin
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin
sudo apt-get install -yy autoconf automake make autogen autoconf libtool binutils git squashfs-tools libcryptsetup-dev libdevmapper-dev cryptsetup-bin
(cd /tmp && git clone https://github.com/AgentD/squashfs-tools-ng && cd squashfs-tools-ng && ./autogen.sh && ./configure --prefix=/usr && make -j2 && sudo make -j2 install && sudo ldconfig -v)
(cd /tmp && git clone https://github.com/anuvu/squashfs && cd squashfs && make && sudo cp squashtool/squashtool /usr/bin)
- run: |
make check PRIVILEGE_LEVEL=priv
- uses: marvinpinto/action-automatic-releases@latest
with:
repo_token: "${{ secrets.GITHUB_TOKEN }}"
automatic_release_tag: latest
prerelease: false
files: stacker
28 changes: 28 additions & 0 deletions stacker-zb.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
build:
from:
type: docker
url: docker://ghcr.io/project-zot/golang:1.17
binds:
- . -> /zotcopy
run: |
export GO111MODULE=on
export GOPATH='/go'
export HOME='/root'
export PATH='/go/bin:/usr/local/go/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
mkdir -p /go/src/github.com/project-zot
cd /go/src/github.com/project-zot
git clone /zotcopy zot
cd /go/src/github.com/project-zot/zot
make COMMIT=${{COMMIT}} OS=${{OS}} ARCH=${{ARCH}} clean bench
build_only: true

"${{REPO_NAME:zb}}":
from:
type: docker
url: docker://centos:latest
import:
- stacker://build/go/src/github.com/project-zot/zot/bin/zb-${{OS}}-${{ARCH}}
run: |
cp /stacker/zb-${{OS}}-${{ARCH}} /usr/bin/zb
entrypoint:
- /usr/bin/zb
52 changes: 52 additions & 0 deletions stacker-zxp.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
build:
from:
type: docker
url: docker://ghcr.io/project-zot/golang:1.17
binds:
- . -> /zotcopy
run: |
export GO111MODULE=on
export GOPATH='/go'
export HOME='/root'
export PATH='/go/bin:/usr/local/go/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
mkdir -p /go/src/github.com/project-zot
cd /go/src/github.com/project-zot
git clone /zotcopy zot
cd /go/src/github.com/project-zot/zot
make COMMIT=${{COMMIT}} OS=${{OS}} ARCH=${{ARCH}} clean exporter-minimal
cat > config.json << EOF
{
"Server":{
"protocol":"http",
"host": "127.0.0.1",
"port": "5000"
},
"Exporter":{
"port":"5001",
"log":{
"level":"debug"
}
}
}
EOF
cat config.json
build_only: true

"${{REPO_NAME:zxp}}":
from:
type: docker
url: docker://centos:latest
import:
- stacker://build/go/src/github.com/project-zot/zot/bin/zxp-${{OS}}-${{ARCH}}
- stacker://build/go/src/github.com/project-zot/zot/config.json
run: |
cp /stacker/zxp-${{OS}}-${{ARCH}} /usr/bin/zxp
mkdir -p /etc/zxp
cp /stacker/config.json /etc/zxp/config.json
entrypoint:
- /usr/bin/zxp
cmd:
- config
- /etc/zxp/config.json
35 changes: 32 additions & 3 deletions stacker.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,43 @@ build:
cd /go/src/github.com/project-zot
git clone /zotcopy zot
cd /go/src/github.com/project-zot/zot
make COMMIT=${{COMMIT}} OS=${{OS}} ARCH=${{ARCH}} binary
make COMMIT=${{COMMIT}} OS=${{OS}} ARCH=${{ARCH}} binary${{EXT:}}
cat > config.json << EOF
{
"storage":{
"rootDirectory":"/var/lib/registry"
},
"http":{
"address":"0.0.0.0",
"port":"5000"
},
"log":{
"level":"debug"
}
}
EOF
cat config.json
build_only: true

"${{REPO_NAME:zot}}":
from:
type: docker
url: docker://centos:latest
import:
- stacker://build//go/src/github.com/project-zot/zot/bin/zot-${{OS}}-${{ARCH}}
- stacker://build/go/src/github.com/project-zot/zot/bin/zot-${{OS}}-${{ARCH}}${{EXT:}}
- stacker://build/go/src/github.com/project-zot/zot/config.json
- stacker://build/etc/ssl/certs/ca-certificates.crt
run: |
cp /stacker/zot-${{OS}}-${{ARCH}} /usr/bin/zot
cp /stacker/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
cp /stacker/zot-${{OS}}-${{ARCH}}${{EXT:}} /usr/bin/zot
mkdir -p /etc/zot
cp /stacker/config.json /etc/zot/config.json
entrypoint:
- /usr/bin/zot
volumes:
- /var/lib/registry
cmd:
- serve
- /etc/zot/config.json

0 comments on commit 71d49b8

Please sign in to comment.