diff options
-rw-r--r-- | .github/actions/choco/Dockerfile | 34 | ||||
-rw-r--r-- | .github/actions/choco/action.yml | 12 | ||||
-rwxr-xr-x | .github/actions/choco/entrypoint.sh | 29 | ||||
-rw-r--r-- | .github/workflows/push.yml | 5 | ||||
-rw-r--r-- | .gitignore | 4 | ||||
-rw-r--r-- | README.md | 4 | ||||
-rw-r--r-- | VERIFICATION | 5 | ||||
-rw-r--r-- | act-cli.nuspec | 26 |
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 }} @@ -12,4 +12,6 @@ *.out dist/ -.todo
\ No newline at end of file +.todo + +*.nupkg @@ -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> |