name: 'Build Docker Image on Pull Request' author: 'Neshura' on: pull_request: branches: - main jobs: test: runs-on: docker steps: - name: Checking Out Repository Code uses: https://code.forgejo.org/actions/checkout@v3 - name: Get Yarn Cache Directory id: yarn-cache-dir-path run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT - name: Set Up Yarn Cache uses: actions/cache@v3 id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`) with: path: ${{ steps.yarn-cache-dir-path.outputs.dir }} key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} restore-keys: | ${{ runner.os }}-yarn- - name: Install Dependencies run: yarn install - name: Add Unlighthouse run: | echo "apt update && apt install -y chromium" apt update && apt install -y chromium echo "yarn global add @unlighthouse/cli" yarn global add @unlighthouse/cli - name: Run Linter run: yarn lint - name: Check if Version in package.json matches Tag run: | echo "Test" VERSION=$(cat package.json | grep "version" | sed 's/.*://' | tr -d , | tr -d \" ) if test $VERSION != "${{ github.ref_name }}"; then echo "Expected Version is: '${{ github.ref_name }}' actual Version is: '$VERSION'"; exit 1 else echo "Version is: '$VERSION'"; fi - name: Build website run: yarn build - name: Install Chromium for Unlighthouse run: | echo "apt update && apt install -y chromium" apt update && apt install -y chromium echo 'export CHROMIUM_FLAGS="$CHROMIUM_FLAGS --no-sandbox" >> /etc/chromium.d/default-flags' echo 'export CHROMIUM_FLAGS="$CHROMIUM_FLAGS --no-sandbox"' >> /etc/chromium.d/default-flags - name: Add Unlighthouse run: | echo "yarn global add @unlighthouse/cli" yarn global add @unlighthouse/cli - name: Uploading Lighthouse Reports uses: actions/upload-artifact@v3 with: name: lighthouse path: reports if-no-files-found: error