Torbjørn Vatn
8ba3306aa4
EvalBool and Interpolation fixes ( #424 )
...
* A new attempt at Interpolation and EvalBool
* One small merge fix
* Remove some fmt.Printfs
2020-11-17 09:31:05 -08:00
Torbjørn Vatn
3f4998a4ed
envs in if: - take 2 ( #412 )
...
* Test more if env variants
* The correct negation syntax is !=
* Make the Interpolate function support negated booleans from envs
* Move assert := a.New(t) into t.Run
This uncovered that some of the test premisses was wrong and the
Eval Bool function also had flaws
* Remove a stray logrus import
2020-11-12 08:15:09 -08:00
Steffen Seckler
695c496684
Adds ability to use container images from matrices. ( #413 )
...
Uses rc.ExprEval.Interpolate on container image.
2020-11-10 14:55:27 -08:00
Peter Tissen
d5b2d60c35
Add variadic version of hashFiles ( #411 )
2020-11-09 09:08:57 -08:00
Wink Saville
3f3de6e0b1
Use PathListSeparator ( #408 )
...
In PR #406 I used PathSeparator and I should have used PathListSeparator.
See: https://golang.org/pkg/os/#pkg-constants
2020-11-04 11:54:48 -08:00
Wink Saville
8204ef4b82
Change handling of ExtraPath ( #406 )
...
To make the handling of ExtraPath portable append it to the front of the
PATH when it exists, instead of always changing the script.
2020-11-02 13:56:20 -08:00
Owen Young
92067eb1a5
fix: outputs espace ( #404 )
...
* fix: outputs espace
* refactor: move unescape to func
* refactor: fix ci lint
* refactor: unescape function
2020-11-02 05:40:46 -08:00
Taliesin Sisson
014d71af43
When running on Windows the correct path separator must be used ( #386 )
...
* When running on Windows the correct path separator must be used. filePath.join is OS aware, so when we want to use forward slash use path.join instead.
on windows docker cp should end with \. when copying a directory
when running npm modules we should pass in path with all forward slashes
This fixes #331
* When calculating relative folders on Windows for destination path on Linux, we need to change \ for /
* Reduce complexity by extracting methods
* V1 does not point to a file that does not exist
* Looks like something else is the cause of this test breaking. Last successful build is #371 , builds after that are failing
2020-10-08 22:30:50 -07:00
David Beck
569ebaccae
[Add] More logging for default push action ( #383 )
2020-10-08 22:28:01 -07:00
Lyle Underwood
3d9b82515c
Remove confusing message about symlinks ( #381 )
2020-10-06 10:02:37 -07:00
Javier Romero
729adec5e5
Fix path for local node12 actions ( #371 )
...
Fixes #185
Signed-off-by: Javier Romero <root@jromero.codes>
2020-09-29 13:39:45 -07:00
Leonardo Dino
44151f208e
Add CI=true environment variable ( #372 )
...
fixes #333
see https://docs.github.com/en/actions/reference/environment-variables#default-environment-variables
2020-09-28 08:22:42 -07:00
Owen
1070c58538
feat: support custom GITHUB_RUN_ID, GITHUB_RUN_NUMBER ( #369 )
...
* feat: add fromJSON support
* feat: support custom runId and runNumber
* chore: manual update
* chore: lint
2020-09-22 14:13:29 -07:00
Bar Weiss
04456ad234
Fix copyDir to normalize file paths in tar archive ( #360 )
2020-09-15 07:00:15 -07:00
Tom Lazar
7d443c6520
Set the default branch inside the event data ( #354 )
...
* set ${{github.event.repository.default_branch}}
* change `ok == false` to `!ok`
Co-authored-by: Casey Lee <cplee@nektos.com>
2020-09-02 07:56:44 -07:00
Owen
d521fa5bba
feat: add fromJSON support ( #352 )
2020-09-01 13:55:29 -07:00
Cameron Booth
b6f1df4d2f
Special case handling of empty workflow files for user experience ( #349 )
...
Co-authored-by: Casey Lee <cplee@nektos.com>
2020-08-31 14:50:01 -07:00
Yoan Blanc
3eef111e46
chore: upgrade docker v19.03.12 ( #348 )
...
Signed-off-by: Yoan Blanc <yoan@dosimple.ch>
2020-08-29 22:55:22 -07:00
Julian Squires
e698e8b324
Support setting shell via defaults.run ( #343 )
...
Note that we don't support the more general use of defaults, just its
run key for setting shell and working directory.
The documentation for defaults.run is here:
https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#defaultsrun
Fixes #214 .
Co-authored-by: Casey Lee <cplee@nektos.com>
2020-08-28 11:52:25 -07:00
watiko
26e4270e41
fix file permission for non root user docker image ( #334 )
2020-08-08 13:31:26 -07:00
Casey Lee
0ccc867f30
Merge branch 'master' into feat/add-privileged-mode
2020-08-01 19:05:56 -07:00
Tachibana waita
9a661538e6
actions/hello-world-javascript-action@master moved to main, use stable tag ( #326 )
2020-08-01 19:05:25 -07:00
whywaita
24bdb024bf
add flag of privileged mode
2020-08-02 05:21:49 +09:00
Denys Vitali
ae39a4b1d3
fix(test): adapt to sjw change
2020-07-20 21:43:36 +02:00
Denys Vitali
cc369e2f73
fix: add default values in vmInput
2020-07-20 21:17:49 +02:00
Stephen Solka
85a47838fd
use t.Cleanup and prefer assert.NoError over .Nil ( #309 )
...
Co-authored-by: Casey Lee <cplee@nektos.com>
2020-07-20 07:35:43 -07:00
Amit Mahbubani
0b9268ada7
Fix comments on StepType enum consts ( #304 )
2020-07-13 09:39:23 -07:00
Ayaz BADOURALY
7dcd0bc1bb
Rewrite contexts before evaluating them ( #287 )
...
* Rewrite contexts before evaluating them
* Precompile context and expression patterns
* Test trim before rewrite
The current contextPattern is quite constraining and would fail the
rewrite of a context with trailing spaces. Triming happens during the
execution of Interpolate, and these tests aim to detect future breaking
changes on this behavior.
Co-authored-by: Casey Lee <cplee@nektos.com>
2020-06-24 07:08:45 -07:00
Josh Soref
64b8d2afa4
Properly pass format argument to avoid MISSING ( #290 )
...
#273
2020-06-24 07:05:05 -07:00
Jeremy Lempereur
7cc668707b
remove .gitignore before docker cp ( #288 )
...
* Test setup before I try to understand how things work
* Remove .gitignore before we run docker cp
2020-06-23 11:57:24 -07:00
Stan Wohlwend
d4e41a90a2
Fix container volumes being reused sometimes ( #283 )
2020-06-18 08:21:55 -07:00
Michael Heap
dfd1fee7fe
Pull latest changes from ref using cached repo ( #267 )
...
* Pull latest changes from ref using cached repo
Act switched from checking out a branch to checking out
a hash in order to resolve #24 - see
bc5c23e8e4
This had a side effect of preventing `w.Pull()` from updating
to the latest commit if a ref was a branch/tag and the repo
already exists on disk.
This commit checks if input.Ref is equivalent to the resolved
hash, and runs `r.Fetch()` and checks out the branch for input.Ref
if it is different. `w.Pull()` can then pull the latest changes
before we checkout `*hash` again like normal
* Extract CloneIfRequired to reduce cyclomatic complexity
Co-authored-by: Casey Lee <cplee@nektos.com>
2020-06-09 07:43:26 -07:00
Dylan Arbour
69b8802ab3
Change -W command to accept a single file
...
Currently setting workflows with the -W (--workflows) flag only accepts
a folder. It is not possible to run a single workflow.yml file.
This commit allows either a single file or a directory to be passed into
the workflows flag.
2020-05-26 23:29:50 -04:00
Josh Soref
5c850b5ba8
Fix using: node12 handling ( #243 )
...
Co-authored-by: Casey Lee <cplee@nektos.com>
2020-05-18 14:31:09 -07:00
Josh Soref
2097a3c017
Spelling ( #240 )
...
* spelling: cartesian
* spelling: deferring
* spelling: marshal
2020-05-18 09:53:42 -07:00
Michael Heap
d3f25bac79
Mask secrets in job output ( #231 )
...
Previously secrets would be shown in log output as provided. This
commit updates the stepLogFormatter to replace any instance of the secret
string with "***", as GitHub Actions would
Known issues: If the secret is a generic string (such as "docker"), all
occurances of that string will be replaced in the output
Co-authored-by: Casey Lee <cplee@nektos.com>
2020-05-13 15:22:31 -07:00
Michael Heap
a5e86bd024
Add support for changing the GITHUB_ACTOR ( #229 )
...
This adds the `-a` flag when running `act` to change the username of the GITHUB_ACTOR environment variable
Co-authored-by: Casey Lee <cplee@nektos.com>
2020-05-12 00:14:56 -07:00
Torbjørn Vatn
a149cf8ca2
Make envs available in if conditionals ( #225 )
...
* Ignore .idea
* Add Env to the RunContext vm so we can Evaluate and Interpolate `env.xx`
* Make EvalBool support expressions more in line with the github runner
* Turns out Boolean(value) is what github is doing after all
* Add test for github context as well
2020-05-04 12:18:13 -07:00
Michael Heap
6d6ea7ac04
Implement UnmarshalYAML for ActionRunsUsing ( #223 )
...
In #222 I added case normalisation to ReadAction() to ensure that Docker and docker are interpreted the same way.
I realised that this was being done at the wrong level and required multiple type conversions. By implementing `func (a ActionRunsUsing) UnmarshalYAML` we can lowercase the string as it's being unserialized
This has an added benefit that any time this type is hydrated the `runs.using` key will be lowercased, rather than relying on `ReadAction()`
2020-05-04 05:40:11 -07:00
Sven Dowideit
6196436f70
extract the docker NewClientWithOpts, and add connectionhelper for DOCKER_HOST set to ssh://remote ( #207 )
...
Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au>
Co-authored-by: Casey Lee <cplee@nektos.com>
2020-05-03 21:15:42 -07:00
Michael Heap
ef9fab9fad
Normalise Runs.Using to lowercase ( #222 )
...
Currently, providing `using: Docker` is an error as the switch statement in `step_context.go` is case sensitive.
Actions run successfully on GitHub with `using: Docker` leading me to believe that they're case insensitive. This commit updates `act` to match
Co-authored-by: Casey Lee <cplee@nektos.com>
2020-05-03 20:59:13 -07:00
Michael Heap
195a6c9ffb
Add default error case for Runs.Using ( #221 )
...
The string comparison in `step_context.go` is currently case sensitive. This commit adds an error that returns the valid options and tells the user what value they passed
2020-05-03 20:55:20 -07:00
Casey Lee
a48cce3a78
fix : #170 add RUNNER_TEMP
2020-04-23 08:18:36 -07:00
Casey Lee
a9533b05ce
fix : #170 #171 - add RUNNER_OS and RUNNER_TEMP
2020-04-22 23:57:36 -07:00
Casey Lee
c44b71c996
fix: ignore symlink errors
2020-04-22 23:48:25 -07:00
Casey Lee
8c290994c1
fix : #182 - support symlinks in workspace
2020-04-22 23:24:31 -07:00
Casey Lee
6c4e7b9fde
fix: 168 include error message from docker SDK
2020-04-22 23:04:28 -07:00
Juan Eugenio Abadie
b95fdb896f
Use env variables in Action.Runs.Env ( #201 )
...
* Use env variables in Action.Runs.Env
* Use Action.Runs.Env in all the cases
2020-04-19 11:29:34 -07:00
jony montana
2f395475b0
feat: load every environment from --env-file to workflow ( #184 )
...
* feat: load every environment from --env-file to workflow
* fix: pass dotenv's environments through by context
* updates to support --secret-file
Co-authored-by: Casey Lee <cplee@nektos.com>
2020-04-17 10:04:40 -07:00
Máximo Cuadros
f6e37a8d67
*: update go-git import ( #194 )
2020-04-16 16:24:30 -07:00
Alberto Fernández
67542608a2
Remove length constraint ( #190 )
2020-04-16 16:05:00 -07:00
Aidan Steele
bf3824cc10
Improved gitignore handling ( #163 )
2020-03-18 06:55:39 -07:00
Aidan Steele
4a4bd36cf6
Add support for runs-on array form ( closes #146 ) ( #155 )
...
* Add support for runs-on array form (closes #146 )
* Fixed style issues
Co-authored-by: Casey Lee <cplee@nektos.com>
2020-03-16 14:58:10 -07:00
Casey Lee
f5e67f2b86
fix #150 - disable dryrun in git clone
2020-03-14 00:13:18 -07:00
Aidan Steele
b670173764
Add support for step.working-directory ( closes #149 ) ( #154 )
2020-03-14 00:00:37 -07:00
Casey Lee
3baf626aa4
add file info to files cp into container
2020-03-13 23:21:25 -07:00
Casey Lee
c439a6ff14
support nested expressions
2020-03-12 17:22:33 -07:00
Casey Lee
7f88f81bf6
fix #50 - exclude anything in .gitignore from being copied into the job volume
2020-03-09 18:32:48 -07:00
Casey Lee
16520bb277
fix #122 - support actions/checkout for repos other the one for this workflow ( #143 )
2020-03-09 17:45:42 -07:00
Casey Lee
143676fcfb
fix #141 - use host network to match GitHub Actions runners ( #142 )
2020-03-09 17:43:24 -07:00
Casey Lee
15fb58bf43
fix #134 - include base_ref and head_ref in github context from the event json
2020-03-06 14:17:57 -08:00
Casey Lee
87392c2ed7
fix #134 - support 'env' context in steps
2020-03-06 13:39:01 -08:00
Casey Lee
4fde7d8865
fix #121 and #123 - add support for reading env variables from .env ( #133 )
2020-03-06 12:30:24 -08:00
Casey Lee
af970769d7
fix #127 - force eval as a boolean ( #131 )
2020-03-06 11:30:39 -08:00
Casey Lee
e33606361f
tone down verbosity
2020-03-06 10:25:18 -08:00
Casey Lee
c32a87c6dc
fix #128 : guard against empty actionName when 'uses: ./' ( #130 )
...
* fix #128 : guard against empty actionName when 'uses: ./'
* fix #129 - force image name to be lowercase
2020-03-06 10:17:20 -08:00
Casey Lee
59b9b8e97a
fix #108 - ensure container names are unique for matrix runs
2020-03-04 16:24:14 -08:00
Casey Lee
e9de6ca2c0
fix #115 - support toJson and toJSON ( #116 )
2020-02-28 15:20:31 -08:00
Casey Lee
6e1da1a70d
fix #110 - support path in action ( #111 )
2020-02-27 14:17:01 -08:00
Casey Lee
21e2bb8657
fix #108 - support matrix expressions in job name ( #109 )
2020-02-26 23:29:43 -08:00
Casey Lee
8696b42178
gofmt
2020-02-25 16:58:26 -08:00
Casey Lee
9dd2428546
fix #100 - change RUNNER_TOOL_CACHE to /opt/hostedtoolcache ( #103 )
2020-02-25 08:52:04 -08:00
Casey Lee
ead2ab4d69
fix #95 - change ports to array of strings
2020-02-24 22:37:20 -08:00
Casey Lee
51b6167606
fix 99: support string and map variants of container
2020-02-24 22:35:08 -08:00
Casey Lee
5b90c8a44d
remove super verbose log statement
2020-02-24 17:58:34 -08:00
Casey Lee
1121f6e132
run with copy of workingdir
2020-02-24 17:48:21 -08:00
Casey Lee
8f5918942d
move action cache to volume
2020-02-24 16:38:49 -08:00
Casey Lee
037e08a3a7
integration test
2020-02-24 12:48:12 -08:00
Casey Lee
6c632946be
unit tests pass
2020-02-24 10:56:49 -08:00
Casey Lee
88041afb87
cache dir for remote actions
2020-02-23 22:34:48 -08:00
Casey Lee
94591c58d7
local actions done
2020-02-23 16:36:44 -08:00
Casey Lee
ac1bd0893e
shared container for job
2020-02-23 15:02:01 -08:00
Casey Lee
01876438c2
shared container for job
2020-02-23 15:01:25 -08:00
Casey Lee
9179d8924d
updates for tests
2020-02-21 22:19:59 -08:00
Casey Lee
2cb276ca05
unchecked error
2020-02-21 08:42:00 -08:00
Casey Lee
418b0db047
reuse containers to fix #86
2020-02-20 22:43:20 -05:00
Casey Lee
e371fa8c49
stop overwritting gitconfig
...
Signed-off-by: Casey Lee <cplee@nektos.com>
2020-02-20 21:06:30 -05:00
Casey Lee
58731e8d9b
fixes #90 - hard reset when using a version for an action
...
Signed-off-by: Casey Lee <cplee@nektos.com>
2020-02-20 21:06:28 -05:00
Casey Lee
9511f5baf4
fix unit tsts for runner
...
Signed-off-by: Casey Lee <cplee@nektos.com>
2020-02-20 21:06:16 -05:00
Casey Lee
543501a36a
add support to override platform
...
Signed-off-by: Casey Lee <cplee@nektos.com>
2020-02-20 21:06:15 -05:00
Casey Lee
573f78e1b4
support for secrets
...
Signed-off-by: Casey Lee <cplee@nektos.com>
2020-02-20 21:06:09 -05:00
Casey Lee
9651992584
code complexity of NewPlanExecutor
...
Signed-off-by: Casey Lee <cplee@nektos.com>
2020-02-20 21:06:07 -05:00
Casey Lee
60be2d67c1
align name of job in output
...
Signed-off-by: Casey Lee <cplee@nektos.com>
2020-02-20 21:06:05 -05:00
Casey Lee
f8fb88816a
matrix is done
...
Signed-off-by: Casey Lee <cplee@nektos.com>
2020-02-20 21:06:03 -05:00
Casey Lee
5b7019cd0b
skip unsupported platforms
...
Signed-off-by: Casey Lee <cplee@nektos.com>
2020-02-20 21:06:01 -05:00
Casey Lee
73559207c7
initial support for expressons
...
Signed-off-by: Casey Lee <cplee@nektos.com>
2020-02-20 21:05:59 -05:00
Casey Lee
09773f7c5c
fix tests
...
Signed-off-by: Casey Lee <cplee@nektos.com>
2020-02-20 21:05:57 -05:00
Casey Lee
e40ab0145f
expressions working
...
Signed-off-by: Casey Lee <cplee@nektos.com>
2020-02-20 21:05:55 -05:00
Casey Lee
fd6fe1872f
bug with local action
...
Signed-off-by: Casey Lee <cplee@nektos.com>
2020-02-20 21:05:48 -05:00
Casey Lee
64562d41ab
test updates
...
Signed-off-by: Casey Lee <cplee@nektos.com>
2020-02-20 21:05:44 -05:00
Casey Lee
f7252cbcf9
add commands support
...
Signed-off-by: Casey Lee <cplee@nektos.com>
2020-02-20 21:05:42 -05:00
Casey Lee
033168228b
cleanup logging
...
Signed-off-by: Casey Lee <cplee@nektos.com>
2020-02-20 21:05:40 -05:00
Casey Lee
a21d4bbd90
ignore actions/checkout locally
...
Signed-off-by: Casey Lee <cplee@nektos.com>
2020-02-20 21:05:38 -05:00
Casey Lee
835b36cb63
ci tests
...
Signed-off-by: Casey Lee <cplee@nektos.com>
2020-02-20 21:05:36 -05:00
Casey Lee
ac8258db4b
support list/map/scalar for on and needs
...
Signed-off-by: Casey Lee <cplee@nektos.com>
2020-02-20 21:05:34 -05:00
Casey Lee
0582306861
unit tests
...
Signed-off-by: Casey Lee <cplee@nektos.com>
2020-02-20 21:05:31 -05:00
Casey Lee
be75ee20b1
local actions
...
Signed-off-by: Casey Lee <cplee@nektos.com>
2020-02-20 21:05:29 -05:00
Casey Lee
4e046e1ec0
support custom shell
...
Signed-off-by: Casey Lee <cplee@nektos.com>
2020-02-20 21:05:27 -05:00
Casey Lee
532af98aef
successfully able to run simple workflows
...
Signed-off-by: Casey Lee <cplee@nektos.com>
2020-02-20 21:05:25 -05:00
Casey Lee
8c49ba0cec
initial load of yaml working
2020-02-04 16:38:41 -08:00