name: release on: push: branches: - master tags: - "v*" jobs: build-docker: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v2.4.0 - run: | echo "GIT_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV - name: Docker meta id: docker_meta uses: docker/metadata-action@v3.6.2 with: images: | ghcr.io/tus/tusd tusproject/tusd tags: | type=sha type=semver,pattern=v{{version}} type=semver,pattern=v{{major}}.{{minor}} type=semver,pattern=v{{major}} - name: Set up Docker Buildx id: buildx uses: docker/setup-buildx-action@v1.6.0 with: install: true - name: Login to GitHub Container Registry uses: docker/login-action@v1.10.0 with: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ github.token }} - name: Login to Docker Container Registry uses: docker/login-action@v1.10.0 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - name: Build and push id: build uses: docker/build-push-action@v2 with: push: true builder: ${{ steps.buildx.outputs.name }} tags: ${{ steps.docker_meta.outputs.tags }} labels: ${{ steps.docker_meta.outputs.labels }} cache-from: type=gha cache-to: type=gha build-args: | GIT_VERSION=${{ env.GIT_VERSION }} GIT_COMMIT=${{ github.sha }} build-binary: runs-on: ubuntu-latest if: startsWith(github.ref, 'refs/tags/') env: GO111MODULE: on steps: - name: Checkout code uses: actions/checkout@v2.4.0 - name: Install Go 1.17.2 uses: actions/setup-go@v2.1.5 with: go-version: '1.17.2' - name: Build TUSD run: ./scripts/build_all.sh - name: GitHub Release uses: softprops/action-gh-release@v0.1.14 with: files: tusd_*.* deploy-heroku: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v2.4.0 - name: Deploy to heroku uses: akhileshns/heroku-deploy@v3.12.12 with: heroku_api_key: ${{secrets.HEROKU_API_KEY}} heroku_app_name: ${{secrets.HEROKU_APP_NAME}} heroku_email: ${{secrets.HEROKU_USER_EMAIL}}