Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ci: add publish squashfs layers #10

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 32 additions & 1 deletion .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ jobs:
name: Test stacker-build-push-action
steps:
- uses: actions/checkout@v2

- name: Run stacker-build with a Dockerfile
uses: ./
with:
Expand Down Expand Up @@ -98,3 +97,35 @@ jobs:
url: docker://localhost:5000/five/app
layer-type: 'tar squashfs'
skip-tls: true

- name: Run stacker-build with push, tags, build-args and layer-type(squashfs)
uses: ./
with:
file: 'test/stacker.yaml'
build-args: |
SUB1=VAR1
SUB2=VAR2
SUB3=VAR3
tags: v1 latest
url: docker://localhost:5000/six/app
layer-type: 'squashfs'
skip-tls: true

- name: Check images were published
run: |
docker pull localhost:5000/one/app/test:v1
docker pull localhost:5000/one/app/test
docker pull localhost:5000/two/app/test:v1
docker pull localhost:5000/two/app/test
docker pull localhost:5000/three/app/test:v1
docker pull localhost:5000/three/app/test
docker pull localhost:5000/four/app/app:v1
docker pull localhost:5000/four/app/app
docker pull localhost:5000/five/app/layer3_1:v2
docker pull localhost:5000/five/app/layer3_1:v2

# check squashfs
curl http://localhost:5000/v2/six/app/test/manifests/v1-squashfs
curl http://localhost:5000/v2/six/app/test/manifests/latest-squashfs
curl http://localhost:5000/v2/five/app/layer3_2/manifests/v2-squashfs
curl http://localhost:5000/v2/five/app/layer3_1/manifests/v2-squashfs
4 changes: 2 additions & 2 deletions action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ inputs:
file-pattern:
description: 'regex pattern to use when searching for stackerfile paths, used with dir arg'
required: false
default: '\\/stacker.yaml$'
default: 'stacker.yaml'
layer-type:
description: 'Set the output layer type (supported values: tar, squashfs) separated by whitespace'
required: false
Expand All @@ -41,7 +41,7 @@ inputs:
description: 'Tags used when pushing to remote OCI registry, separated by whitespace'
required: false
url:
description: 'Remote registry URL, eg: docker://ghcr.io/myRepo'
description: 'Remote registry URL, eg: docker://ghcr.io/myrepo'
required: false
username:
description: 'Username for the remote registry'
Expand Down
3 changes: 2 additions & 1 deletion dist/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -12462,6 +12462,7 @@ class StackerCLI {
build(stackerfile, cachedir, stackerdir, stackerfilePattern, layerType, substitutes, subfile) {
return __awaiter(this, void 0, void 0, function* () {
const args = ["--debug"];
core.info(`building`);
args.push("--stacker-dir");
args.push(cachedir);
if (stackerdir) {
Expand Down Expand Up @@ -12501,6 +12502,7 @@ class StackerCLI {
publish(stackerfile, cachedir, stackerdir, stackerfilePattern, layerType, substitutes, subfile, url, tags, username, password, skipTLS) {
return __awaiter(this, void 0, void 0, function* () {
const args = ["--debug"];
core.info(`publishing`);
args.push("--stacker-dir");
args.push(cachedir);
args.push("publish");
Expand Down Expand Up @@ -12732,7 +12734,6 @@ function run() {
const substitutes = getInputList("build-args");
var subfile = core.getInput("build-args-file");
const layerTypes = getSpaceSeparatedInput("layer-type");
core.info(`dockerfile val: ${dockerfile}`);
if (dockerfile) {
let [cmdRes, convertRes] = yield cli.convertDockerfile(dockerfile);
if (convertRes && (yield cmdRes).exitCode == 0) {
Expand Down
1 change: 0 additions & 1 deletion src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,6 @@ export async function run(): Promise<void> {
// get layer-type from input
const layerTypes = utils.getSpaceSeparatedInput("layer-type");

core.info(`dockerfile val: ${dockerfile}`);
if (dockerfile) {
let [cmdRes, convertRes] = await cli.convertDockerfile(dockerfile);

Expand Down
6 changes: 5 additions & 1 deletion src/stacker.ts
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,8 @@ export class StackerCLI {
layerType: string[], substitutes: string[], subfile: string): Promise<CommandResult> {
const args: string[] = ["--debug"];

core.info(`building`);

args.push("--stacker-dir");
args.push(cachedir);

Expand Down Expand Up @@ -102,14 +104,16 @@ export class StackerCLI {

return res;
})

return res;
}

async publish(stackerfile: string, cachedir: string, stackerdir: string, stackerfilePattern: string, layerType: string[], substitutes: string[],
subfile: string, url: string, tags: string[], username: string, password: string, skipTLS: boolean): Promise<CommandResult> {
const args: string[] = ["--debug"];

core.info(`publishing`);

args.push("--stacker-dir");
args.push(cachedir);

Expand Down
6 changes: 3 additions & 3 deletions test/builds/first/stacker.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@ layer1_1:
type: docker
url: docker://centos:latest
import:
- import1
- importfile1
run: |
cp /stacker/imports/import1 /root/import1
cp /stacker/imports/importfile1 /root/importfile1
layer1_2:
from:
type: docker
url: docker://centos:latest
run:
touch /root/import0
touch /root/importfile0
8 changes: 4 additions & 4 deletions test/builds/second/stacker.yaml
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
config:
prerequisites:
- ../sub1/stacker.yaml
- ../first/stacker.yaml
layer2:
from:
type: built
tag: layer1_1
import:
- import2
- importfile2
run: |
cp /stacker/imports/import2 /root/import2
cp /root/import1 /root/import1_copied
cp /stacker/imports/importfile2 /root/importfile2
cp /root/importfile1 /root/importfile1_copied
8 changes: 4 additions & 4 deletions test/builds/third/stacker.yaml
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
config:
prerequisites:
- ../sub1/stacker.yaml
- ../sub2/stacker.yaml
- ../first/stacker.yaml
- ../second/stacker.yaml
layer3_1:
from:
type: built
tag: layer2
run: |
cp /root/import2 /root/import2_copied
cp /root/importfile2 /root/importfile2_copied
layer3_2:
from:
type: built
tag: layer1_2
run: |
cp /root/import0 /root/import0_copied
cp /root/importfile0 /root/importfile0_copied
Loading