--- name: "Build Snapshot" on: push: pull_request: workflow_dispatch: jobs: build-snapshot: runs-on: ubuntu-latest if: github.ref_type != 'tag' steps: - name: Checkout uses: actions/checkout@v4 with: fetch-depth: 0 - name: Set up QEMU id: qemu uses: docker/setup-qemu-action@v3 with: image: tonistiigi/binfmt:latest platforms: arm64,arm - name: Setup node uses: actions/setup-node@v4 with: cache: 'npm' cache-dependency-path: webui.dev/package-lock.json - name: Setup Go uses: actions/setup-go@v5 with: go-version-file: 'service/go.mod' cache: true cache-dependency-path: 'service/go.mod' - name: Print go version run: go version - name: make service run: make -w service - name: make webui run: make -w webui-dist - name: unit tests run: make -w service-unittests - name: integration tests run: cd integration-tests && make -w - name: goreleaser uses: goreleaser/goreleaser-action@v6 with: distribution: goreleaser version: latest args: release --snapshot --clean --parallelism 1 --skip=docker - name: get date run: | echo "DATE=$(date +'%Y-%m-%d')" >> "$GITHUB_ENV" - name: Archive binaries uses: actions/upload-artifact@v4.3.1 with: name: "OliveTin-snapshot-${{ env.DATE }}-${{ github.sha }}" path: dist/OliveTin*.* - name: Archive integration tests uses: actions/upload-artifact@v4.3.1 if: always() with: name: "OliveTin-integration-tests-${{ env.DATE }}-${{ github.sha }}" path: | integration-tests !integration-tests/node_modules