fix(ci): grant contents write permission to docker workflow #4
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Release macOS Packages | |
| on: | |
| push: | |
| tags: | |
| - 'v*' | |
| - '[0-9]*' | |
| workflow_dispatch: | |
| inputs: | |
| tag_name: | |
| description: 'Tag name to publish release under (e.g. v1.8.1)' | |
| required: false | |
| type: string | |
| permissions: | |
| contents: write | |
| jobs: | |
| build-macos: | |
| name: Build macOS Packages | |
| runs-on: macos-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20' | |
| cache: 'npm' | |
| - name: Install npm dependencies | |
| run: npm ci | |
| - name: Install Rust toolchain | |
| uses: dtolnay/rust-toolchain@stable | |
| - name: Cache Cargo registry & build | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| ~/.cargo/registry | |
| ~/.cargo/git | |
| src-tauri/target | |
| key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} | |
| restore-keys: ${{ runner.os }}-cargo- | |
| - name: Create .env.local | |
| run: | | |
| cat << 'EOF' > .env.local | |
| VITE_GOOGLE_CLIENT_ID=${{ secrets.VITE_GOOGLE_CLIENT_ID }} | |
| VITE_GOOGLE_API_KEY=${{ secrets.VITE_GOOGLE_API_KEY }} | |
| VITE_GOOGLE_CLIENT_APP=${{ secrets.VITE_GOOGLE_CLIENT_APP }} | |
| VITE_GOOGLE_CLIENT_SECRET=${{ secrets.VITE_GOOGLE_CLIENT_SECRET }} | |
| VITE_GOOGLE_CLIENT_ID_PROD=${{ secrets.VITE_GOOGLE_CLIENT_ID_PROD || secrets.VITE_GOOGLE_CLIENT_ID }} | |
| VITE_GOOGLE_API_KEY_PROD=${{ secrets.VITE_GOOGLE_API_KEY_PROD || secrets.VITE_GOOGLE_API_KEY }} | |
| VITE_ENVIRONMENT=production | |
| VITE_DROPBOX_CLIENT_ID=${{ secrets.VITE_DROPBOX_CLIENT_ID }} | |
| VITE_DROPBOX_CLIENT_SECRET=${{ secrets.VITE_DROPBOX_CLIENT_SECRET }} | |
| VITE_DROPBOX_CLIENT_ID_PROD=${{ secrets.VITE_DROPBOX_CLIENT_ID_PROD || secrets.VITE_DROPBOX_CLIENT_ID }} | |
| VITE_DROPBOX_CLIENT_SECRET_PROD=${{ secrets.VITE_DROPBOX_CLIENT_SECRET_PROD || secrets.VITE_DROPBOX_CLIENT_SECRET }} | |
| VITE_BOX_CLIENT_ID=${{ secrets.VITE_BOX_CLIENT_ID }} | |
| VITE_BOX_CLIENT_SECRET=${{ secrets.VITE_BOX_CLIENT_SECRET }} | |
| VITE_BOX_CLIENT_ID_PROD=${{ secrets.VITE_BOX_CLIENT_ID_PROD || secrets.VITE_BOX_CLIENT_ID }} | |
| VITE_BOX_CLIENT_SECRET_PROD=${{ secrets.VITE_BOX_CLIENT_SECRET_PROD || secrets.VITE_BOX_CLIENT_SECRET }} | |
| VITE_ONEDRIVE_CLIENT_ID=${{ secrets.VITE_ONEDRIVE_CLIENT_ID }} | |
| VITE_ONEDRIVE_CLIENT_SECRET=${{ secrets.VITE_ONEDRIVE_CLIENT_SECRET }} | |
| VITE_PREMIUM_AGENT=${{ secrets.VITE_PREMIUM_AGENT }} | |
| VITE_PREMIUM_MODEL=${{ secrets.VITE_PREMIUM_MODEL }} | |
| AGENT=${{ secrets.AGENT }} | |
| EASYAI_MODEL=${{ secrets.EASYAI_MODEL }} | |
| GEMINI_API=${{ secrets.GEMINI_API }} | |
| EOF | |
| - name: Build Tauri application | |
| run: npm run tauri:build | |
| - name: Compress macOS .app bundle | |
| run: | | |
| if [ -d "src-tauri/target/release/bundle/macos/easyeditor.app" ]; then | |
| cd src-tauri/target/release/bundle/macos | |
| tar -czvf easyeditor-macos.app.tar.gz easyeditor.app | |
| fi | |
| - name: Extract version from tag | |
| id: version | |
| run: | | |
| INPUT_TAG="${{ inputs.tag_name }}" | |
| if [ -n "$INPUT_TAG" ]; then | |
| TAG="$INPUT_TAG" | |
| elif [ "${GITHUB_REF_TYPE}" = "tag" ]; then | |
| TAG="${GITHUB_REF_NAME}" | |
| else | |
| TAG="v$(node -p "require('./package.json').version")" | |
| fi | |
| VERSION="${TAG#v}" | |
| echo "tag=$TAG" >> "$GITHUB_OUTPUT" | |
| echo "version=$VERSION" >> "$GITHUB_OUTPUT" | |
| - name: List built packages | |
| run: | | |
| echo "Contents of src-tauri/target/release/bundle:" | |
| find src-tauri/target/release/bundle -name "*.dmg" -o -name "*.tar.gz" -o -name "*.zip" || true | |
| - name: Upload macOS packages to GitHub Release | |
| uses: softprops/action-gh-release@v2 | |
| if: startsWith(github.ref, 'refs/tags/') || github.event_name == 'workflow_dispatch' | |
| with: | |
| tag_name: ${{ steps.version.outputs.tag }} | |
| files: | | |
| src-tauri/target/release/bundle/dmg/*.dmg | |
| src-tauri/target/release/bundle/macos/*.tar.gz | |
| src-tauri/target/release/bundle/macos/*.zip | |
| fail_on_unmatched_files: false | |
| append_body: true | |
| body: | | |
| ### macOS Packages | |
| | Package | Format | Install | | |
| | --- | --- | --- | | |
| | `.dmg` | Disk Image | Open and drag to Applications | | |
| | `.app.tar.gz` | Compressed App | Extract and move to Applications | | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |