name: release image & asset on: push: tags: - "v*" jobs: package: runs-on: ubuntu-16.04 steps: - name: Golang env uses: actions/setup-go@v2 with: go-version: ^1.15 - name: Checkout uses: actions/checkout@v2 - name: Cache mod uses: actions/cache@v1 with: path: ~/go/pkg/mod key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} restore-keys: | ${{ runner.os }}-go- - name: Docker tag id: vars run: echo ::set-output name=tag::$(echo ${GITHUB_REF:10}) - name: Docker Buildx uses: docker/setup-buildx-action@v1 - name: Docker login uses: docker/login-action@v1 with: registry: registry.cn-hangzhou.aliyuncs.com password: ${{ secrets.DOCKER_PASSWORD }} username: ${{ secrets.DOCKER_USERNAME }} - name: Build binary run: GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build - name: Build and push uses: docker/build-push-action@v2 with: context: . file: ./Dockerfile push: true tags: | registry.cn-hangzhou.aliyuncs.com/deepzz/eiblog:latest registry.cn-hangzhou.aliyuncs.com/deepzz/eiblog:${{ steps.vars.outputs.tag }} - name: Package tar run: ./dist.sh - name: Create release id: create_release uses: actions/create-release@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: tag_name: ${{ steps.vars.outputs.tag }} release_name: Release ${{ steps.vars.outputs.tag }} draft: false prerelease: false - name: Upload asset darwin uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: eiblog-${{ steps.vars.outputs.tag }}.darwin-amd64.tar.gz asset_name: eiblog-${{ steps.vars.outputs.tag }}.darwin-amd64.tar.gz asset_content_type: application/gzip - name: Upload asset linux uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: eiblog-${{ steps.vars.outputs.tag }}.linux-amd64.tar.gz asset_name: eiblog-${{ steps.vars.outputs.tag }}.linux-amd64.tar.gz asset_content_type: application/gzip - name: Upload asset windows uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: eiblog-${{ steps.vars.outputs.tag }}.windows-amd64.tar.gz asset_name: eiblog-${{ steps.vars.outputs.tag }}.windows-amd64.tar.gz asset_content_type: application/gzip