extra testing

Signed-off-by: Alex Couture-Beil <alex@earthly.dev>
This commit is contained in:
Alex Couture-Beil 2022-04-20 11:18:51 -07:00
parent a32f779fcc
commit 6ca06ce14a
No known key found for this signature in database
GPG Key ID: 097FC39A210CE7F7
2 changed files with 66 additions and 5 deletions

View File

@ -5,13 +5,14 @@ on:
branches:
- "main"
- "releases/*"
- "acb/*"
jobs:
unit:
name: Unit Test
name: earthly +all
strategy:
matrix:
platform: [ubuntu-latest, macos-latest, windows-latest]
platform: [ubuntu-latest]
runs-on: ${{ matrix.platform }}
steps:
- uses: actions/checkout@v3
@ -19,8 +20,11 @@ jobs:
with:
cache: ${{ !env.ACT && 'npm' || '' }}
node-version: "16.x"
- run: npm install
- run: npm run test
- uses: ./
- run: which earthly
- run: env
- run: earthly +all
# Below are tests specific to the github actions, which ensure the actions-setup code works with GHA
latest:
name: Test Latest Version Install
strategy:
@ -37,6 +41,7 @@ jobs:
- run: npm run package
- uses: ./
- run: earthly --version
- run: earthly --version | grep 'earthly\(\.exe\)\? version v'
specific:
name: Test Specific Version Install
strategy:
@ -56,6 +61,7 @@ jobs:
with:
version: 0.5.15
- run: earthly --version
- run: earthly --version | grep 'earthly\(\.exe\)\? version v0\.5\.15'
patch-range:
name: Test Patch Range Version Install
strategy:
@ -74,6 +80,7 @@ jobs:
with:
version: 0.6.*
- run: earthly --version
- run: earthly --version | grep 'earthly\(\.exe\)\? version v0\.6\.'
major-range:
name: Test Patch Range Version Install
strategy:
@ -91,4 +98,4 @@ jobs:
- uses: ./
with:
version: ^0.6.1
- run: earthly --version
- run: earthly --version | grep 'earthly\(\.exe\)\? version v0\.6\.'

View File

@ -1,3 +1,5 @@
VERSION 0.6
npm-base:
FROM alpine:3.13.5
RUN apk add --update nodejs npm
@ -35,7 +37,59 @@ test:
COPY jest.config.js .
RUN npm test
test-run:
FROM +npm-base
COPY --dir +compile/dist .
ENV RUNNER_TOOL_CACHE=/tmp/cache-dir
RUN node dist/setup/index.js | tee output
RUN ! grep 'Found tool in cache' output
RUN cat output | grep '^::add-path::' | sed 's/::add-path:://g' > earthly-path
RUN test "$(cat earthly-path)" = "/root/.earthly/bin"
RUN export PATH="$(cat earthly-path):$PATH" && earthly --version | grep '^earthly version v.*linux/amd64; Linux'
# validate cache was used
RUN node dist/setup/index.js | tee output2
RUN grep 'Found tool in cache' output2
lint-newline:
FROM alpine:3.15
WORKDIR /everything
COPY . .
# test that line endings are unix-style
RUN set -e; \
code=0; \
for f in $(find . -type f \( -iname '*.ts' -o -iname 'Earthfile' \) | grep -v node_modules); do \
if ! dos2unix < "$f" | cmp - "$f"; then \
echo "$f contains windows-style newlines and must be converted to unix-style (use dos2unix to fix)"; \
code=1; \
fi; \
done; \
exit $code
# test file ends with a single newline
RUN set -e; \
code=0; \
for f in $(find . -type f \( -iname '*.ts' -o -iname 'Earthfile' \) | grep -v node_modules); do \
if [ "$(tail -c 1 $f)" != "$(printf '\n')" ]; then \
echo "$f does not end with a newline"; \
code=1; \
fi; \
done; \
exit $code
# check for files with trailing newlines
RUN set -e; \
code=0; \
for f in $(find . -type f \( -iname '*.ts' -o -iname 'Earthfile' \) | grep -v node_modules); do \
if [ "$(tail -c 2 $f)" == "$(printf '\n\n')" ]; then \
echo "$f has trailing newlines"; \
code=1; \
fi; \
done; \
exit $code
all:
BUILD +lint
BUILD +lint-newline
BUILD +compile
BUILD +test
BUILD +test-run