updated changelog (#1274) #142
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: tag update | |
| on: | |
| push: | |
| tags: | |
| - "v[0-9]+.[0-9]+.[0-9]+*" | |
| permissions: | |
| contents: write | |
| jobs: | |
| update_tag: | |
| name: Update Release tag | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Set up Node.js | |
| uses: actions/setup-node@v4 | |
| - name: Install dependencies and build frontend | |
| run: npm i && npm run build | |
| working-directory: frontend | |
| - name: Install OS Requirements | |
| run: sudo apt update && sudo apt install -y upx build-essential musl-tools | |
| - uses: goto-bus-stop/setup-zig@v2 | |
| - name: Run GoReleaser | |
| uses: goreleaser/goreleaser-action@v6 | |
| with: | |
| args: release --clean | |
| workdir: backend | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| push_release_to_registry: | |
| name: Push release | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Set up QEMU | |
| uses: docker/[email protected] | |
| - name: Set up Docker Buildx | |
| uses: docker/[email protected] | |
| - name: Login to Docker Hub | |
| uses: docker/login-action@v3 | |
| with: | |
| username: ${{ secrets.DOCKERHUB_USERNAME }} | |
| password: ${{ secrets.DOCKERHUB_TOKEN }} | |
| - name: Login to GitHub Container Registry | |
| uses: docker/login-action@v3 | |
| with: | |
| registry: ghcr.io | |
| username: ${{github.actor}} | |
| password: ${{ secrets.PAT }} | |
| - name: Extract metadata (tags, labels) for Docker and GHCR | |
| id: meta | |
| uses: docker/metadata-action@v5 | |
| with: | |
| images: | | |
| gtstef/filebrowser | |
| ghcr.io/gtsteffaniak/filebrowser | |
| - name: Modify tags (strip 'v' and add 'beta'/'stable' if needed) | |
| id: modify-json | |
| run: | | |
| JSON='${{ steps.meta.outputs.json }}' | |
| MODIFIED_JSON=$(echo "$JSON" | jq ' | |
| .tags |= map( | |
| sub(":v"; ":") # Strip the 'v' | |
| | select(test(":latest") | not) | |
| ) | | |
| if any(.tags[]; test("beta")) then | |
| .tags += [ | |
| "gtstef/filebrowser:beta", | |
| "ghcr.io/gtsteffaniak/filebrowser:beta", | |
| "gtstef/filebrowser:latest", | |
| "ghcr.io/gtsteffaniak/filebrowser:latest" | |
| ] | |
| else . end | | |
| if any(.tags[]; test("stable")) then | |
| .tags += [ | |
| "gtstef/filebrowser:stable", | |
| "ghcr.io/gtsteffaniak/filebrowser:stable", | |
| "gtstef/filebrowser:latest", | |
| "ghcr.io/gtsteffaniak/filebrowser:latest" | |
| ] | |
| else . end | |
| ') | |
| TAGS_CSV=$(echo "$MODIFIED_JSON" | jq -r '.tags | join(",")') | |
| echo "$TAGS_CSV" > modified_tags.txt # Optional debug output | |
| echo "cleaned_tag=$TAGS_CSV" >> $GITHUB_OUTPUT | |
| - name: Build and push | |
| uses: docker/build-push-action@v6 | |
| with: | |
| context: . | |
| build-args: | | |
| VERSION=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.version'] }} | |
| REVISION=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.revision'] }} | |
| platforms: linux/amd64,linux/arm64 | |
| file: ./_docker/Dockerfile | |
| push: true | |
| tags: ${{ steps.modify-json.outputs.cleaned_tag }} | |
| labels: ${{ steps.meta.outputs.labels }} | |
| push_slim_release_to_registry: | |
| name: Push slim release | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Set up QEMU | |
| uses: docker/[email protected] | |
| - name: Set up Docker Buildx | |
| uses: docker/[email protected] | |
| - name: Login to Docker Hub | |
| uses: docker/login-action@v3 | |
| with: | |
| username: ${{ secrets.DOCKERHUB_USERNAME }} | |
| password: ${{ secrets.DOCKERHUB_TOKEN }} | |
| - name: Login to GitHub Container Registry | |
| uses: docker/login-action@v3 | |
| with: | |
| registry: ghcr.io | |
| username: ${{github.actor}} | |
| password: ${{ secrets.PAT }} | |
| - name: Extract metadata (tags, labels) for Docker and GHCR | |
| id: meta | |
| uses: docker/metadata-action@v5 | |
| with: | |
| images: | | |
| gtstef/filebrowser | |
| ghcr.io/gtsteffaniak/filebrowser | |
| - name: Modify tags (strip 'v' and add 'slim' if needed) | |
| id: modify-json-slim | |
| run: | | |
| JSON='${{ steps.meta.outputs.json }}' | |
| MODIFIED_JSON=$(echo "$JSON" | jq ' | |
| .tags |= map( | |
| sub(":v"; ":") # Strip the 'v' | |
| | select(test(":latest") | not) # Remove the "latest" tag | |
| | . + "-slim" # Append "-slim" to the versioned tag | |
| ) | | |
| if any(.tags[]; test("beta")) then | |
| .tags += [ | |
| "gtstef/filebrowser:beta-slim", | |
| "ghcr.io/gtsteffaniak/filebrowser:beta-slim" | |
| ] | |
| else . end | | |
| if any(.tags[]; test("stable")) then | |
| .tags += [ | |
| "gtstef/filebrowser:stable-slim", | |
| "ghcr.io/gtsteffaniak/filebrowser:stable-slim" | |
| ] | |
| else . end | |
| ') | |
| TAGS_CSV=$(echo "$MODIFIED_JSON" | jq -r '.tags | join(",")') | |
| echo "cleaned_tag=$TAGS_CSV" >> $GITHUB_OUTPUT | |
| - name: Build and push slim image | |
| uses: docker/build-push-action@v6 | |
| with: | |
| context: . | |
| build-args: | | |
| VERSION=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.version'] }} | |
| REVISION=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.revision'] }} | |
| platforms: linux/amd64,linux/arm64,linux/arm/v7 | |
| file: ./_docker/Dockerfile.slim | |
| push: true | |
| tags: ${{ steps.modify-json-slim.outputs.cleaned_tag }} | |
| labels: ${{ steps.meta.outputs.labels }} |