name: Master workflow on: push: branches: [ master ] jobs: test: name: Test runs-on: ubuntu-latest steps: - name: Install SQLite run: | sudo apt-get update sudo apt-get -y install libsqlite3-dev build-essential - name: Install Go uses: actions/setup-go@v3 with: go-version: '1.18' - name: Checkout uses: actions/checkout@v3 - name: Test run: go test -timeout 15s -tags linux,libsqlite3,sqlite_fts5 -cover ./... docker: name: Build Docker images needs: [ test ] runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v3 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v1 with: config-inline: | [registry."docker.io"] mirrors = ["mirror.gcr.io"] - name: Login to GitHub container registry uses: docker/login-action@v1 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Build base image run: DOCKER_BUILDKIT=1 docker build -t ghcr.io/jlelse/goblog:latest . --target base - name: Build tools image run: DOCKER_BUILDKIT=1 docker build -t ghcr.io/jlelse/goblog:tools . --target tools - name: Push images run: docker push --all-tags ghcr.io/jlelse/goblog