Fix 132 - support for chocolatey install (#144)

* fix #132 - publish chocolatey package for act

* add missing files to pass validation

* remove extra choco step
This commit is contained in:
Casey Lee 2020-03-09 17:49:55 -07:00 committed by GitHub
parent 16520bb277
commit b7fcf137ab
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 117 additions and 2 deletions

34
.github/actions/choco/Dockerfile vendored Normal file
View File

@ -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"]

12
.github/actions/choco/action.yml vendored Normal file
View File

@ -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'

29
.github/actions/choco/entrypoint.sh vendored Executable file
View File

@ -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

View File

@ -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 }}

2
.gitignore vendored
View File

@ -13,3 +13,5 @@
dist/
.todo
*.nupkg

View File

@ -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:

5
VERIFICATION Normal file
View File

@ -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

26
act-cli.nuspec Normal file
View File

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Do not remove this test for UTF-8: if “Ω” doesnt 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>