Commit graph

89 commits

Author SHA1 Message Date
David Kovari
ef56bac838 Improve support for cache_to and cache_from & add cache_images (#129)
### 📖 Summary

Originally, the cache_to and cache_from were being converted into string arrays. Then their contents were looped over to add to the build command. This has the side affect of stopping the user from setting additional options for the cache-to and cache-from args since their command input format uses commas. i.e. `type=registry,ref=imagepath,mode=max` would result in `--cache-to type=registry --cache-to ref=imagepath --cache-to mode=max`. The command was not designed to be used that way.

The one reason I can think of for cache_to and cache_from to be arrays is so you could have multiple cache registries. But I can't confirm that the build command even works like this.

### 📑 Build PR Images?

PR images are not needed

### 💬 Details

_No response_

Reviewed-on: https://codeberg.org/woodpecker-plugins/docker-buildx/pulls/129
Reviewed-by: Patrick Schratz <pat-s@noreply.codeberg.org>
Co-authored-by: David Kovari <dakovari@gmail.com>
Co-committed-by: David Kovari <dakovari@gmail.com>
2024-02-02 20:25:30 +00:00
6543
5d98a5da22 Add option to set individual mirrors for all logins (#122)
- also address last nits of #119

Co-authored-by: Patrick Schratz <pat-s@noreply.codeberg.org>
Reviewed-on: https://codeberg.org/woodpecker-plugins/docker-buildx/pulls/122
Reviewed-by: Patrick Schratz <pat-s@noreply.codeberg.org>
2024-01-18 18:28:42 +00:00
6543
fef922e92a format via gofumpt (#123)
format code ;)

Reviewed-on: https://codeberg.org/woodpecker-plugins/docker-buildx/pulls/123
Reviewed-by: qwerty287 <qwerty287@noreply.codeberg.org>
Co-authored-by: 6543 <6543@obermui.de>
Co-committed-by: 6543 <6543@obermui.de>
2024-01-15 07:06:52 +00:00
David Kovari
55cc3b1d21 Add option to enable buildkit debug output (#119)
### 📖 Summary

- Add option to enable buildkit debug output
- Formats buildkit.toml using `github.com/pelletier/go-toml/v2`
- Sets docker.io registry mirror based on daemon.mirror setting

Co-authored-by: Patrick Schratz <pat-s@noreply.codeberg.org>
Co-authored-by: 6543 <6543@obermui.de>
Reviewed-on: https://codeberg.org/woodpecker-plugins/docker-buildx/pulls/119
Reviewed-by: 6543 <6543@obermui.de>
Co-authored-by: David Kovari <dakovari@gmail.com>
Co-committed-by: David Kovari <dakovari@gmail.com>
2024-01-14 23:35:00 +00:00
pat-s
5f5b2d4161 Document ECR settings and prefix settings with ecr_ (#115)
Prefixing to make the settings easier to distinguish from non-ECR ones.

Also expanded the multi-repo push example.

Reviewed-on: https://codeberg.org/woodpecker-plugins/docker-buildx/pulls/115
Reviewed-by: qwerty287 <qwerty287@noreply.codeberg.org>
Reviewed-by: 6543 <6543@obermui.de>
Co-authored-by: pat-s <patrick.schratz@gmail.com>
Co-committed-by: pat-s <patrick.schratz@gmail.com>
2023-12-30 13:50:43 +00:00
pat-s
e93554e4bc feat: add support for AWS ECR (#110)
fix #74

Mainly borrowed from https://github.com/drone-plugins/drone-docker/tree/master/cmd/drone-ecr.

`drone/ecr` is still on 20.10.14 and sparsely updated/maintained. Would be great to add support for additional registries like ECR to buildx.
The login process is as follows:

1. Call the AWS API with some arguments to get a short-lived auth token (12h)
2. Use the token and Username `AWS` for the `docker login` call

## Notes

- To push to ECR, the full registry URL must be given in the tag, i.e. `registry/owner/repo`. For this, `Registry` must also be added the to `Build` struct besides the `Settings` struct
- For now I've only referenced the source in `ecr.go` by using the most recent commit of today. Should this be done differently?
- The implementation here from me is simple and probably a bit "naive" as this is my first "real" golang feature PR.
- I've tested this change with a custom image and was able to successfully push to ECR while dynamically creating a repository. Proper tests would still be great...
- Vars `assumeRole` and `externalID` are somehow not exposed in https://plugins.drone.io/plugins/ecr and I am not sure if this is by design or because they were just forgotten. Anyhow, this is reason I didn't expose them for now and just added internal dummy vars.
Co-authored-by: pat-s <patrick.schratz@gmail.com>
Co-committed-by: pat-s <patrick.schratz@gmail.com>
2023-12-29 22:06:37 +00:00
OCram85
a0371f8850 adds driver-opt arg as plugin parameter (#93)
#### 📖 Summary

Adds `--driver-opt` buildx arg as plugin parameter. This should make it possible to pass through proxy settings.

#### 📑 Test Plan

> 💡 Select your test plan for the code changes.

-  [x] CI pipeline tests
- Custom test
-  No test plan

##### Details / Justification

Manually tested on own instance behind corporate proxy:

![image](/attachments/b65d981d-c9b8-4228-8e9c-61fa517d98b6)

Unfortunately  the `--build-arg` passthru seems not working

#### 📚 Additional Notes

- fixes #82
- still to do:
  - [x] update docs
  - [x] add usage example

> 💡NOTE: This is my first contribution in this codebase. Feedback and help is probably needed 😸

Reviewed-on: https://codeberg.org/woodpecker-plugins/docker-buildx/pulls/93
Reviewed-by: Patrick Schratz <pat-s@noreply.codeberg.org>
Co-authored-by: OCram85 <marco.blessing@googlemail.com>
Co-committed-by: OCram85 <marco.blessing@googlemail.com>
2023-10-25 09:58:02 +00:00
qwerty287
0f0aba7f82 Allow to load env file (#80)
closes https://codeberg.org/woodpecker-plugins/docker-buildx/issues/34

Reviewed-on: https://codeberg.org/woodpecker-plugins/docker-buildx/pulls/80
Reviewed-by: anbraten <anbraten@noreply.codeberg.org>
Co-authored-by: qwerty287 <ndev@web.de>
Co-committed-by: qwerty287 <ndev@web.de>
2023-10-08 08:49:51 +00:00
6543
37718ded77 Add option to overwrites tags option with values specified in an file (#62)
Reviewed-on: https://codeberg.org/woodpecker-plugins/docker-buildx/pulls/62
Reviewed-by: qwerty287 <qwerty287@noreply.codeberg.org>
2023-05-02 19:25:49 +00:00
miniduikboot
a187589df9 add cache_to option and remove manual image pull (#46)
Port from https://github.com/thegeeklab/drone-docker-buildx/pull/124

Basically docker cache got a bit fancier and now includes a cache manifest. Manually pulling these containers isn't sufficient enough, so remove the manual pull.

cache_to allows you to push your cache including a manifest to a remote location: https://docs.docker.com/engine/reference/commandline/buildx_build/#cache-to

Unfortunately this option isn't quite that useful: to fully use this feature, you need to supply your arguments in CSV format, which woodpecker unhelpfully splits into multiple completely separate arguments, breaking it :(

With a further change to fix that issue I managed to turn a multistage rust build from ~3 minutes down to 20 seconds.

Co-authored-by: miniduikboot <mini@duikbo.at>
Reviewed-on: https://codeberg.org/woodpecker-plugins/plugin-docker-buildx/pulls/46
Reviewed-by: 6543 <6543@obermui.de>
Co-authored-by: miniduikboot <miniduikboot@noreply.codeberg.org>
Co-committed-by: miniduikboot <miniduikboot@noreply.codeberg.org>
2022-11-23 15:55:12 +00:00
6543
57b0ae23c2 Remove "default_tags" as it's too similar to "default_tag" (#38)
Reviewed-on: https://codeberg.org/woodpecker-plugins/plugin-docker-buildx/pulls/38
Reviewed-by: Lauris BH <lafriks@noreply.codeberg.org>
Co-authored-by: 6543 <6543@obermui.de>
Co-committed-by: 6543 <6543@obermui.de>
2022-11-06 13:10:00 +01:00
gapodo
fce3289743 Add configurable tag for use with auto_tag (#36)
Implements #30, allows setting a (single) tag to override the default of `latest` allows for the woodpecker-ci usecase of setting `next` as the tag for the default branch.

Co-authored-by: Gapodo <gapodo@datenclown.at>
Reviewed-on: https://codeberg.org/woodpecker-plugins/plugin-docker-buildx/pulls/36
Reviewed-by: 6543 <6543@obermui.de>
Co-authored-by: gapodo <gapodo@geekvoid.net>
Co-committed-by: gapodo <gapodo@geekvoid.net>
2022-11-05 03:25:44 +01:00
6543
fca44ab7ae Fix func to determine default login (#29)
only add default login if auth profided or no login entry exist

Reviewed-on: https://codeberg.org/woodpecker-plugins/plugin-docker-buildx/pulls/29
Reviewed-by: qwerty287 <qwerty287@noreply.codeberg.org>
2022-10-11 11:38:36 +02:00
6543
25ad50a579 Add support for multible registrys (#23)
if normal settings `registry`, `username`... is set

that's used as default, else first logins entry is used.

```yml
settings:
  logins:
    - registry: https://codeberg.org
      username: "6543"
      password: geheim
    - registry: https://index.docker.io/v1/
      username: a6543
      password: anders_geheim
```

close #18

Reviewed-on: https://codeberg.org/woodpecker-plugins/plugin-docker-buildx/pulls/23
Reviewed-by: anbraten <anbraten@noreply.codeberg.org>
2022-10-08 16:02:02 +02:00
6543
10426e6a19 Allow multible Repos (#22)
close partialy #18

we still need to handle multible registry login

Reviewed-on: https://codeberg.org/woodpecker-plugins/plugin-docker-buildx/pulls/22
2022-09-28 15:17:39 +02:00
Lauris BH
be7d7c0244 Implement option to add image labels and generate automatic labels (#19)
Fixes #16

Results into labels:
![attels](/attachments/3aa6641e-fe50-4e28-be97-64c0afe2c35a)

Co-authored-by: Lauris BH <lauris@nix.lv>
Reviewed-on: https://codeberg.org/woodpecker-plugins/plugin-docker-buildx/pulls/19
Reviewed-by: 6543 <6543@obermui.de>
Co-authored-by: Lauris BH <lafriks@noreply.codeberg.org>
Co-committed-by: Lauris BH <lafriks@noreply.codeberg.org>
2022-09-28 02:16:57 +02:00
Lauris BH
b88f39c31f Add build output option (#11)
Fixes #6

Also updates dependencies

Co-authored-by: Lauris BH <lauris@nix.lv>
Reviewed-on: https://codeberg.org/woodpecker-plugins/plugin-docker-buildx/pulls/11
Reviewed-by: anbraten <anbraten@noreply.codeberg.org>
Co-authored-by: Lauris BH <lafriks@noreply.codeberg.org>
Co-committed-by: Lauris BH <lafriks@noreply.codeberg.org>
2022-09-20 18:02:35 +02:00
Matti R
3c6cdbcec5
prelim to switch to woodpecker plugin 2021-10-12 23:44:14 -04:00
Matti R
08ccc7e86c
prelim to switch to woodpecker plugin 2021-10-12 23:40:58 -04:00
Robert Kaussow
2404bc12a1
docs: add parameter documentation (#53) 2021-09-11 21:15:02 +02:00
Robert Kaussow
276f215b24
fix: remove unimplemented squash option (#52) 2021-09-07 21:34:47 +02:00
Robert Kaussow
a5a561fd91
feat: load buildkit config from string instead of file (#37) 2021-07-25 14:28:33 +02:00
Albie
904641bf10
feat: add option to specify buildkit config file path (#32) 2021-07-08 09:00:51 +02:00
Robert Kaussow
5f01026c5c
chore: update build env to golang 1.16 (#26) 2021-05-10 09:03:59 +02:00
Robert Kaussow
41a9f02b92
fix redefined flags 2021-01-11 22:38:17 +01:00
Robert Kaussow
ba28c39a7d
refactor: update dependencies and use plugin boilerplate 2021-01-11 21:54:49 +01:00
Robert Kaussow
3dbe974ba1
fix gitignore 2021-01-11 00:01:27 +01:00
Robert Kaussow
89b0b6823a
fork: initial release 2021-01-10 23:47:55 +01:00
Brad Rydzewski
9c86f98ea5
Update main.go 2020-11-25 11:51:03 -05:00
Robert Stettner
a5076e74dc Added env-file with godotenv to all non-base implementations of plugin 2020-08-05 16:28:21 +01:00
Brad Rydzewski
6cc2e43e64 semver parsing fails pipeline step 2020-05-19 13:26:13 -04:00
Gary Kim
0099cd6056
Add quiet build option
This adds the option for using the `--quiet` flag during builds.

Signed-off-by: Gary Kim <gary@garykim.dev>
2020-04-29 14:11:31 +08:00
Brad Rydzewski
528dc0a7b3 update config.json messaging 2020-03-24 13:49:10 -07:00
Brad Rydzewski
122443b3e6
minor variable name change 2020-03-24 13:40:35 -07:00
Andrea Cervesato
063f479004 Using more generic configuration & respecting win 2020-03-24 21:00:24 +01:00
Andrea Cervesato
18c4e995d3 Added AuthConfig to login to multiple registry 2020-03-24 19:20:52 +01:00
recamshak
17639d6cbf Add build add-host 2019-12-11 09:33:26 +09:00
Brad Rydzewski
39da697e1e
Merge branch 'master' into master 2019-10-16 10:03:13 -10:00
Joe Walton
2184682042
Apply suggestions from code review
Co-Authored-By: Lauris BH <lauris@nix.lv>
2019-10-14 10:20:32 +01:00
Michael J. Schultz
7b060dd935
Merge remote-tracking branch 'benwilson512/master' 2019-08-15 12:08:48 -05:00
Brad Rydzewski
b47dd5d7bc
Revert "append tags with autotag instead of replacing" 2019-08-06 13:09:07 -07:00
Stefan Schwarz
db96c9a78b append tags with autotag instead of replacing
closes #201
2019-07-24 11:12:22 +02:00
Joe Walton
b5b34938c5
Add Assume Role Option For ECR Pushes 2019-04-24 13:31:46 +01:00
Robert Lippens
ebce953fc4 Create ACR plugin extension (#228)
* initial commit

* switch order of args for trimPrefix
2019-03-28 11:20:36 +01:00
Thomas Boerger
57bf8d7477
Drop import of unused fmt package 2019-03-27 13:16:00 +01:00
Thomas Boerger
30eaad2839
Add a reliable version 2019-03-27 13:16:00 +01:00
Mike
1d908bb8cb
Add ability to append lifecycle and repository policies 2019-03-04 20:40:16 -08:00
Thomas Boerger
7345afea5d
Drop docker from binary name for gcr, ecr and heroku 2019-01-21 21:50:31 +01:00
Thomas Boerger
17dc3bc6be
Switch to go modules instead of go dep 2019-01-21 21:50:30 +01:00
Ben Wilson
f69f3d2b74 Merge remote-tracking branch 'upstream/master' 2018-11-28 08:33:15 -05:00