--- name: main on: push: branches: [master] tags: [v*] pull_request: jobs: # linters lint-frontend: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v4 with: package_json_file: frontend/package.json - uses: actions/setup-node@v4 with: node-version: 22.x cache: pnpm cache-dependency-path: frontend/pnpm-lock.yaml - run: make lint-frontend lint-backend: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: go-version: 1.23.0 - run: make lint-backend lint: runs-on: ubuntu-latest needs: [lint-frontend, lint-backend] steps: - run: echo "done" # tests test-frontend: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v4 with: package_json_file: frontend/package.json - uses: actions/setup-node@v4 with: node-version: 22.x cache: pnpm cache-dependency-path: frontend/pnpm-lock.yaml - run: make test-frontend test-backend: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: go-version: 1.23.0 - run: make test-backend test: runs-on: ubuntu-latest needs: [test-frontend, test-backend] steps: - run: echo "done" # release release: runs-on: ubuntu-latest needs: [lint, test] steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - uses: actions/setup-go@v5 with: go-version: 1.23.0 - uses: pnpm/action-setup@v4 with: package_json_file: frontend/package.json - uses: actions/setup-node@v4 with: node-version: 22.x cache: pnpm cache-dependency-path: frontend/pnpm-lock.yaml - name: Set up QEMU uses: docker/setup-qemu-action@v1 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v1 - name: Build frontend run: make build-frontend - name: Login to Docker Hub uses: docker/login-action@v3 with: registry: https://git.linuxcrack.zip username: ${{ gitea.actor }} password: ${{ secrets.USER_TOKEN }} - name: Get current tag id: get_tag run: echo "tag=$(git describe --tags --abbrev=0)" >> $GITHUB_OUTPUT - name: Run GoReleaser uses: goreleaser/goreleaser-action@v2 with: version: latest args: release --clean env: GITHUB_TOKEN: ${{ secrets.USER_TOKEN }} - name: Upload artefacts uses: christopherhx/gitea-upload-artifact@v4 with: url: https://git.linuxcrack.zip path: | dist/*.tar.gz dist/*.zip dist/*.exe dist/*.txt if-no-files-found: error compression-level: 0 - name: Push Docker images to registry run: |- TAG=${{ steps.get_tag.outputs.tag }} for arch in amd64 arm64; do docker tag filebrowser/filebrowser:${TAG}-$arch git.linuxcrack.zip/midou/filebrowser:${TAG}-$arch docker push git.linuxcrack.zip/midou/filebrowser:${TAG}-$arch done