Commit Graph

59 Commits

Author SHA1 Message Date
Jesse Brown 60bf07f8de
Remove Windows Support
I took a swing at removing any and all references to windows in this reference implementation.

Lifecycle no longer outputs a windows binary as a release artifact
Lifecycle no longer operates against windows containers

https://github.com/buildpacks/rfcs/pull/311
https://medium.com/buildpacks/deprecation-announcement-windows-container-feature-in-cloud-native-buildpacks-bbb70351343d

Signed-off-by: Jesse Brown <jabrown85@gmail.com>
2024-12-10 16:56:29 -06:00
Natalie Arellano 1148b713e0
Always set CNB_TARGET_* variables during detect, build, and generate (#1309)
* Always set CNB_TARGET_* variables during detect, build, and generate
when the Buildpack API version is at least 0.10.

Previously, we only set these variables when the Platform API version was at least 0.12.
But, newer Buildpack APIs expect these variables regardless of the Platform API version.
If we are on an older platform, derive the target variables from the base image OS.

Fixes https://github.com/buildpacks/lifecycle/issues/1308

Signed-off-by: Natalie Arellano <narellano@vmware.com>

* Fix unit

Signed-off-by: Natalie Arellano <narellano@vmware.com>

* Fix unit again

Signed-off-by: Natalie Arellano <narellano@vmware.com>

---------

Signed-off-by: Natalie Arellano <narellano@vmware.com>
2024-03-04 12:33:20 -05:00
Natalie Arellano a12fbff57d
Remove deprecated buildpack APIs (#1148)
* Remove buildpack APIs 0.2-0.6 according to https://github.com/buildpacks/rfcs/blob/main/text/0110-deprecate-apis.md

- Fix acceptance by updating fixtures to use newer Buildpack API version

Signed-off-by: Natalie Arellano <narellano@vmware.com>

* Remove backwards compatible glue for buildpacks missing API version

Signed-off-by: Natalie Arellano <narellano@vmware.com>

---------

Signed-off-by: Natalie Arellano <narellano@vmware.com>
2023-08-23 10:34:00 -04:00
Natalie Arellano c3998654d3
Merge release/0.17.0 into main (#1177)
* restorer gets layers flag again

Signed-off-by: Joe Kimmel <jkimmel@vmware.com>

* add explanatory debug logs so a reader knows why the buildpacks are read twice.

Signed-off-by: Joe Kimmel <jkimmel@vmware.com>

* warn when a positional argument might have been a flag (#1147)

Signed-off-by: Joe Kimmel <jkimmel@vmware.com>

* Add test for empty digest not returned

Signed-off-by: Natalie Arellano <narellano@vmware.com>

* Fix acceptance by providing a base image when we instantiate the remote run image

Signed-off-by: Natalie Arellano <narellano@vmware.com>

* timestamp logs and phase error message cherry-picks (#1164)

* timestamp logs for entry/exit for all the top-level Lifecycle package functions

Signed-off-by: Joe Kimmel <jkimmel@vmware.com>

fixing names

Signed-off-by: Joe Kimmel <jkimmel@vmware.com>

using defer to make one-liners for fun and profit

Signed-off-by: Joe Kimmel <jkimmel@vmware.com>

and today we thank our brave linters for preventing critical defects such as unnecessary trailing newlines from being merged. Its about time somebody thought of the children.

Signed-off-by: Joe Kimmel <jkimmel@vmware.com>

* be more helpful when you dont recognize the phase

Signed-off-by: Joe Kimmel <jkimmel@vmware.com>

---------

Signed-off-by: Joe Kimmel <jkimmel@vmware.com>

* Simplifies target matching logic per spec PR review (#1166)

* Update units without updating code

Signed-off-by: Natalie Arellano <narellano@vmware.com>

* Update code

Signed-off-by: Natalie Arellano <narellano@vmware.com>

* Unpend test

Signed-off-by: Natalie Arellano <narellano@vmware.com>

* Add units for rebase without updating code

Signed-off-by: Natalie Arellano <narellano@vmware.com>

* Update rebase code

Signed-off-by: Natalie Arellano <narellano@vmware.com>

* Fix lint

Signed-off-by: Natalie Arellano <narellano@vmware.com>

* When we read the descriptor file, don't fill in "*" as a magic value as missing values are wildcard matches

Signed-off-by: Natalie Arellano <narellano@vmware.com>

* Stricter validation for rebase

Signed-off-by: Natalie Arellano <narellano@vmware.com>

---------

Signed-off-by: Natalie Arellano <narellano@vmware.com>

* Add -daemon to restorer (#1168)

This is needed when extensions were used to switch (but not extend) the run image
and we need to re-read the target data from the image config.

In such cases, we don't need the run image to exist in a registry,
because we don't need a manifest for kaniko.

Signed-off-by: Natalie Arellano <narellano@vmware.com>

* Remove CNB_TARGET_ID according to https://github.com/buildpacks/spec/pull/374 and https://github.com/buildpacks/spec/pull/375 (#1175)

Signed-off-by: Natalie Arellano <narellano@vmware.com>

* Field renames per spec review (#1170)

* Rename distributions -> distros in the buildpack spec

Signed-off-by: Natalie Arellano <narellano@vmware.com>

* Rename distributions -> distros in the platform spec

Signed-off-by: Natalie Arellano <narellano@vmware.com>

---------

Signed-off-by: Natalie Arellano <narellano@vmware.com>

* force pack acceptance tests to build with a version of go that can still make HTTP requests to docker daemon (#1158)

Signed-off-by: Joe Kimmel <jkimmel@vmware.com>

---------

Signed-off-by: Joe Kimmel <jkimmel@vmware.com>
Signed-off-by: Natalie Arellano <narellano@vmware.com>
Co-authored-by: Joe Kimmel <jkimmel@vmware.com>
Co-authored-by: Joe Kimmel <86852107+joe-kimmel-vmw@users.noreply.github.com>
2023-08-09 12:27:46 -04:00
Joe Kimmel 29e694f8c3
rename env var to CNB_TARGET_ARCH_VARIANT (#1119)
Signed-off-by: Joe Kimmel <jkimmel@vmware.com>
2023-06-09 14:36:21 -04:00
Joe Kimmel 1057837bae
Target envvars (#1078)
* CNB_TARGET_ env vars

- allowed to be passed through in the env vars allow-list
- threaded through builder
- threaded through detector
- threaded through generator

Signed-off-by: Joe Kimmel <jkimmel@vmware.com>

* Update buildpack/generate.go

Co-authored-by: Natalie Arellano <narellano@vmware.com>
Signed-off-by: Joe Kimmel <86852107+joe-kimmel-vmw@users.noreply.github.com>

* Update buildpack/generate.go

Co-authored-by: Natalie Arellano <narellano@vmware.com>
Signed-off-by: Joe Kimmel <86852107+joe-kimmel-vmw@users.noreply.github.com>

* Update cmd/lifecycle/builder.go

Co-authored-by: Natalie Arellano <narellano@vmware.com>
Signed-off-by: Joe Kimmel <86852107+joe-kimmel-vmw@users.noreply.github.com>

---------

Signed-off-by: Joe Kimmel <jkimmel@vmware.com>
Signed-off-by: Joe Kimmel <86852107+joe-kimmel-vmw@users.noreply.github.com>
Co-authored-by: Natalie Arellano <narellano@vmware.com>
2023-05-11 14:42:38 -04:00
Joe Kimmel 6d6b469717
Stack removal: detect phase and analyze.toml support Targets (#994)
* initial setup for toml file schemas and structs

BpDescriptor reads and populates Targets data

Signed-off-by: Joe Kimmel <jkimmel@vmware.com>

* correct-er detector for target selector

Signed-off-by: Joe Kimmel <jkimmel@vmware.com>

* TargetMetadata.Equals: tests and impl nailed down
minor cleanup
nix mixins mixup

Signed-off-by: Joe Kimmel <jkimmel@vmware.com>

* refactoring RunImage with some spillover

- RunImage has:
  - Reference
  - Target
While i was in there, some of the other *ImageReference types were
inconvient so I changed them to just be strings instead of structs
containing strings. This does have the effect of collapsing a table,
But as a newer contributor to this project I have the blessing and curse
of not feeling all that constrained by (nor aware of) past decisions.

Signed-off-by: Joe Kimmel <jkimmel@vmware.com>

* NewDetector respects the alphabet

Signed-off-by: Joe Kimmel <jkimmel@vmware.com>

* only replace stack with target for newer api versions
small cleanups / removal of unneeded check

Signed-off-by: Joe Kimmel <jkimmel@vmware.com>

* Equals->Satisfied and other cleanups

Signed-off-by: Joe Kimmel <jkimmel@vmware.com>

* detector logic is probably all the way working

Signed-off-by: Joe Kimmel <jkimmel@vmware.com>

* turns out the unit tests pass without the bin folders for these buildpack fixtures

Signed-off-by: Joe Kimmel <jkimmel@vmware.com>

* analyzed.toml backwards compat shims

Signed-off-by: Joe Kimmel <jkimmel@vmware.com>

* change detector to take analyzedMD struct rather than file

Signed-off-by: Joe Kimmel <jkimmel@vmware.com>

* small cleanups

Signed-off-by: Joe Kimmel <jkimmel@vmware.com>

* runImage only has one distribution and that small adjustment has someconsequences

Signed-off-by: Joe Kimmel <jkimmel@vmware.com>

* move isWildcard to private method of detector

Signed-off-by: Joe Kimmel <jkimmel@vmware.com>

* analyzed acceptance tests use ReadAnalyzed fn

Signed-off-by: Joe Kimmel <jkimmel@vmware.com>

* Updates

Update env/build.go
Update buildpack/bp_descriptor.go
Update default arch to amd64
use OS instead of Os
fixing mocks and fn calls after small change

Co-authored-by: Natalie Arellano <narellano@vmware.com>
Signed-off-by: Joe Kimmel <86852107+joe-kimmel-vmw@users.noreply.github.com>

* couple more easy fixes
fix descriptor test bc we decided that we _do_ want that behavior for old versions

Signed-off-by: Joe Kimmel <jkimmel@vmware.com>

* Targets are auto-detected based on contents of buildpack/bin

Signed-off-by: Joe Kimmel <jkimmel@vmware.com>

* Change AnalyzedMetadata struct to use pointers again

This allows us to remove our custom writer, while keeping the file schema unchanged in Platform API 0.12

Signed-off-by: Natalie Arellano <narellano@vmware.com>

* Fix lint

Signed-off-by: Joe Kimmel <joe-kimmel-vmw@vmware.com>

* Fix nil pointer

Signed-off-by: Natalie Arellano <narellano@vmware.com>

---------

Signed-off-by: Joe Kimmel <jkimmel@vmware.com>
Signed-off-by: Joe Kimmel <86852107+joe-kimmel-vmw@users.noreply.github.com>
Signed-off-by: Natalie Arellano <narellano@vmware.com>
Signed-off-by: Joe Kimmel <joe-kimmel-vmw@vmware.com>
Co-authored-by: Natalie Arellano <narellano@vmware.com>
Co-authored-by: Joe Kimmel <joe-kimmel-vmw@vmware.com>
2023-03-07 15:19:09 -05:00
Natalie Arellano 4c62475a8c
(updated with latest main) Allow setting environment variables using the build image (#962)
* Allow setting environment variables using the build image

Signed-off-by: Sambhav Kothari <skothari44@bloomberg.net>

* Add a few more unit tests

Signed-off-by: Natalie Arellano <narellano@vmware.com>

* Resolve absolute path of build config directory

Signed-off-by: Natalie Arellano <narellano@vmware.com>

Signed-off-by: Sambhav Kothari <skothari44@bloomberg.net>
Signed-off-by: Natalie Arellano <narellano@vmware.com>
Co-authored-by: Sambhav Kothari <skothari44@bloomberg.net>
2022-11-22 17:21:54 -05:00
Eng Zer Jun 5a4df34080
refactor: move from io/ioutil to io and os packages (#941)
* acceptance: move from io/ioutil to io and os packages

Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>

* archive: move from io/ioutil to io and os packages

Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>

* auth: move from io/ioutil to io and os packages

Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>

* buildpack: move from io/ioutil to io and os packages

Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>

* cache: move from io/ioutil to io and os packages

Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>

* cmd/lifecycle: move from io/ioutil to io and os packages

Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>

* env: move from io/ioutil to io and os packages

Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>

* internal: move from io/ioutil to io and os packages

Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>

* launch: move from io/ioutil to io and os packages

Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>

* layers: move from io/ioutil to io and os packages

Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>

* priv: move from io/ioutil to io and os packages

Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>

* testhelpers: move from io/ioutil to io and os packages

Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>

* tools: move from io/ioutil to io and os packages

Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>

* lifecycle: move from io/ioutil to io and os packages

Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>

Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
Signed-off-by: Natalie Arellano <narellano@vmware.com>
Co-authored-by: Natalie Arellano <narellano@vmware.com>
2022-10-31 10:56:33 -04:00
Michael de Senna 6a2b4bfd54
ci(lint): address most staticcheck alarms (#940)
* ci(lint): auto lint fixes

Signed-off-by: Michael de Senna <desenna@gmail.com>

* fix: replace deprecated funcs

Signed-off-by: Michael de Senna <desenna@gmail.com>

* ci(lint): fix many io/ioutil staticcheck

Signed-off-by: Michael de Senna <desenna@gmail.com>

* fix: import os

Signed-off-by: Michael de Senna <desenna@gmail.com>

Signed-off-by: Michael de Senna <desenna@gmail.com>
Signed-off-by: Natalie Arellano <narellano@vmware.com>
Co-authored-by: Natalie Arellano <narellano@vmware.com>
2022-10-25 17:48:29 -04:00
Natalie Arellano b8e2767db7
Introduce new api version helpers (#705)
* Introduce new api version helpers

This makes the code a little easier to read.

Signed-off-by: Natalie Arellano <narellano@vmware.com>

* Fix

Signed-off-by: Natalie Arellano <narellano@vmware.com>

* Remove comment

Signed-off-by: Natalie Arellano <narellano@vmware.com>

* Fix lint

Signed-off-by: Natalie Arellano <narellano@vmware.com>
2021-09-13 14:29:41 -04:00
Natalie Arellano 49e641132e
Fix bp env bug & remove asset packages (#700)
* Remove asset packages

Signed-off-by: Natalie Arellano <narellano@vmware.com>

* Fix env bug

Buildpacks update the environment for other buildpacks, so the same env should
be passed through to each buildpack.

Signed-off-by: Natalie Arellano <narellano@vmware.com>
2021-09-02 17:42:46 -04:00
Anthony Emengo fbf3c4b83c Address PR comments
* Remove NewDetectEnv
* Construct detect process like build process

Signed-off-by: Anthony Emengo <aemengo@vmware.com>
2021-07-07 16:38:23 -04:00
Anthony Emengo 0371cb8d82 Show CNB_ASSETS env var conditionally during detect
Signed-off-by: Anthony Emengo <aemengo@vmware.com>
2021-07-02 18:29:01 -04:00
Natalie Arellano dfbda710c8 Fix windows
Signed-off-by: Natalie Arellano <narellano@vmware.com>
2021-06-11 13:49:41 -04:00
Natalie Arellano fd43a4729a When constructing the environment, also check that the buildpack api supports asset packages
Signed-off-by: Natalie Arellano <narellano@vmware.com>
2021-06-11 12:35:47 -04:00
Natalie Arellano 873cf15e75 Apply few more suggestions from code review
Signed-off-by: Natalie Arellano <narellano@vmware.com>
2021-06-08 14:51:37 -04:00
Natalie Arellano 0632982dac Apply few suggestions from code review
Signed-off-by: Natalie Arellano <narellano@vmware.com>
2021-06-08 14:44:02 -04:00
dwillist b8fbc1b8cf merge conflicts
Signed-off-by: dwillist <dthornton@vmware.com>
2021-05-13 17:16:29 -04:00
dwillist 56ee88796c more feedback changes
Signed-off-by: dwillist <dthornton@vmware.com>
2021-05-13 03:05:46 -04:00
dwillist 5ff86130c9 cleanup & feedback changes
Signed-off-by: dwillist <dthornton@vmware.com>
2021-05-07 03:07:49 -04:00
dwillist 2ab4678bd2 conditionally add ASSET_CACHE env var to build environment depending on platform API version
Signed-off-by: dwillist <dthornton@vmware.com>
2021-04-26 00:16:32 -04:00
dwillist f07f82e0e6 add required env var, platform API, buildpack API to support asset packages
Signed-off-by: dwillist <dthornton@vmware.com>
2021-04-22 15:39:16 -04:00
Natalie Arellano ab0c8e9351 Turn on gosec
- test-only changes + nolint

Signed-off-by: Natalie Arellano <narellano@vmware.com>
2021-03-18 13:51:46 -04:00
Jesse Brown dc3d35ef18
Update env/env.go
Signed-off-by: Jesse Brown <jabrown85@gmail.com>

Co-authored-by: Emily Casey <ecasey@vmware.com>
2021-02-16 10:37:30 -06:00
Jesse Brown 6dd617e107
Follow symlinks when building env from files.
Symlinks to directories should be evaluated so they can be skipped when building env.

Fixes #526

Signed-off-by: Jesse Brown <jabrown85@gmail.com>
2021-02-16 09:18:02 -06:00
Emily Casey 6e6ca62447
Typo fixes
Signed-off-by: Emily Casey <ecasey@vmware.com>

Co-authored-by: Natalie Arellano <narellano@vmware.com>
2020-12-09 11:33:58 -05:00
Emily Casey ad4eb25ac1 Cleanup - addresses code review comments
Signed-off-by: Emily Casey <ecasey@vmware.com>
2020-12-08 17:50:31 -05:00
Emily Casey 9dd30ffdc0
Apply suggestions from code review
Signed-off-by: Emily Casey <ecasey@vmware.com>

Co-authored-by: Yael Harel <43007598+yaelharel@users.noreply.github.com>
Co-authored-by: Natalie Arellano <narellano@vmware.com>
2020-12-08 15:47:31 -05:00
Emily Casey f1e79eec9c
Apply suggestions from code review
Signed-off-by: Emily Casey <ecasey@vmware.com>

Co-authored-by: Jesse Brown <jabrown85@gmail.com>
2020-12-03 13:54:09 -05:00
Emily Casey d58ab15f71 Changes default env file action to override when layer is created by an 0.5+ buildpack
Signed-off-by: Emily Casey <ecasey@vmware.com>
2020-12-03 12:54:11 -05:00
Emily Casey 9a83731032 Refactor launcher helper functions for clarity
Signed-off-by: Emily Casey <ecasey@vmware.com>
2020-12-01 16:05:54 -05:00
Emily Casey 3e36f22c0c Adds support for exec.d
Signed-off-by: Emily Casey <ecasey@vmware.com>
2020-12-01 16:05:53 -05:00
Natalie Arellano f1f29dcab4 Added comment
Signed-off-by: Yael Harel <yharel@vmware.com>
2020-08-13 15:49:46 -04:00
Natalie Arellano c3c551fba3 Fix Windows
Signed-off-by: Yael Harel <yharel@vmware.com>
2020-08-13 15:19:20 -04:00
Yael Harel 76a783351a Pass through http(s) proxy variables to buildpacks environment
Signed-off-by: Natalie Arellano <narellano@vmware.com>
2020-08-13 14:45:43 -04:00
Emily Casey 190dff92ca Review feedback
* Add and strip lifecycle dir from path
* Don't use full paths in entrypoint in tests or warning text
* Test cleanup

Signed-off-by: Emily Casey <ecasey@vmware.com>
2020-08-07 19:20:36 -04:00
Emily Casey 3b7e7a3d4c more cleanup
* Set Platform API for build when creator is run

Signed-off-by: Emily Casey <ecasey@vmware.com>
2020-08-07 19:20:19 -04:00
Emily Casey 8748dce446 cleanup
Signed-off-by: Emily Casey <ecasey@vmware.com>
2020-08-07 19:19:48 -04:00
Emily Casey ac0050333d Multicall launcher
* Adds acceptance tests
* Refactors launcher

Signed-off-by: Emily Casey <ecasey@vmware.com>
2020-08-07 19:19:47 -04:00
Emily Casey 294a93d831 prepend process dir to path
* strip it out in the launch env

Signed-off-by: Emily Casey <ecasey@vmware.com>
2020-08-07 19:19:47 -04:00
Emily Casey f92458eb84 Exclude CNB_PLATFORM_API and CNB_DEPRECATION_MODE from process launch environment
Signed-off-by: Emily Casey <ecasey@vmware.com>
2020-07-30 12:21:22 -04:00
Malini Valliath c5ca55f818 Fix case-sensitivity bug when initializing env vars
Signed-off-by: Malini Valliath <mvalliath@pivotal.io>
Signed-off-by: Victoria Henry<vhenry@pivotal.io>
Signed-off-by: Andrew Meyer <meyeran@vmware.com>
2020-07-06 12:55:48 -07:00
Emily Casey b62429efd7 Don't export Root and ExecExt
Signed-off-by: Emily Casey <ecasey@vmware.com>
2020-06-29 13:20:37 -07:00
Andrew Meyer 0880d8e670 Remove sys package, merge with env
Signed-off-by: Andrew Meyer <meyeran@vmware.com>
Signed-off-by: Micah Young <ymicah@vmware.com>
2020-06-26 11:15:42 -07:00
Andrew Meyer 1af518a16f Refactor Vars usage
Signed-off-by: Andrew Meyer <meyeran@vmware.com>
2020-06-26 11:15:42 -07:00
Andrew Meyer ba20c05e29 Flesh out launcher for windows
Signed-off-by: Andrew Meyer <meyeran@vmware.com>
Signed-off-by: Anthony Emengo <aemengo@vmware.com>
2020-06-26 11:15:42 -07:00
Andrew Meyer 34742312b7 Test cleanup
Signed-off-by: Andrew Meyer <meyeran@vmware.com>
2020-06-26 11:15:42 -07:00
Anthony Emengo 951f092bac Add ability to export Windows-based images
Signed-off-by: Andrew Meyer <meyeran@vmware.com>
Signed-off-by: Anthony Emengo <aemengo@vmware.com>
Signed-off-by: Micah Young <ymicah@vmware.com>
2020-06-26 11:15:41 -07:00
Simon Jones 141da70753 Use include and exclude in place of allow and block
Signed-off-by: Simon Jones <simonjones@vmware.com>
2020-06-16 11:02:29 -04:00