summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.github/actions/choco/Dockerfile34
-rw-r--r--.github/actions/choco/action.yml12
-rwxr-xr-x.github/actions/choco/entrypoint.sh29
-rw-r--r--.github/workflows/push.yml5
-rw-r--r--.gitignore4
-rw-r--r--README.md4
-rw-r--r--VERIFICATION5
-rw-r--r--act-cli.nuspec26
8 files changed, 117 insertions, 2 deletions
diff --git a/.github/actions/choco/Dockerfile b/.github/actions/choco/Dockerfile
new file mode 100644
index 0000000..678e092
--- /dev/null
+++ b/.github/actions/choco/Dockerfile
@@ -0,0 +1,34 @@
+
+FROM mono:3.12.1 as builder
+ARG CHOCOVERSION=0.10.15
+
+RUN echo "deb http://archive.debian.org/debian/ wheezy main contrib non-free" >/etc/apt/sources.list
+RUN apt-get update && apt-get install -y wget tar gzip
+
+WORKDIR /usr/local/src
+RUN wget "https://github.com/chocolatey/choco/archive/${CHOCOVERSION}.tar.gz"
+RUN tar -xzf "${CHOCOVERSION}.tar.gz"
+RUN mv "choco-${CHOCOVERSION}" choco
+
+WORKDIR /usr/local/src/choco
+RUN chmod +x build.sh zip.sh
+RUN ./build.sh -v
+
+FROM alpine:latest
+
+COPY --from=builder /usr/local/src/choco/build_output/chocolatey /opt/chocolatey
+
+RUN apk add --no-cache bash
+RUN apk --update --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing add mono-dev \
+ && apk --update --no-cache add -t build-dependencies ca-certificates \
+ && cert-sync /etc/ssl/certs/ca-certificates.crt \
+ && ln -sf /opt /opt/chocolatey/opt \
+ && mkdir -p /opt/chocolatey/lib \
+ && apk del build-dependencies \
+ && rm -rf /var/cache/apk/*
+
+
+COPY entrypoint.sh /entrypoint.sh
+ENTRYPOINT ["/entrypoint.sh"]
+
+
diff --git a/.github/actions/choco/action.yml b/.github/actions/choco/action.yml
new file mode 100644
index 0000000..33cc3c6
--- /dev/null
+++ b/.github/actions/choco/action.yml
@@ -0,0 +1,12 @@
+name: 'Chocolatey Packager'
+description: 'Create the choco package and push it'
+inputs:
+ version:
+ description: 'Version of package'
+ required: true
+ apiKey:
+ description: 'API Key for chocolately'
+ required: true
+runs:
+ using: 'docker'
+ image: 'Dockerfile'
diff --git a/.github/actions/choco/entrypoint.sh b/.github/actions/choco/entrypoint.sh
new file mode 100755
index 0000000..7048395
--- /dev/null
+++ b/.github/actions/choco/entrypoint.sh
@@ -0,0 +1,29 @@
+#!/bin/bash
+
+set -e
+
+function choco {
+ mono /opt/chocolatey/choco.exe "$@" --allow-unofficial --nocolor
+}
+
+function get_version {
+ local version=${INPUT_VERSION:-$(git describe --tags)}
+ version=(${version//[!0-9.-]/})
+ local version_parts=(${version//-/ })
+ version=${version_parts[0]}
+ if [ ${#version_parts[@]} -gt 1 ]; then
+ version=${version_parts}.${version_parts[1]}
+ fi
+ echo "$version"
+}
+
+## Determine the version to pack
+VERSION=$(get_version)
+echo "Packing version ${VERSION} of act"
+rm -f act-cli.*.nupkg
+mkdir -p tools
+cp LICENSE tools/LICENSE.txt
+cp VERIFICATION tools/VERIFICATION.txt
+cp dist/act_windows_amd64/act.exe tools/
+choco pack act-cli.nuspec --version ${VERSION}
+choco push act-cli.${VERSION}.nupkg --api-key ${INPUT_APIKEY} -s https://push.chocolatey.org/ --timeout 180
diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml
index 68f64b9..c8e5a0e 100644
--- a/.github/workflows/push.yml
+++ b/.github/workflows/push.yml
@@ -38,3 +38,8 @@ jobs:
args: release --rm-dist
env:
GITHUB_TOKEN: ${{ secrets.GORELEASER_GITHUB_TOKEN }}
+ - name: Chocolatey
+ uses: ./.github/actions/choco
+ with:
+ version: ${{ github.ref }}
+ apiKey: ${{ secrets.CHOCO_APIKEY }}
diff --git a/.gitignore b/.gitignore
index 8f1d947..2fbedf4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,4 +12,6 @@
*.out
dist/
-.todo \ No newline at end of file
+.todo
+
+*.nupkg
diff --git a/README.md b/README.md
index bdf29cd..cef37ed 100644
--- a/README.md
+++ b/README.md
@@ -25,7 +25,9 @@ Alternatively, you can use the following:
```curl https://raw.githubusercontent.com/nektos/act/master/install.sh | sudo bash```
-If you are running Windows, download the [latest release](https://github.com/nektos/act/releases/latest) and add the binary in to your PATH.
+If you are running Windows, download the [latest release](https://github.com/nektos/act/releases/latest) and add the binary in to your PATH. If you are using [Chocolatey](https://chocolatey.org/) then run:
+
+```choco install act-cli```
If you are running Arch Linux, you can install the [act](https://aur.archlinux.org/packages/act/) package with your favorite package manager:
diff --git a/VERIFICATION b/VERIFICATION
new file mode 100644
index 0000000..ea5b1a9
--- /dev/null
+++ b/VERIFICATION
@@ -0,0 +1,5 @@
+VERIFICATION
+Verification is intended to assist the Chocolatey moderators and community
+in verifying that this package's contents are trustworthy.
+
+Checksums: https://github.com/nektos/act/releases, in the checksums.txt file
diff --git a/act-cli.nuspec b/act-cli.nuspec
new file mode 100644
index 0000000..1a48927
--- /dev/null
+++ b/act-cli.nuspec
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Do not remove this test for UTF-8: if โ€œฮฉโ€ doesnโ€™t appear as greek uppercase omega letter enclosed in quotation marks, you should use an editor that supports UTF-8, not this one. -->
+<package xmlns="http://schemas.microsoft.com/packaging/2015/06/nuspec.xsd">
+ <metadata>
+ <id>act-cli</id>
+ <version>0.0.0</version>
+ <packageSourceUrl>https://github.com/nektos/act</packageSourceUrl>
+ <owners>nektos</owners>
+ <title>act (GitHub Actions CLI)</title>
+ <authors>nektos</authors>
+ <projectUrl>https://github.com/nektos/act</projectUrl>
+ <iconUrl>https://raw.githubusercontent.com/wiki/nektos/act/img/logo-150.png</iconUrl>
+ <copyright>Nektos</copyright>
+ <licenseUrl>https://raw.githubusercontent.com/nektos/act/master/LICENSE</licenseUrl>
+ <requireLicenseAcceptance>true</requireLicenseAcceptance>
+ <projectSourceUrl>https://github.com/nektos/act</projectSourceUrl>
+ <docsUrl>https://raw.githubusercontent.com/nektos/act/master/README.md</docsUrl>
+ <bugTrackerUrl>https://github.com/nektos/act/issues</bugTrackerUrl>
+ <tags>act github-actions actions golang ci devops</tags>
+ <summary>Run your GitHub Actions locally ๐Ÿš€</summary>
+ <description>Run your GitHub Actions locally ๐Ÿš€</description>
+ </metadata>
+ <files>
+ <file src="tools/**" target="tools" />
+ </files>
+</package>