name: publish on: push: branches: - 'develop' - 'main' concurrency: group: mizu-publish-${{ github.ref }} cancel-in-progress: true jobs: docker: runs-on: ubuntu-latest steps: - name: Set up Go 1.16 uses: actions/setup-go@v2 with: go-version: '1.16' - name: Checkout uses: actions/checkout@v2 - name: Set up Cloud SDK uses: google-github-actions/setup-gcloud@master with: service_account_key: ${{ secrets.GCR_JSON_KEY }} export_default_credentials: true - uses: haya14busa/action-cond@v1 id: condval with: cond: ${{ github.ref == 'refs/heads/main' }} if_true: "minor" if_false: "patch" - name: Auto Increment Semver Action uses: MCKanpolat/auto-semver-action@1.0.5 id: versioning with: releaseType: ${{ steps.condval.outputs.value }} github_token: ${{ secrets.GITHUB_TOKEN }} - name: Get version parameters shell: bash run: | echo "##[set-output name=build_timestamp;]$(echo $(date +%s))" echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})" id: version_parameters - name: Get base image name shell: bash run: echo "##[set-output name=image;]$(echo gcr.io/up9-docker-hub/mizu/${GITHUB_REF#refs/heads/})" id: base_image_step - name: Docker meta id: meta uses: crazy-max/ghaction-docker-meta@v2 with: images: | ${{ steps.base_image_step.outputs.image }} up9inc/mizu tags: | type=raw,${{ steps.versioning.outputs.version }} - name: Login to DockerHub uses: docker/login-action@v1 with: username: ${{ secrets.DOCKERHUB_USER }} password: ${{ secrets.DOCKERHUB_PASS }} - name: Login to GCR uses: docker/login-action@v1 with: registry: gcr.io username: _json_key password: ${{ secrets.GCR_JSON_KEY }} - name: Build and push uses: docker/build-push-action@v2 with: context: . push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} build-args: | SEM_VER=${{ steps.versioning.outputs.version }} BUILD_TIMESTAMP=${{ steps.version_parameters.outputs.build_timestamp }} GIT_BRANCH=${{ steps.version_parameters.outputs.branch }} COMMIT_HASH=${{ github.sha }} - name: Build and Push CLI run: make push-cli SEM_VER='${{ steps.versioning.outputs.version }}' BUILD_TIMESTAMP='${{ steps.version_parameters.outputs.build_timestamp }}' - shell: bash run: | echo '${{ steps.versioning.outputs.version }}' >> cli/bin/version.txt - name: publish uses: ncipollo/release-action@v1 with: token: ${{ secrets.GITHUB_TOKEN }} artifacts: "cli/bin/*" commit: ${{ steps.version_parameters.outputs.branch }} tag: ${{ steps.versioning.outputs.version }} prerelease: ${{ github.ref != 'refs/heads/main' }} bodyFile: 'cli/bin/README.md'