on: push: tags: - "v*" name: Test and Release jobs: npm-test: name: JavaScript Tests runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v2.3.4 - name: Install Node uses: actions/setup-node@v2.2.0 - name: Install dependencies run: yarn - name: Run Tests run: yarn test go-test: name: Go Tests runs-on: ubuntu-latest steps: - name: Install Go uses: actions/setup-go@v2.1.3 with: go-version: 1.16.x - name: Checkout code uses: actions/checkout@v2.3.4 - name: Run Go Tests with Coverage run: make test SKIP_ASSET=1 int-test: name: Integration Tests runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v2.3.4 - name: Build images run: docker-compose -f integration/docker-compose.test.yml build - name: Run tests run: docker-compose -f integration/docker-compose.test.yml run integration buildx: needs: [go-test, npm-test, int-test] name: Release runs-on: ubuntu-latest steps: - name: Docker meta id: meta uses: crazy-max/ghaction-docker-meta@v3.4.1 with: images: amir20/dozzle - name: Set up QEMU uses: docker/setup-qemu-action@v1.2.0 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v1.5.1 - name: Login to DockerHub uses: docker/login-action@v1.10.0 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - name: Cache Docker layers uses: actions/cache@v2.1.6 with: path: /tmp/.buildx-cache key: ${{ runner.os }}-buildx-${{ github.sha }} restore-keys: | ${{ runner.os }}-buildx- - name: Build and push uses: docker/build-push-action@v2.6.1 with: push: true platforms: linux/amd64,linux/arm/v7,linux/arm64/v8 tags: ${{ steps.meta.outputs.tags }} build-args: TAG=${{ steps.meta.outputs.version }} labels: ${{ steps.meta.outputs.labels }} cache-from: type=local,src=/tmp/.buildx-cache cache-to: type=local,dest=/tmp/.buildx-cache-new - # Temp fix # https://github.com/docker/build-push-action/issues/252 # https://github.com/moby/buildkit/issues/1896 name: Move cache run: | rm -rf /tmp/.buildx-cache mv /tmp/.buildx-cache-new /tmp/.buildx-cache git-release: needs: [buildx] name: Github Release runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v2.3.4 with: fetch-depth: 0 - name: Install Node uses: actions/setup-node@v2.2.0 - name: Install dependencies run: yarn - name: Release to Github env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: yarn release --github.release --no-increment --no-git --ci