name: Gitea Actions Demo run-name: ${{ gitea.actor }} is testing out Gitea Actions on: [push, pull_request] jobs: build: runs-on: ubuntu-latest steps: - name: Check out repository code uses: actions/checkout@v3 - name: Set up Go Environment uses: actions/setup-go@v3 with: go-version: '1.20' - name: Get Dependencies Index Hash uses: actions/go-hashfiles@v0.0.1 id: hash-dependencies-index with: patterns: '**/Cargo.lock' - name: Restore Dependencies id: restore-dependencies uses: https://github.com/actions/cache@v3 with: path: | ~/.cargo/bin/ ~/.cargo/registry/index/ ~/.cargo/registry/cache/ ~/.cargo/git/db/ target/ key: ${{ runner.os }}-cargo-${{ steps.hash-dependencies-index.outputs.hash }} - name: Install Rust uses: https://github.com/actions-rs/toolchain@v1 with: toolchain: stable override: true - run: echo "steps.restore-dependencies.outputs.cache-primary-key = ${{ steps.restore-dependencies.outputs.cache-primary-key }}" - id: tag uses: https://github.com/Maxyme/get-release-or-tag@v2 - name: Build run: cargo build --release - name: Cache Executable Binary uses: https://github.com/actions/cache/save@v3 with: path: ./target/release/network-monitor key: ${{ runner.os }}-release-${{ steps.tag.outputs.tag }} docker: runs-on: ubuntu-latest needs: build env: REGISTRY: gitea.ivanli.cc IMAGE_NAME: ${{ github.repository }} steps: - id: tag uses: https://github.com/Maxyme/get-release-or-tag@v2 - id: restore-executable-binary name: Cache Executable Binaries uses: actions/cache/restore@v3 with: path: ./network-monitor key: ${{ runner.os }}-release-${{ steps.tag.outputs.tag }} - if: ${{ steps.restore-executable-binary.outputs.cache-hit != 'true' }} name: List the state of node modules run: echo "missing program" - name: Log in to the Container registry uses: docker/login-action@v2 with: registry: ${{ env.REGISTRY }} username: ${{ gitea.actor }} password: ${{ secrets.GITEA_TOKEN }} - name: Extract metadata (tags, labels) for Docker id: meta uses: docker/metadata-action@v4 with: registry: ${{ env.REGISTRY }} images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} - name: Build and push Docker image uses: docker/build-push-action@v4 with: context: . push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }}