148 lines
4.2 KiB
YAML
148 lines
4.2 KiB
YAML
name: LetsEncrypt
|
|
on:
|
|
push:
|
|
branches:
|
|
- '*'
|
|
paths:
|
|
- '**.sh'
|
|
- '**.yml'
|
|
pull_request:
|
|
branches:
|
|
- dev
|
|
paths:
|
|
- '**.sh'
|
|
- '**.yml'
|
|
|
|
|
|
jobs:
|
|
CheckToken:
|
|
runs-on: ubuntu-latest
|
|
outputs:
|
|
hasToken: ${{ steps.step_one.outputs.hasToken }}
|
|
env:
|
|
NGROK_TOKEN : ${{ secrets.NGROK_TOKEN }}
|
|
steps:
|
|
- name: Set the value
|
|
id: step_one
|
|
run: |
|
|
if [ "$NGROK_TOKEN" ] ; then
|
|
echo "::set-output name=hasToken::true"
|
|
else
|
|
echo "::set-output name=hasToken::false"
|
|
fi
|
|
- name: Check the value
|
|
run: echo ${{ steps.step_one.outputs.hasToken }}
|
|
|
|
Ubuntu:
|
|
runs-on: ubuntu-latest
|
|
needs: CheckToken
|
|
if: "contains(needs.CheckToken.outputs.hasToken, 'true')"
|
|
env:
|
|
NGROK_TOKEN : ${{ secrets.NGROK_TOKEN }}
|
|
TEST_LOCAL: 1
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Install tools
|
|
run: sudo apt-get install -y socat
|
|
- name: Clone acmetest
|
|
run: cd .. && git clone https://github.com/acmesh-official/acmetest.git && cp -r acme.sh acmetest/
|
|
- name: Run acmetest
|
|
run: cd ../acmetest && sudo --preserve-env ./letest.sh
|
|
|
|
MacOS:
|
|
runs-on: macos-latest
|
|
needs: Ubuntu
|
|
env:
|
|
NGROK_TOKEN : ${{ secrets.NGROK_TOKEN }}
|
|
TEST_LOCAL: 1
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Install tools
|
|
run: brew install socat
|
|
- name: Clone acmetest
|
|
run: cd .. && git clone https://github.com/acmesh-official/acmetest.git && cp -r acme.sh acmetest/
|
|
- name: Run acmetest
|
|
run: cd ../acmetest && sudo --preserve-env ./letest.sh
|
|
|
|
Windows:
|
|
runs-on: windows-latest
|
|
needs: MacOS
|
|
env:
|
|
NGROK_TOKEN : ${{ secrets.NGROK_TOKEN }}
|
|
TEST_LOCAL: 1
|
|
#The 80 port is used by Windows server, we have to use a custom port, ngrok will also use this port.
|
|
Le_HTTPPort: 8888
|
|
steps:
|
|
- name: Set git to use LF
|
|
run: |
|
|
git config --global core.autocrlf false
|
|
- uses: actions/checkout@v2
|
|
- name: Install cygwin base packages with chocolatey
|
|
run: |
|
|
choco config get cacheLocation
|
|
choco install --no-progress cygwin
|
|
shell: cmd
|
|
- name: Install cygwin additional packages
|
|
run: |
|
|
C:\tools\cygwin\cygwinsetup.exe -qgnNdO -R C:/tools/cygwin -s http://mirrors.kernel.org/sourceware/cygwin/ -P socat,curl,cron,unzip,git
|
|
shell: cmd
|
|
- name: Set ENV
|
|
shell: cmd
|
|
run: |
|
|
echo PATH=C:\tools\cygwin\bin;C:\tools\cygwin\usr\bin >> %GITHUB_ENV%
|
|
- name: Check ENV
|
|
shell: cmd
|
|
run: |
|
|
echo "PATH=%PATH%"
|
|
- name: Clone acmetest
|
|
shell: cmd
|
|
run: cd .. && git clone https://github.com/acmesh-official/acmetest.git && cp -r acme.sh acmetest/
|
|
- name: Run acmetest
|
|
shell: cmd
|
|
run: cd ../acmetest && bash.exe -c ./letest.sh
|
|
|
|
FreeBSD:
|
|
runs-on: macos-latest
|
|
needs: Windows
|
|
env:
|
|
NGROK_TOKEN : ${{ secrets.NGROK_TOKEN }}
|
|
TEST_LOCAL: 1
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Clone acmetest
|
|
run: cd .. && git clone https://github.com/acmesh-official/acmetest.git && cp -r acme.sh acmetest/
|
|
- uses: vmactions/freebsd-vm@v0.0.7
|
|
with:
|
|
envs: 'NGROK_TOKEN TEST_LOCAL'
|
|
prepare: pkg install -y socat curl
|
|
usesh: true
|
|
run: |
|
|
cd ../acmetest && ./letest.sh
|
|
|
|
Solaris:
|
|
runs-on: macos-latest
|
|
needs: FreeBSD
|
|
env:
|
|
NGROK_TOKEN : ${{ secrets.NGROK_TOKEN }}
|
|
TEST_LOCAL: 1
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: vmactions/ngrok-tunnel@v0.0.1
|
|
id: ngrok
|
|
with:
|
|
protocol: http
|
|
port: 8080
|
|
- name: Set envs
|
|
run: echo "TestingDomain=${{steps.ngrok.outputs.server}}" >> $GITHUB_ENV
|
|
- name: Clone acmetest
|
|
run: cd .. && git clone https://github.com/acmesh-official/acmetest.git && cp -r acme.sh acmetest/
|
|
- uses: vmactions/solaris-vm@v0.0.1
|
|
with:
|
|
envs: 'TEST_LOCAL TestingDomain'
|
|
nat: |
|
|
"8080": "80"
|
|
prepare: pkgutil -y -i socat curl
|
|
run: |
|
|
cd ../acmetest && ./letest.sh
|
|
|