Skip to content

Update actions/cache #22

Update actions/cache

Update actions/cache #22

Workflow file for this run

name: Build Application
on:
pull_request: null
push:
branches:
- master
jobs:
build:
name: ${{ matrix.os }}
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
ghc: ["9.2.2"]
steps:
- uses: actions/checkout@v2
- name: Cache .stack
id: cache-stack
uses: actions/cache@v4
with:
path: ~/.stack
key: "\
${{ runner.os }}-stack\
-${{ hashFiles('**/stack.yaml.lock') }}\
-${{ hashFiles('**/package.yaml') }}\
"
restore-keys: |
${{ runner.os }}-stack-
- uses: haskell/actions/setup@v2
name: Setup Haskell
with:
ghc-version: ${{ matrix.ghc }}
enable-stack: true
stack-version: 'latest'
- name: Install dependencies
run: stack --system-ghc test --only-dependencies
- name: Build and Test
run: stack --system-ghc test --copy-bins --local-bin-path=./bin
# Build and Push Docker Image
- name: Prepare
id: prep
run: |
DOCKER_IMAGE=ghcr.io/haskell-jp/antenna
TAGS="${DOCKER_IMAGE}:latest"
if [[ $GITHUB_REF == refs/tags/v* ]]; then
TAGS="$TAGS,${DOCKER_IMAGE}:${GITHUB_REF#refs/tags/v}"
fi
echo ::set-output name=tags::${TAGS}
- name: Setup QEMU
uses: docker/setup-qemu-action@master
with:
platforms: all
- name: Setup Docker Buildx
id: buildx
uses: docker/setup-buildx-action@master
with:
version: latest
- name: Login to GitHub Container Registry
uses: docker/login-action@v1
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v2
with:
context: .
builder: ${{ steps.buildx.outputs.name }}
tags: ${{ steps.prep.outputs.tags }}
push: ${{ github.event_name != 'pull_request' }}
build-args: local_bin_path=./bin