name: CI on: push: branches: - main tags: - '*' pull_request: jobs: tests: runs-on: ubuntu-latest strategy: matrix: arch: - arm64 - arm - amd64 steps: - uses: actions/checkout@v4 - name: Set up QEMU uses: docker/setup-qemu-action@v2 with: platforms: ${{ matrix.arch }} - name: install go uses: actions/setup-go@v5 with: go-version-file: go.mod - name: Run tests run: | uname -a make test deploy: runs-on: ubuntu-latest needs: tests if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags') strategy: matrix: goosarch: - linux/amd64 - linux/arm/v7 - linux/arm64 steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - name: install go uses: actions/setup-go@v5 with: go-version-file: go.mod - name: Set env run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV - name: Sign in to dockerhub run: echo "${{ secrets.DOCKERHUB_TOKEN }}" | docker login -u ${{ secrets.DOCKERHUB_USERNAME }} --password-stdin - name: Deploy image run: make docker-push VERSION=$RELEASE_VERSION - name: Build run: make build VERSION=$RELEASE_VERSION - name: Prepare release run: | git log $(git describe HEAD~ --tags --abbrev=0)..HEAD --pretty='format:%h - %s <%an>' --no-merges > changelog.txt tar zcvf whatismyip-$RELEASE_VERSION-${{matrix.goosarch}}.tar.gz whatismyip LICENSE README.md sha256sum whatismyip-$RELEASE_VERSION-${{matrix.goosarch}}.tar.gz > whatismyip-$RELEASE_VERSION-${{matrix.goosarch}}.tar.gz.sha256 - name: Release uses: softprops/action-gh-release@v1 with: body_path: changelog.txt files: | whatismyip-${{env.RELEASE_VERSION}}-${{matrix.goosarch}}.tar.gz whatismyip-${{env.RELEASE_VERSION}}-${{matrix.goosarch}}.tar.gz.sha256 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}