Skip to content

Propagate ContentType field on create/modify ops #2355

Propagate ContentType field on create/modify ops

Propagate ContentType field on create/modify ops #2355

Workflow file for this run

name: Build
on:
push:
branches:
- main
pull_request:
branches:
- main
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref_name != 'main' }}
jobs:
test:
strategy:
matrix:
go_version:
- 1.19
- "1.20"
os:
- macos
- ubuntu
- windows
arch:
- 386
- amd64
exclude:
- os: macos
arch: 386
name: tests (${{ matrix.os }}/go-${{ matrix.go_version }}-${{ matrix.arch }})
runs-on: ${{ matrix.os }}-latest
steps:
- uses: actions/setup-go@v4.0.0
id: go
with:
go-version: ${{ matrix.go_version }}
- uses: actions/checkout@v3.5.2
- name: run-tests-race
if: ${{ matrix.arch == 'amd64' }}
env:
GOARCH: "${{ matrix.arch }}"
run: go test -race -vet all -mod readonly ./...
- name: run-tests
if: ${{ matrix.arch == '386' }}
env:
GOARCH: "${{ matrix.arch }}"
run: go test -vet all -mod readonly ./...
lint:
name: lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3.5.2
- uses: golangci/golangci-lint-action@v3.4.0
staticcheck:
name: staticcheck
runs-on: ubuntu-latest
steps:
- uses: actions/setup-go@v4.0.0
id: go
with:
go-version: "1.20"
- run: |
go install honnef.co/go/tools/cmd/staticcheck@master
- name: get staticcheck version
id: get-staticcheck-version
run: |
echo "version=$(staticcheck --version | sed -e 's/,//g')" >>${GITHUB_OUTPUT}
- name: staticcheck cache
id: staticcheck-cache
uses: actions/cache@v3.3.1
with:
path: ~/.cache/staticcheck
key: "${{ steps.get-staticcheck-version.outputs.version }}"
- uses: actions/checkout@v3.5.2
- name: run staticcheck
run: |
staticcheck ./...
build-artifact:
name: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3.5.2
- uses: actions/setup-go@v4.0.0
id: go
with:
go-version: "1.20"
- name: go-build
run: go build -o fake-gcs-server
env:
CGO_ENABLED: 0
- name: sanity-check
uses: docker://alpine
with:
entrypoint: sh
args: -c "./fake-gcs-server -h"
- name: upload binary
uses: actions/upload-artifact@v3.1.2
with:
name: fake-gcs-server
path: ./fake-gcs-server
retention-days: 1
test-examples:
strategy:
matrix:
include:
- lang: python
docker-image: python:latest
entrypoint: /bin/bash
- lang: node
docker-image: node:14-alpine
entrypoint: /bin/sh
- lang: go
docker-image: golang:alpine
entrypoint: /bin/sh
- lang: dotnet
docker-image: mcr.microsoft.com/dotnet/sdk:5.0-alpine
entrypoint: /bin/sh
- lang: scala
docker-image: mozilla/sbt:8u292_1.5.7
entrypoint: /bin/sh
- lang: java
docker-image: openjdk:11
entrypoint: /bin/sh
- lang: cpp
docker-image: alpine:3.15.4
entrypoint: /bin/sh
name: test-${{ matrix.lang }}-example
runs-on: ubuntu-latest
needs:
- build-artifact
- lint
- staticcheck
steps:
- uses: actions/checkout@v3.5.2
- name: download binary
uses: actions/download-artifact@v3.0.2
with:
name: fake-gcs-server
- name: fix permissions
run: chmod +x fake-gcs-server
- name: docker pull ${{ matrix.docker-image }}
run: docker pull ${DOCKER_IMAGE}
env:
DOCKER_IMAGE: ${{ matrix.docker-image }}
- name: test-${{ matrix.lang }}-example
run: |
docker run --entrypoint ${ENTRYPOINT} -v ${PWD}:${PWD} -w ${PWD} ${DOCKER_IMAGE} ci/run-${LANG}-example.sh
env:
DOCKER_IMAGE: ${{ matrix.docker-image }}
ENTRYPOINT: ${{ matrix.entrypoint }}
LANG: ${{ matrix.lang }}
unblock-pr:
name: unblock-pr
runs-on: ubuntu-latest
needs:
- test-examples
- test
steps:
- run: "true"